Какая связь между WIC и GDI+?

Я не совсем понимаю взаимосвязь между Windows Imaging Component (WIC) и GDI+. В прошлом я проделал некоторую работу, которая показала, что, например, WIC производит визуально превосходные кодировки GIF, но я удивлен, что не вижу большего числа людей, использующих его для обработки изображений по сравнению с GDI+. Я знаю, что у него нет операций рисования GDI+, но для кодирования/декодирования он кажется лучше. Так почему же мы не видим миграцию?


person Jeff Stewart    schedule 02.03.2009    source источник


Ответы (2)


Связь (или, скорее, разница между) WIC и GDI+ заключается в том, что WIC представляет собой расширяемую структуру кодеков изображений, которая позволяет приложениям, реализующим структуру, получать поддержку новых форматов изображений с помощью предоставленных кодеков. GDI+ — это основной компонент Windows, который поддерживает операции рисования, такие как линии, шрифты, градиенты и т. д.

В то время как GDI+ имеет встроенную поддержку нескольких распространенных форматов изображений, кодеки WIC могут быть предоставлены для любого формата изображения.

person Jim H.    schedule 03.03.2009
comment
Так что, кроме некоторого собственного кодирования/декодирования, WIC ничего не делает, кроме как предлагает основу для написания большего количества кода? Можно подумать, что для такого превосходного набора собственных кодеков (по сравнению с GDI+) они обеспечили бы лучший мост между GDI+ и WIC. - person Jeff Stewart; 03.03.2009
comment
Я исследую это немного больше, и, кажется, это немного больше, чем это. WIC лежит в основе большей части того, что делает WPF (см. blogs.msdn.com/dwayneneed/archive/2008/06/20/), и действительно WIC, похоже, управляет пикселями так же, как GDI+. - person Jeff Stewart; 03.03.2009

Я понял, что GDI+ использует WIC для выполнения определенных задач. По крайней мере, в Windows 7 это так.

Пожалуйста, рассмотрите следующий код:

image.Write(target, ImageFormat.Gif);

Когда я запускаю этот код под Windows XP, он будет использовать кодировщик GDI+ Gif для записи изображения в виде Gif. Когда я запускаю тот же код под Windows 7, он будет использовать WIC Gif Encoder.

person Corne    schedule 19.08.2009
comment
нет Image.Write(...). Вероятно, вы имеете в виду Image.Save(...) - person Shay Erlichmen; 12.09.2010