Комментарии 23
Скажите пожалуйста, что заставляет людей использовать System.Drawing на сервере?
ImageSharp не умеет в TIFF и к тому же он очень баговый и ещё не вышел из беты. Да и спанчбоб довольно одиозная и непредсказуемаая личность: меняет API без всякой обратной совместимости.
Сейчас делаем попытку перейти на ImageMagick.NET но уже на Linux серверах, но пока результаты противоречивы, видимо надо больше тюнинга.
В общем, обработка картинок под .net core — это боль.
Используем System.Drawing
на сервере, потому что рисуем штрихкоды там, которые надо динамически отдавать картинкой, а библиотека их создания (ZXing.Net) имеет зависимость от System.Drawing
.
По той же причине System.Drawing
пришлось протащить даже в SQL Server (create assembly
). Из-за интересных багов одной популярной клиентской софтины, картинки в отчётах правильно отрисовываются только если были получены напрямую из подключения к базе данных, а не по какому-то иному каналу, так что для этой софтины приходится генерировать штрихкоды в SQL Server.
Сейчас натолкнулся на эту статью в связи с необходимостью рисовать свои тайлы на сервере. Конечно, это другого типа задача, как раз таки связанная с рисованием, а не обработкой уже готового изображения, но подводных камней с параллельностью и блокировкой объектов GDI это не отменяет.
Короче говоря — не нужно, при наличии альтернатив.
NetCore требует libicu, libgssapi-krb5-2, liblttng-ust0, libssl1.0.2 и zlib1g на линуксах, лишние зависимости для вроде бы кроссплатформенного приложения, короче говоря — не нужно, при наличии альтернатив в виде Go, который собирает бинарник вообще без зависимостей, даже без libc.
Вот примерно такого рода получилось высказывание.
А стоило только добавить System.Drawing, как на всех невиндовых машинах пришлось ставить libgdiplus.
Возможно, какие то пакеты действительно требуют libicu, libgssapi-krb5-2, liblttng-ust0, libssl1.0.2 и zlib1g и те не установлены в системе — но я с таким не сталкивался.
чистых
Ubuntu 16.04
Нет такого понятия. Есть "предустановленный набор софта для конкретной десктопной либо серверной редакции". В тот же базовый образ докера с убунтой вышеперечисленные пакеты не входят.
P.S. мне одному кажется, что картинки одинаковые?
мне одному кажется, что картинки одинаковые?
картинки разные: одна резче и светлее, другая более темная и размытая
в оригинальном посте был контрол, с одной картинкой, по которому можно было поводить шторку влево-вправо, чтобы сразу видеть разницу. Я пока новичок, и такого элемента на хабре не нашел
5 причин, почему вы должны прекратить использовать System.Drawing в ASP.NET