Share via


Novità in WIC

Windows Imaging Component (WIC) è stato aggiornato con nuove versioni di Windows. Questo argomento fornisce un'introduzione rapida a queste nuove funzionalità.

Novità di Windows 10, versione 1507

Accesso ai dati JPEG di basso livello per la decodifica e la codifica WIC

A partire da Windows 10 versione 1507, WIC consente l'accesso a strutture di dati JPEG di basso livello, tra cui Huffman e tabelle di quantizzazione. Per altre informazioni, vedere gli argomenti seguenti:

Indicizzazione JPEG

L'indicizzazione JPEG è una tecnica che migliora significativamente le prestazioni dell'accesso casuale a piccole aree secondarie di un'immagine JPEG di grandi dimensioni, a costo di un utilizzo aggiuntivo della memoria. L'indicizzazione JPEG può essere sfruttata da qualsiasi chiamante di WIC.

L'interfaccia ID2D1ImageSourceFromWic è progettata per sfruttare l'indicizzazione JPEG se è attivata. Ad esempio, l'API ID2D1ImageSource richiederà solo le sezioni necessarie dell'immagine in uno scenario come la panoramica e lo zoom per un'immagine con risoluzione di grandi dimensioni. Per altre informazioni, vedere gli argomenti seguenti:

Novità di Windows 8.1

Supporto per immagini JPEG YCbCr

A partire da Windows 8.1, WIC offre supporto per la decodifica, la trasformazione e la codifica dei dati immagine JPEG Y'CbCr nel formato nativo. Ciò consente alle app di ridurre significativamente il tempo di elaborazione e il consumo di memoria per determinate operazioni di imaging quando si lavora con JPEG con codifica Y'CbCr. Per altre informazioni, vedere gli argomenti seguenti:

Supporto per i formati compressi bloccati (file DDS)

A partire da Windows 8.1, WIC aggiunge un nuovo codec che supporta immagini DDS codificate nei formati seguenti: DXGI_FORMAT_BC1_UNORM, DXGI_FORMAT_BC2_UNORM e DXGI_FORMAT_BC3_UNORM. È possibile accedere ai dati compressi in blocchi DDS in un formato decodificato usando interfacce WIC standard o accedere direttamente tramite nuove interfacce specifiche DDS. Per altre informazioni, vedere gli argomenti seguenti:

Novità di Windows 8

In Windows 8, WIC è stato aggiornato con diverse nuove funzionalità. La versione aggiornata di WIC è disponibile anche in Windows 7 e Windows Server 2008 R2 tramite l'aggiornamento della piattaforma per Windows 7, disponibile tramite l'aggiornamento della piattaforma per Windows 7.

Integrazione migliorata di Direct2D

WiC in Windows 8 fornisce queste API per migliorare l'integrazione direct2D con WIC:

Modifiche al supporto alfa codec BMP

WIC in Windows 8 supporta il caricamento di file immagine BITMAPV5HEADER come immagini in formato WICPixelFormat32bppBGRA. Inoltre, il codificatore BMP supporta una nuova opzione booleana ,codificatore "EnableV5Header32bppBGRA", che indica al codificatore di scrivere un BITMAPV5HEADER con i dati di immagine 32bppBGRA.

Per altre info sui formati BMP, vedi Panoramica del formato BMP.

Nuovi formati pixel

WiC in Windows 8 definisce questi nuovi formati di pixel:

  • GUID_WICPixelFormat32bppRGB
  • GUID_WICPixelFormat64bppRGB
  • GUID_WICPixelFormat96bppRGBFloat
  • GUID_WICPixelFormat64bppPRGBAHalf

Nota

Il codec predefinito TIFF restituirà GUID_WICPixelFormat96bppRGBFloat dati. Gli altri tre formati non vengono usati dai codec predefiniti.

 

Restrizioni all'estendibilità dei componenti in AppContainer

Quando viene eseguito in un processo AppContainer, che include tutte le app di Windows Store, WINDOWSC userà solo i componenti forniti da Windows, indipendentemente dal fatto che nel sistema siano installati componenti aggiuntivi. L'app che non è in esecuzione in AppContainer non è interessata.

Le app non devono apportare modifiche al codice da eseguire in un AppContainger, ma il flag WICComponentEnumerateOptions e i parametri GUID fornitore non avranno alcun effetto. WiC non riuscirà a caricare un'immagine se non può essere decodificata da un codec fornito da Windows e la chiamata al metodo CreateComponentEnumerator restituirà solo i componenti forniti da Windows.

