Подскажите, каким пространством при работе с изображениями лучше пользоваться в новых проектах?
Вроде, если смотреть поверхностно, то функциональность схожая.
Есть ли какая-то разница в производительности или за кулисами это 2 обертки над старым добрым GDI+?
Пока я столкнулся с тем, что WPF может отображать картинки типа ImageSource
, а Image
из пространства System.Drawing
нужно дополнительно кастовать.
И вот собственно вопрос, а имеет смысл везде использовать System.Windows.Media
или все зависит от конечных задач и если неизвестно, с каким GUI будет работать конечная библиотека, то лучше возвращать Image
из Drawing
, а сам пользователь будет его приводить к нужному типу сам?
Вроде, как System.Drawing
лежит, как отдельная независимая библиотека, в то время, как System.Windows.Media
лежит в либе WPF-фреймворка. Получается, что все таки Drawing
нужно использовать повсеместно?
Перечисления кстати, тоже дублируются между пространствами. Например, перечисление цветов.
Если неизвестно с каким GUI работать и говорить про новые проекты, то это значит есть смысл делать проект на .NET Core и делать ставку только на кроссплатформенные библиотеки. Когда использовал кроссплатформенный подход лучше всего себя как раз и зарекомендовал System.Drawing
. Для его использования нужно добавить NuGet-пакет System.Drawing.Common
.
Я пробовал использовать различные альтернативы отсюда, но либо не были кроссплатформенными, содержали баги или их было не очень просто добавить проект без кучи дополнительных шагов.
По поводу возрата конкретного типа: я не совсем согласен насчёт использования типа System.Drawing.Image
для конечного пользователя, я бы лучше возвращал массив байт или если это Rest API, то возвращал бы строку Base64. В целом, мне кажется достаточно возвращать любой тип, который совместим с .NET Standard.
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Хотел начать работать с PhantomJS, установил через nuget сам Selenium, SeleniumPhantomJS
Возникла проблема при создании сервиса(systemd) в Linux для автоматического запуска Web App: нет никаких признаков соединения с Oracle БД
Есть скрипт, который обновляет таблицу с ордерами на сайте каждые 3 секунды, но когда в таблице остается один ордер и его скупают, то таблица...
Ищу способы реализации вот такого фильтра, пользователь выбирает производителя, затем в зависимости от выбранного производителя подбираются...