.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 будет более производительным и лучше по качеству, например, с изменением размера изображения.

10.12.2008 10:22:57
5 ОТВЕТОВ

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

1
10.12.2008 10:34:27
GDI + фактически используется пространством имен System.Graphics .Net.
Dirk Vollmar 10.12.2008 10:44:57

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

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

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

1
10.12.2008 13:13:48

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

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

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

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

4
10.12.2008 16:04:41
РЕШЕНИЕ

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

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

1
3.04.2009 16:49:50
Спасибо, приятель, отличный ответ, я люблю тебя.
Seb Nilsson 3.04.2009 16:50:02

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

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

1
20.10.2009 13:14:34