2015-10-26 6 views
34

Я обновил свой проект с .NET 4.5 до .NET Core (с помощью ядра ASP.NET). У меня был очень простой код в моей предыдущей версии, который использовал объект bitmap от System.Drawing, чтобы изменить размер изображения.Манипулирование изображениями с помощью .NET Core

Как я понимаю System.Drawing не может быть использован в .NET Core, потому что это не перекрестная платформа, а то, что можно использовать вместо этого?

У меня есть googled это и ничего не могу найти. Единственное, что я могу найти, это сообщение this, у которого нет кода на нем, что так всегда.

+0

Найдено [this] (http://imageresizing.net/) о соединенном вами github. Полезно? – SimpleVar

+0

Возможный дубликат [Изменение размера изображений с помощью MVC 6 на Ubuntu с запуском ASP.NET 5 на Mono] (http://stackoverflow.com/questions/36643720/resize-images-with-mvc-6-on-ubuntu-running-asp -net-5-on-mono) –

+0

Насколько я понимаю, команда .NET (Core) все еще обсуждает это с командой Xamarin. Xamarin построил библиотеку под названием SkiaSharp, которая является оберткой для кросс-платформенной библиотеки Skia, которая снова является графической библиотекой Google Chrome. Он работает под управлением Android, iOS, Linux, Windows и т. Д., Что сделало бы его идеальным решением для .NET Core. Но на сегодняшний день они еще не завершили его для .NET Core (https://blog.xamarin.com/cross-platform-2d-graphics-with-skiasharp/). Мои ставки идут, что эта библиотека станет будущей историей для .NET Core и рисования. – Thomas

ответ

27

Отказ от ответственности: Это мое программное обеспечение.

Я работаю над кросс-платформенной 2D-графической библиотекой, которая работает на .NET Core. В настоящее время это альфа, но уже поддерживает полный набор функций.

https://github.com/JimBobSquarePants/ImageSharp

Пример использования.

using (FileStream stream = File.OpenRead("foo.jpg")) 
using (FileStream output = File.OpenWrite("bar.jpg")) 
{ 
    Image image = new Image(stream); 
    image.Resize(image.Width/2, image.Height/2) 
     .Greyscale() 
     .Save(output); 
} 
+0

А как насчет рисования на конкретном холсте ОС? кто-нибудь отвлек их от ОС? – eschneider

+0

Вы имеете в виду интерфейс? https://github.com/AvaloniaUI/Avalonia –

+0

В TK есть библиотека .Net Core для графики. Я ожидаю UI lib в конце концов, но он может обернуть TK. – IAbstract

16

Я нашел реализацию System.Drawing для .NET Ядра, основанный на источниках Моно поддерживается на:

Пакет NuGet находится по адресу:

Что вы можете ссылаться на него в вашем .NET Ядро приложения project.json с:

{ 
    "dependencies": { 
    "CoreCompat.System.Drawing": "1.0.0-beta006", 
    ... 
    }, 
} 
+2

Это предварительное программное обеспечение, поэтому убедитесь, что у вас есть галочка «show prerelease». – user3791372