2009-03-02 9 views
5

Jestem niewyraźny w związku między Windows Imaging Component (WIC) i GDI +. W przeszłości zrobiłem trochę pracy, która pokazała, że ​​na przykład WIC wytwarza lepsze wizualnie kodowanie GIF, ale jestem zaskoczony, że nie widzę więcej ludzi, którzy używają go do przetwarzania obrazu w porównaniu z GDI +. Wiem, że nie ma operacji rysowania GDI +, ale kodowanie/dekodowanie wydaje się lepsze. Dlaczego więc nie widzimy migracji?Jaki jest związek między WIC i GDI +?

Odpowiedz

4

Zależność (czy raczej różnica) WIC i GDI + jest to, że WIC jest rozszerzalny ramy obrazu kodeka, który umożliwia aplikacjom wykonawcze ramy, aby otrzymać wsparcie dla nowych formatów graficznych za pomocą dostarczonych kodeków. GDI + jest podstawowym składnikiem systemu Windows obsługującym operacje rysowania, takie jak linie, czcionki, gradienty itp.

Podczas gdy GDI + ma natywną obsługę kilku popularnych formatów graficznych, kodeki WIC mogą być dostarczane dla dowolnego formatu obrazu.

+0

Więc inne niż natywne kodowanie/dekodowanie, WIC tak naprawdę nie robi nic poza oferowaniem ram do pisania więcej kodu? Dla tak doskonałego zestawu natywnych kodeków (w porównaniu z GDI +) można by pomyśleć, że zapewniliby lepszy most między GDI + i WIC. –

+1

Trochę badam to i wydaje mi się, że jest w tym trochę więcej. WIC jest podstawą większości działań WPF (zobacz http://blogs.msdn.com/dwayneneed/archive/2008/06/20/implementing-a-custom-bitmapsource.aspx), a nawet WIC wydaje się zarządzać pikselami tak samo jak GDI +. –

0

Zrozumiałem, że GDI + używa WIC do wykonywania określonych zadań. Przynajmniej w Windows 7 to robi.

Proszę rozważyć następujący kod:

image.Write(target, ImageFormat.Gif); 

Kiedy uruchomić ten kod w systemie Windows XP będzie korzystał z kodera GDI + Gif aby zapisać obraz jako GIF. Kiedy uruchomię ten sam kod pod Windows 7, użyje on WIC Gif Encoder.

+0

nie ma Image.Write (...). Prawdopodobnie masz na myśli Image.Save (...) –

Powiązane problemy