2009-03-02 14 views
5

Sono confuso sulla relazione tra Windows Imaging Component (WIC) e GDI +. Ho lavorato in passato per dimostrare che, ad esempio, WIC produce codifiche GIF visivamente superiori, ma sono sorpreso di non vedere più persone che lo utilizzano per l'elaborazione delle immagini rispetto a GDI +. So che non ha le operazioni di estrazione di GDI +, ma per la codifica/decodifica sembra superiore. Quindi perché non vediamo una migrazione?Qual è la relazione tra WIC e GDI +?

risposta

4

La relazione (o meglio la differenza tra) WIC e GDI + è che WIC è un framework di codec di imaging estendibile che consente alle applicazioni che implementano il framework di ricevere supporto per i nuovi formati di immagine tramite i codec forniti. GDI + è un componente principale di Windows che supporta operazioni di disegno come linee, caratteri, gradienti, ecc.

Mentre GDI + supporta nativamente diversi formati di immagine comuni, i codec WIC possono essere forniti per qualsiasi formato di immagine.

+0

Quindi, a parte qualche codifica/decodifica nativa, la WIC in realtà non fa nulla se non offrire un framework per scrivere più codice? Per un insieme di codec nativi di livello superiore (rispetto a GDI +), si penserebbe che avrebbero fornito un ponte migliore tra GDI + e WIC. –

+1

Sto studiando questo un po 'di più, e sembra esserci un po' più di quello. WIC è una base della maggior parte di ciò che fa WPF (vedi http://blogs.msdn.com/dwayneneed/archive/2008/06/20/implementing-a-custom-bitmapsource.aspx), e infatti WIC sembra gestire i pixel proprio come fa GDI +. –

0

Ho capito che GDI + utilizza WIC per eseguire determinate attività. Almeno, in Windows 7 lo fa.

perche il seguente codice:

image.Write(target, ImageFormat.Gif); 

Quando ho eseguito questo codice sotto Windows XP si utilizzerà il codificatore GIF GDI + per scrivere l'immagine come GIF. Quando eseguo lo stesso codice sotto Windows 7 userà il codificatore GIF WIC.

+0

non c'è Image.Write (...). Probabilmente vuoi dire Image.Save (...) –