Nouveautés de WIC
Windows Imaging Component (WIC) a été mis à jour avec les nouvelles versions de Windows. Cette rubrique fournit une introduction rapide à ces nouvelles fonctionnalités.
Nouveautés de Windows 10 version 1507
Accès aux données JPEG de bas niveau pour le décodage et l’encodage WIC
À compter de Windows 10, version 1507, WIC permet d’accéder aux structures de données JPEG de bas niveau, notamment aux tables Huffman et de quantisation. Pour plus d'informations, voir les rubriques suivantes :
Indexation JPEG
L’indexation JPEG est une technique qui améliore considérablement les performances de l’accès aléatoire aux petites sous-régions d’une grande image JPEG, au prix d’une utilisation supplémentaire de la mémoire. L’indexation JPEG peut être exploitée par n’importe quel appelant de WIC.
L’interface ID2D1ImageSourceFromWic est conçue pour tirer parti de l’indexation JPEG si elle est activée. Par exemple, l’API ID2D1ImageSource demande uniquement les sections nécessaires de l’image dans un scénario tel que le panoramique et le zoom pour une image de grande résolution. Pour plus d'informations, voir les rubriques suivantes :
Nouveautés de Windows 8.1
Prise en charge des images JPEG YCbCr
À compter de Windows 8.1, WIC prend en charge le décodage, la transformation et l’encodage des données d’image JPEG Y’CbCr dans leur format natif. Cela permet aux applications de réduire considérablement le temps de traitement et la consommation de mémoire pour certaines opérations d’imagerie lors de l’utilisation de fichiers JPEG encodés Y’CbCr. Pour plus d'informations, voir les rubriques suivantes :
Prise en charge des formats compressés par bloc (fichiers DDS)
À compter de Windows 8.1, WIC ajoute un nouveau codec qui prend en charge les images DDS encodées dans les formats suivants : DXGI_FORMAT_BC1_UNORM, DXGI_FORMAT_BC2_UNORM et DXGI_FORMAT_BC3_UNORM. Les données compressées de blocs DDS sont accessibles sous une forme décodée à l’aide d’interfaces WIC standard, ou directement accessibles à l’aide de nouvelles interfaces spécifiques À DDS. Pour plus d'informations, voir les rubriques suivantes :
Nouveautés de Windows 8
Dans Windows 8, WIC a été mis à jour avec plusieurs nouvelles fonctionnalités. La version mise à jour de WIC est également disponible sur Windows 7 et Windows Server 2008 R2 via la mise à jour de plateforme pour Windows 7, qui est disponible via la mise à jour de plateforme pour Windows 7.
Amélioration de l’intégration de Direct2D
WIC dans Windows 8 fournit ces API pour améliorer l’intégration de Direct2D à WIC :
- IWICImageEncoder : nouvelle interface qui peut encoder le contenuDirect2D ID2D1Image dans un IWICBitmapFrameEncode. Les méthodes de cette interface prennent un pointeur vers WICImageParameters, qui sont des paramètres pour contrôler l’encodage.
- IWICImagingFactory2 : nouvelle fabrique WIC avec la méthode CreateImageEncoder . Cette interface hérite de la fabrique WIC d’origine, IWICImagingFactory, et est créée de la même façon.
Modifications apportées à la prise en charge alpha du codec BMP
WIC dans Windows 8 prend en charge le chargement des fichiers image BITMAPV5HEADER en tant qu’images au format WICPixelFormat32bppBGRA. En outre, l’encodeur BMP prend en charge une nouvelle option d’encodeur booléen « EnableV5Header32bppBGRA », qui indique à l’encodeur d’écrire un BITMAPV5HEADER avec les données d’image 32bppBGRA.
Pour plus d’informations sur les formats BMP, consultez Vue d’ensemble du format BMP.
Nouveaux formats de pixels
WIC dans Windows 8 définit ces nouveaux formats de pixels :
- GUID_WICPixelFormat32bppRGB
- GUID_WICPixelFormat64bppRGB
- GUID_WICPixelFormat96bppRGBFloat
- GUID_WICPixelFormat64bppPRGBAHalf
Notes
Le codec intégré TIFF retourne GUID_WICPixelFormat96bppRGBFloat données. Les trois autres formats ne sont pas utilisés par les codecs intégrés.
Restrictions relatives à l’extensibilité des composants dans AppContainer
Lors de l’exécution dans un processus AppContainer, qui inclut toutes les applications du Windows Store, WIC utilise uniquement les composants fournis par Windows, que des composants supplémentaires soient installés ou non sur le système. Les applications qui ne s’exécutent pas dans AppContainer ne sont pas affectées.
Les applications n’ont pas besoin d’apporter de modifications au code pour s’exécuter dans un AppContainger, mais l’indicateur WICComponentEnumerateOptions et les paramètres GUID du fournisseur n’auront aucun effet. WIC ne parvient pas à charger une image si elle ne peut pas être décodée par un codec fourni par Windows, et l’appel de la méthode CreateComponentEnumerator renvoie uniquement les composants fournis par Windows.
Modifications apportées à CLSID_WICPngDecoder et au contexte de couleur du décodeur PNG
CLSID_WICPngDecoder1 a été ajouté avec le même GUID que CLSID_WICPngDecoder et CLSID_WICPngDecoder2 a été ajouté.
Lorsqu’elle est compilée sur le Kit de développement logiciel (SDK) Windows 8, CLSID_WICPngDecoder est #defined à CLSID_WICPngDecoder2 pour promouvoir les applications nouvellement compilées à l’aide du nouveau comportement du décodeur PNG. Les applications doivent continuer à spécifier CLSID_WICPngDecoder.
La spécification CLSID_WICPngDecoder2 crée une version du décodeur PNG WIC qui génère un IWICColorContext à partir de blocs cHRM et gAMA. Cela permet d’utiliser ces métadonnées d’espace de couleurs avec d’autres API Windows pour la gestion des couleurs de l’image source. Un IWICColorContext n’est pas généré à partir des blocs gAMA et cHRM si un bloc iCCP est présent, si un bloc sRGB est présent ou si les blocs gAMA et cHRM indiquent un espace de couleur sRGB.
Une application peut spécifier CLSID_WICPngDecoder1 pour créer une version du décodeur PNG WIC qui ne génère pas de texte IWICColorContext à partir des blocs gAMA et cHRM. Cela correspond au comportement du décodeur PNG dans les versions précédentes de Windows.
Modifications apportées à WINCODEC_SDK_VERSION
Lorsqu’il est compilé par rapport au KIT de développement logiciel (SDK) Windows 8, WINCODEC_SDK_VERSION est #defined de WINCODEC_SDK_VERSION2 pour promouvoir les applications nouvellement compilées à l’aide du nouveau comportement du décodeur PNG. Sinon, il est #defined de WINCODEC_SDK_VERSION1. Les applications doivent continuer à spécifier WINCODEC_SDK_VERSION.
La spécification de WINCODEC_SDK_VERSION lors de l’appel de WICCreateImagingFactory_Proxy pour créer la fabrique d’images entraîne la création d’CLSID_WICPngDecoder2 au lieu de CLSID_WICPngDecoder1 à partir de la méthode CreateDecoder et de ses variantes. En outre, un énumérateur d’informations de composant de décodeur retourne CLSID_WICPngDecoder2 informations de composant, mais pas CLSID_WICPngDecoder1 informations.
La spécification de WINCODEC_SDK_VERSION1 entraîne l’utilisation de CLSID_WICPngDecoder1 au lieu de CLSID_WICPngDecoder2 dans les cas ci-dessus.
Modifications apportées à CLSID_WICImagingFactory
CLSID_WICImagingFactory1 a été ajouté avec le même GUID que CLSID_WICImagingFactory, et CLSID_WICImagingFactory2 a été ajouté.
Lorsqu’elle est compilée sur le Kit de développement logiciel (SDK) Windows 8, CLSID_WICImagingFactory est #defined de CLSID_WICImagingFactory2 pour promouvoir les applications nouvellement compilées à l’aide du nouveau comportement du décodeur PNG. Les applications doivent continuer à spécifier CLSID_WICImagingFactory.
La spécification de CLSID_WICImagingFactory2 lors de l’appel de CoCreateInstance pour créer la fabrique d’images entraîne la création d’CLSID_WICPngDecoder2 au lieu de CLSID_WICPngDecoder1 à partir de la méthode CreateDecoder et de ses variantes. En outre, un énumérateur d’informations de composant de décodeur retourne CLSID_WICPngDecoder2 informations de composant, mais pas CLSID_WICPngDecoder1 informations.
La spécification de CLSID_WICImagingFactory1 entraîne l’utilisation de CLSID_WICPngDecoder1 au lieu de CLSID_WICPngDecoder2 dans les cas ci-dessus.
Nouveautés de Windows 7
Dans Windows 7, WIC a été mis à jour avec plusieurs nouvelles fonctionnalités. Cette rubrique fournit une introduction rapide à ces nouvelles fonctionnalités.
Mises à jour au codec TIFF
Le codec WIC TIFF a été mis à jour pour Windows 7 afin de prendre en charge plusieurs fonctionnalités non prises en charge par la version précédente de WIC.
- Prise en charge des fichiers TIFF volumineux.
- Décoder des images TIFF en mosaïque.
- Décoder des images TIFF plates (planaires).
- Décodez des images TIFF encodées au format JPEG.
Décodage progressif
Le décodage progressif offre la possibilité de décoder et de restituer de manière incrémentielle des parties d’une image avant la fin du téléchargement de l’image entière. Cette fonctionnalité améliore considérablement l’expérience utilisateur lors de l’affichage d’images à partir d’Internet, car l’utilisateur n’a pas besoin d’attendre que l’image entière soit téléchargée avant que le décodage puisse commencer. Avec le décodage progressif, les utilisateurs peuvent voir un aperçu d’image avec les données disponibles bien avant le téléchargement de l’image entière. Cette fonctionnalité est essentielle pour toute application utilisée pour afficher des images à partir d’Internet ou de sources de données avec une bande passante limitée.
Pour plus d’informations, consultez Vue d’ensemble du décodage progressif.
Prise en charge étendue des métadonnées pour JPEG, PNG et GIF
Dans Windows 7, WIC a étendu sa prise en charge des métadonnées pour les images JPEG, PNG et GIF.
- Ajout de la prise en charge des propriétés GIF et GIF animées.
- Des gestionnaires de métadonnées JPG étendus pour prendre en charge les métadonnées chrominance, luminance et commentaires.
- Des gestionnaires de métadonnées PNG étendus pour prendre en charge les métadonnées tIME, sRGB, iCCP, hIST, cHRM, iTXt, bKGD et gAMA.
- Ajout de nouveaux gestionnaires de métadonnées 8BIM pour les métadonnées ResolutionInfo et les métadonnées de synthèse IPTC.
- Ajout de nouveaux gestionnaires de métadonnées pour le descripteur d’écran logique (LSD), le descripteur d’images (IMD), les extensions de contrôle graphique (GCE) et les métadonnées des extensions d’application (APE).
- Prise en charge des métadonnées qui s’étendent sur des blocs APPn.
Prise en charge des appartements multithreads
Les objets au sein d’un appartement multithread (MTA) peuvent être appelés simultanément par n’importe quel nombre de threads au sein de l’ASSISTANT, ce qui permet de meilleures performances sur les systèmes multicœurs et certains scénarios de serveur. En outre, les codecs WIC qui se trouvent dans un MTA peuvent appeler d’autres objets qui vivent dans l’ASSISTANT sans le coût de marshaling associé à l’appel entre des threads qui vivent dans des appartements STA différents. Dans Windows 7, tous les codecs WIC inclus ont été mis à jour pour prendre en charge MTA, notamment JPEG, TIFF, PNG, GIF, ICO et BMP. Il est vivement recommandé d’écrire des codecs pour prendre en charge MTA. Les codecs qui ne prennent pas en charge MTA entraînent une détérioration significative des performances dans les applications multithread en raison du marshaling. L’activation de la prise en charge de MTA nécessite l’implémentation d’une synchronisation appropriée dans le codec. L’implémentation exacte de ces techniques de synchronisation dépasse le cadre de ce document. Une référence générale pour la synchronisation des objets COM (Component Object Model) est fournie ci-dessous.
Implémentations du groupe de travail sur les métadonnées
Il existe actuellement un large éventail de formats de stockage de métadonnées qui contiennent des propriétés qui se chevauchent, sans aucune norme industrielle claire ni conseils sur les méthodes cohérentes de lecture et d’écriture de ces formats de métadonnées. Pour faciliter l’utilisation de cette variété de formats et de propriétés, le Groupe de travail sur les métadonnées (MWG) a été créé. L’objectif du MWG est de fournir des lignes directrices qui garantissent l’interopérabilité entre un large éventail de plateformes, d’applications et d’appareils. Les directives établies par le MWG s’appliquent aux champs de métadonnées XMP, Exif et IPTC, ainsi qu’aux formats d’image JPEG, TIFF et PSD.
Dans Windows 7, le gestionnaire de métadonnées de photos et la couche de stratégie de métadonnées ont été mis à jour pour lire et écrire des métadonnées d’image conformément aux instructions établies par le MWG. Pour plus d’informations sur le Groupe de travail sur les métadonnées (MWG), consultez les instructions établies sur les métadonnées.
Fonctionnalités Windows 7 prises en charge sur Windows Vista et Windows Server 2008
La mise à jour de plateforme pour Windows Vista est un ensemble de bibliothèques d’exécution qui permet aux développeurs de cibler des applications vers Windows 7 et Windows Vista. La mise à jour de plateforme pour Windows Server 2008 est un ensemble de bibliothèques d’exécution qui permet aux développeurs de cibler des applications sur Windows Server 2008 R2 et Windows Server 2008. La mise à jour de plateforme pour Windows Vista et la mise à jour de plateforme pour Windows Server 2008 seront disponibles pour tous les clients Windows Vista et Windows Server 2008 via Windows Update. Les applications tierces qui nécessitent la mise à jour de plateforme pour Windows Vista ou la mise à jour de plateforme pour Windows Server 2008 peuvent avoir Windows Update détecter si la mise à jour requise est installée ; si ce n’est pas le cas, Windows Update la téléchargera et l’installera en arrière-plan. Pour plus d’informations sur les deux mises à jour, consultez Mise à jour de plateforme pour Windows Vista