Я нечеткая связь между компонентом Windows Imaging (WIC) и GDI +. В прошлом я проделал некоторую работу, которая показала, что, например, WIC производит визуально превосходные кодировки GIF, но я удивлен, что я не вижу, чтобы больше людей использовали его для обработки изображений против GDI +. Я знаю, что у него нет операций GDI + для рисования, но для кодирования/декодирования он кажется выше. Так почему мы не видим миграции?Какая связь между WIC и GDI +?
ответ
Взаимосвязь (или, скорее, разница между ними) WIC и GDI + заключается в том, что WIC представляет собой расширяемую среду кодирования образов, которая позволяет приложениям, реализующим инфраструктуру, получать поддержку новых форматов изображений через предоставленные кодеки. GDI + является основным компонентом Windows, который поддерживает операции рисования, такие как строки, шрифты, градиенты и т. Д.
Хотя GDI + имеет встроенную поддержку нескольких распространенных форматов изображений, кодеки WIC могут быть предусмотрены для любого формата изображения.
Я понял, что GDI + использует WIC для выполнения определенных задач. По крайней мере, в Windows 7 это происходит.
Пожалуйста, обратите внимание на следующий код:
image.Write(target, ImageFormat.Gif);
Когда я запускаю этот код под Windows XP будет использовать кодер GDI + Gif, чтобы записать образ как Gif. Когда я запускаю тот же код под Windows 7, он будет использовать WIC Gif Encoder.
Нет изображения. Запишите (...). Вероятно, вы имеете в виду Image.Save (...) –
Иначе, чем некоторая нативная кодировка/декодирование, WIC на самом деле ничего не делает, кроме предложения рамки для написания большего количества кода? Для такого превосходного набора родных кодеков (по сравнению с GDI +) вы могли бы подумать, что они обеспечили бы лучший мост между GDI + и WIC. –
Я изучаю это немного больше, и, похоже, это немного больше, чем это. WIC является основой большей части того, что делает WPF (см. Http://blogs.msdn.com/dwayneneed/archive/2008/06/20/implementing-a-custom-bitmapsource.aspx), и действительно, WIC, похоже, управляет пикселями как GDI +. –