.NET: замена ImageMagick на WPF-объекты

Мы все видели крутые WPF-демо-приложения с мультимедиа.

У меня вопрос, могут ли WPF-объекты заменить некоторые базовые функции в ImageMagick. Основные функции, такие как изменение размера изображений, обрезка и так далее.

Результаты изменения размера пространства имен System.Graphics в.NET 2.0 просто печальны (GDI+). Может быть, я использую это неправильно, но из коробки это похоже.

Кроме того, неплохо было бы сделать так, чтобы API-интерфейсы для WPF были немного более острыми, чем API-интерфейсы ImageMagick.NET.

Обновление: я думал, что WPF, возможно, будет иметь объект для манипулирования изображениями. Как GDI имеет System.Drawing.Image и System.Drawing.Bitmap. Но я надеялся, что объект WPF будет более производительным и лучше по качеству, например, с изменением размера изображения.

5 ответов

Решение

Вы можете просто использовать простое старое пространство имен System.Drawing-name. Просто используйте правильные объекты, методы и параметры, и измененные изображения не будут отстойными.

http://weblogs.asp.net/gunnarpeipman/archive/2009/04/02/resizing-images-without-loss-of-quality.aspx

WPF и GDI+ - это графические системы, разработанные специально для GUI, они не являются библиотеками для работы с изображениями.

WPF намного лучше, чем GDI+, но это все еще система с графическим интерфейсом - такие вещи, как получение одинакового результата на другом оборудовании (как беспокоит IgorK), просто не являются приоритетом, а качество изменения размеров менее важно, чем производительность - в противном случае это не так быть пригодным для использования как часть конвейера рендеринга.

Так что, если вы используете ImageMagick для базовой обработки перед отображением изображения, WPF может работать на вас (но я уверен, что у него гораздо меньше возможностей, чем в ImageMagick), если вам нужна высококачественная обработка изображений, то WPF - просто неправильный инструмент для работа.

WPF - отличная система с графическим интерфейсом (лучшая, с которой я когда-либо работал), но это не графическая система общего назначения и не библиотека для работы с изображениями.

Как в WPF, так и в GDI+ есть много типов ошибок при загрузке и обработке изображений. Я сообщаю Microsoft о некоторых ошибках, и Microsoft исправила эти ошибки сейчас... но только в FW4.0 и Windows7. В других ОС (WinXP, Vista, Win2000) и FW2.0 эти ошибки не будут исправлены в любое время.

-- Извините за плохой английский:(

Нашел этот блог с чем-то похожим на вашу ситуацию.

Я немного обеспокоен тем, что WPF будет использовать аппаратный рендеринг, если он доступен. Например, это может стать проблемой, если вам нужны идентичные результаты (а не только похожие) на другом оборудовании.

Вы можете делать очень интересные вещи, такие как применение шейдеров HLSL в WPF, но для меня это все еще выглядит как особый (и потенциально проблемный) способ обработки изображений, по крайней мере, сейчас. Возможно, когда-нибудь станет легко использовать WPF во многих других областях, но сейчас я бы остановился на более предсказуемых:) Конечно, приятно знать, что WPF активно развивается, и в проекте есть люди, которые делали GDI+ (см. Это), но Это очень свежая технология, позволяющая использовать ее "новыми способами" для серьезных проектов. В любом случае, я был бы рад узнать, если вам удастся сделать подход WPF подходящим для вас, это выглядит как очень интересная идея для меня:)

Я не знаю о WPF, но вы могли бы использовать GDI+ - здесь есть вступление:

Другие вопросы по тегам