Modifiche al contesto del colore del decodificatore PNG e CLSID_WICPngDecoder

CLSID_WICPngDecoder1 è stato aggiunto con lo stesso GUID di CLSID_WICPngDecoder ed è stato aggiunto CLSID_WICPngDecoder2 .

Quando viene compilato in base all'SDK di Windows 8, CLSID_WICPngDecoder viene #defined per CLSID_WICPngDecoder2 di alzare di livello le app appena compilate usando il nuovo comportamento del decodificatore PNG. Le app devono continuare a specificare CLSID_WICPngDecoder.

Specificando CLSID_WICPngDecoder2 verrà creata una versione del decodificatore PNG WIC che genererà un IWICColorContext da blocchi cHRM e gAMA. In questo modo è possibile usare questi metadati dello spazio dei colori con altre API di Windows per la gestione del colore dell'immagine di origine. Un IWICColorContext non viene generato dai blocchi gAMA e cHRM se è presente un blocco iCCP, se è presente un blocco sRGB o se i blocchi gAMA e cHRM indicano uno spazio colore sRGB.

Un'app può specificare CLSID_WICPngDecoder1 per creare una versione del decodificatore PNG WIC che non genera un IWICColorContext dai blocchi gAMA e cHRM. Corrisponde al comportamento del decodificatore PNG nelle versioni precedenti di Windows.

Modifiche apportate a WINCODEC_SDK_VERSION

Quando viene compilato in base all'SDK di Windows 8, WINCODEC_SDK_VERSION viene #defined per WINCODEC_SDK_VERSION2 promuovere le app appena compilate usando il nuovo comportamento del decodificatore PNG. In caso contrario, è #defined WINCODEC_SDK_VERSION1. Le app devono continuare a specificare WINCODEC_SDK_VERSION.

Se si specifica WINCODEC_SDK_VERSION quando si chiama WICCreateImagingFactory_Proxy per creare la factory di creazione dell'immagine, CLSID_WICPngDecoder2 deve essere creato anziché CLSID_WICPngDecoder1 dal metodo CreateDecoder e dalle relative varianti. Inoltre, un enumeratore di informazioni sui componenti del decodificatore restituirà CLSID_WICPngDecoder2 informazioni sul componente, ma non CLSID_WICPngDecoder1 informazioni.

Se si specifica WINCODEC_SDK_VERSION1, CLSID_WICPngDecoder1 verrà usata invece di CLSID_WICPngDecoder2 nei casi precedenti.

Modifiche a CLSID_WICImagingFactory

CLSID_WICImagingFactory1 è stato aggiunto con lo stesso GUID di CLSID_WICImagingFactory ed è stato aggiunto CLSID_WICImagingFactory2 .

Quando viene compilato in base all'SDK di Windows 8, CLSID_WICImagingFactory viene #defined per CLSID_WICImagingFactory2 di promuovere le app appena compilate usando il nuovo comportamento del decodificatore PNG. Le app devono continuare a specificare CLSID_WICImagingFactory.

Se si specifica CLSID_WICImagingFactory2 quando si chiama CoCreateInstance per creare la factory di creazione dell'immagine, CLSID_WICPngDecoder2 deve essere creato anziché CLSID_WICPngDecoder1 dal metodo CreateDecoder e dalle relative varianti. Inoltre, un enumeratore di informazioni sui componenti del decodificatore restituirà CLSID_WICPngDecoder2 informazioni sul componente, ma non CLSID_WICPngDecoder1 informazioni.

Se si specifica CLSID_WICImagingFactory1 , CLSID_WICPngDecoder1 verrà usata invece di CLSID_WICPngDecoder2 nei casi precedenti.

Novità di Windows 7

In Windows 7, WIC è stato aggiornato con diverse nuove funzionalità. Questo argomento fornisce un'introduzione rapida a queste nuove funzionalità.

Aggiornamenti al codec TIFF

Il codec WIC TIFF è stato aggiornato per Windows 7 per supportare diverse funzionalità non supportate dalla versione precedente di WIC.

  • Supporto per file TIFF di grandi dimensioni.
  • Decodificare le immagini TIFF affiancate.
  • Decodificare le immagini TIFF flat (planare).
  • Decodificare immagini TIFF codificate JPEG.

Decodifica progressiva

La decodifica progressiva consente di decodificare e eseguire il rendering incrementale di parti di un'immagine prima del completamento del download dell'intera immagine. Questa funzionalità migliora notevolmente l'esperienza utente durante la visualizzazione di immagini da Internet, perché l'utente non deve attendere il download dell'intera immagine prima che la decodifica possa iniziare. Con la decodifica progressiva, gli utenti sono in grado di visualizzare un'anteprima dell'immagine con i dati disponibili a lungo prima del download dell'intera immagine. Questa funzionalità è essenziale per qualsiasi applicazione usata per visualizzare immagini da Internet o da origini dati con larghezza di banda limitata.

