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
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.
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.
non c'è Image.Write (...). Probabilmente vuoi dire Image.Save (...) –
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. –
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 +. –