Манипулирование изображениями с помощью .NET Core
Я обновил свой проект с .NET 4.5 до .NET Core (с ядром ASP.NET). У меня был очень простой код в моей предыдущей версии, который использовал объект растрового изображения из System.Drawing
для изменения размера изображения.
Как я понимаю, System.Drawing
не может использоваться в .NET Core, потому что он не является кросс-платформенным, но что можно использовать вместо этого?
Я искал это и ничего не нашел. Единственное, что я могу найти, это этот пост, у которого нет никакого кода на нем, что так всегда.
Ответы
Ответ 1
Отказ от ответственности: Это мое программное обеспечение.
Я работаю над кросс-платформенной 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);
}
Ответ 2
Я нашел реализацию System.Drawing для .NET Core на основе источников Mono, поддерживаемых по адресу:
Пакет NuGet находится по адресу:
Что вы можете использовать в своем .NET Core App project.json
с помощью:
{
"dependencies": {
"CoreCompat.System.Drawing": "1.0.0-beta006",
...
},
}
Ответ 3
Вам действительно нужно быть кросс-платформой на сервере? Если нет, используйте ASP.NET 5 с .NET 4.6 вместо .NET Core, и все должно отлично работать с System.Drawing