Per altre informazioni, vedere Panoramica della decodifica progressiva.

Supporto esteso dei metadati per JPEG, PNG e GIF

In Windows 7 WIC ha esteso il supporto dei metadati per le immagini JPEG, PNG e GIF.

  • Aggiunta del supporto per le proprietà GIF e GIF animate.
  • Gestori di metadati JPG espansi per supportare la dominanza, la luminanza e i metadati dei commenti.
  • Gestori di metadati PNG espansi per supportare metadati tIME, sRGB, iCCP, hIST, cHRM, iTXt, bKGD e gAMA.
  • Sono stati aggiunti nuovi gestori di metadati 8BIM per i metadati ResolutionInfo e i metadati del digest IPTC.
  • Sono stati aggiunti nuovi gestori di metadati per i metadati GCE (Logical Screen Descriptor), Image Descriptor (IMD), Graphic Control Extensions (GCE) e Application Extensions (APE).
  • Supporto per i metadati che si estendono su blocchi APPn.

Supporto per apartment a thread multipli

Gli oggetti all'interno di un apartment multithreading (MTA) possono essere chiamati simultaneamente da qualsiasi numero di thread all'interno dell'MTA, consentendo prestazioni migliori nei sistemi multicore e in determinati scenari di server. Inoltre, i codec WIC che vivono all'interno di un MTA possono chiamare altri oggetti che vivono all'interno dell'MTA senza il costo di marshalling associato alla chiamata tra thread che vivono in appartamenti STA diversi. In Windows 7 tutti i codec WIC inclusi sono stati aggiornati per supportare MTA, tra cui JPEG, TIFF, PNG, GIF, ICO e BMP. È consigliabile scrivere codec per supportare MTA. I codec che non supportano MTA causeranno una degredazione significativa delle prestazioni nelle applicazioni multithreading a causa del marshalling. L'abilitazione del supporto MTA richiede l'implementazione corretta della sincronizzazione nel codec. L'implementazione esatta di queste tecniche di sincronizzazione esula dall'ambito di questo documento. Di seguito è riportato un riferimento generale per la sincronizzazione degli oggetti COM (Component Object Model).

Implementazioni del gruppo di lavoro dei metadati

Attualmente sono disponibili diversi formati di archiviazione dei metadati che contengono proprietà sovrapposte, senza standard di settore chiari o indicazioni su metodi coerenti per la lettura e la scrittura di questi formati di metadati. Per semplificare questa varietà di formati e proprietà, è stato creato il gruppo di lavoro dei metadati (MWG). L'obiettivo del MWG è fornire linee guida che garantiscono l'interoperabilità tra un'ampia gamma di piattaforme, applicazioni e dispositivi. Le linee guida stabilite dal MWG si applicano ai campi dei metadati XMP, Exif e IPTC e ai formati di immagine JPEG, TIFF e PSD.

In Windows 7, il gestore dei metadati delle foto e il livello dei criteri dei metadati sono stati aggiornati per leggere e scrivere metadati delle immagini in base alle linee guida stabilite dal MWG. Per altre informazioni sul gruppo di lavoro dei metadati (MWG), vedere le linee guida per i metadati stabilite.

Funzionalità di Windows 7 supportate in Windows Vista e Windows Server 2008

L'aggiornamento della piattaforma per Windows Vista è un set di librerie di runtime che consente agli sviluppatori di assegnare applicazioni sia a Windows 7 che a Windows Vista. L'aggiornamento della piattaforma per Windows Server 2008 è un set di librerie di runtime che consente agli sviluppatori di assegnare applicazioni sia a Windows Server 2008 R2 che a Windows Server 2008. L'aggiornamento della piattaforma per Windows Vista e l'aggiornamento della piattaforma per Windows Server 2008 saranno disponibili per tutti i clienti di Windows Vista e Windows Server 2008 tramite Windows Update. Le applicazioni di terze parti che richiedono l'aggiornamento della piattaforma per Windows Vista o l'aggiornamento della piattaforma per Windows Server 2008 possono avere Windows Update rilevare se l'aggiornamento richiesto è installato; in caso contrario, Windows Update lo scaricherà e lo installerà in background. Per altre informazioni su entrambi gli aggiornamenti, vedere Platform Update per Windows Vista