Delen via


Wat is er nieuw in WIC?

Windows Imaging Component (WIC) is bijgewerkt met nieuwe versies van Windows. Dit onderwerp bevat een korte inleiding tot deze nieuwe functies.

Wat is er nieuw voor Windows 10, versie 1507

Toegang tot JPEG-gegevens op laag niveau voor WIC-decodering en codering

Vanaf Windows 10 versie 1507 biedt WIC toegang tot JPEG-gegevensstructuren op laag niveau, waaronder Huffman- en kwantisatietabellen. Zie de volgende onderwerpen voor meer informatie:

JPEG-indexering

JPEG-indexering is een techniek die de prestaties van het willekeurig openen van kleine subregio's van een grote JPEG-afbeelding aanzienlijk verbetert, tegen de kosten van extra geheugengebruik. JPEG-indexering kan worden gebruikt door elke beller van WIC.

De interface ID2D1ImageSourceFromWic is ontworpen om JPEG-indexering te gebruiken als deze is ingeschakeld. De ID2D1ImageSource-API vraagt bijvoorbeeld alleen de benodigde secties van de afbeelding aan in een scenario, zoals pannen en zoomen voor een afbeelding met een grote resolutie. Zie de volgende onderwerpen voor meer informatie:

Wat is er nieuw voor Windows 8.1?

Ondersteuning voor JPEG YCbCr-afbeeldingen

Vanaf Windows 8.1 biedt WIC ondersteuning voor het decoderen, transformeren en coderen van JPEG Y'CbCr-afbeeldingsgegevens in de systeemeigen indeling. Hierdoor kunnen apps de verwerkingstijd en het geheugenverbruik voor bepaalde imaging-bewerkingen aanzienlijk verminderen wanneer ze met Y'CbCr gecodeerde JPEG's werken. Zie de volgende onderwerpen voor meer informatie:

Ondersteuning voor geblokkeerde compressie-indelingen (DDS-bestanden)

Vanaf Windows 8.1 voegt WIC een nieuwe codec toe die DDS-afbeeldingen ondersteunt die zijn gecodeerd in de volgende indelingen: DXGI_FORMAT_BC1_UNORM, DXGI_FORMAT_BC2_UNORM en DXGI_FORMAT_BC3_UNORM. Gecomprimeerde DDS-gegevens kunnen worden geopend in een gedecodeerde vorm met behulp van standaard WIC-interfaces of rechtstreeks worden geopend met behulp van nieuwe DDS-specifieke interfaces. Zie de volgende onderwerpen voor meer informatie:

Wat is er nieuw voor Windows 8?

In Windows 8 is WIC bijgewerkt met verschillende nieuwe functies. De bijgewerkte versie van WIC is ook beschikbaar op Windows 7 en Windows Server 2008 R2 via de Platform Update voor Windows 7, die beschikbaar is via de Platform Update voor Windows 7.

Verbeterde Direct2D-integratie

WIC in Windows 8 biedt deze API's om de Direct2D-integratie met WIC te verbeteren:

Wijzigingen in alfa-ondersteuning voor BMP-codecs

WIC in Windows 8 ondersteunt het laden van BITMAPV5HEADER afbeeldingsbestanden als WICPixelFormat32bppBGRA-opgemaakte afbeeldingen. Daarnaast ondersteunt de BMP-encoder een nieuwe Booleaanse encoderoptie "EnableV5Header32bppBGRA", waarmee de encoder een BITMAPV5HEADER schrijft met de 32bppBGRA-afbeeldingsgegevens.

Voor meer informatie over BMP-indelingen, zie Overzicht van BMP-indelingen.

Nieuwe pixelindelingen

WIC in Windows 8 definieert deze nieuwe pixelindelingen:

  • GUID_WICPixelFormat32bppRGB
  • GUID_WICPixelFormat64bppRGB
  • GUID_WICPixelFormat96bppRGBFloat
  • GUID_WICPixelFormat64bppPRGBAHalf

Notitie

De ingebouwde TIFF-codec retourneert GUID_WICPixelFormat96bppRGBFloat gegevens. De andere drie indelingen worden niet gebruikt door ingebouwde codecs.

 

Beperkingen voor de uitbreidbaarheid van onderdelen in AppContainer

Bij uitvoering in een AppContainer-proces, dat alle Windows Store-apps omvat, gebruikt WIC alleen door Windows geleverde onderdelen, ongeacht of er extra onderdelen op het systeem zijn geïnstalleerd. De app die niet wordt uitgevoerd in AppContainer, wordt niet beïnvloed.

Apps hoeven geen codewijzigingen aan te brengen die moeten worden uitgevoerd in een AppContainger, maar de WICComponentEnumerateOptions vlag en GUID-parameters van de leverancier hebben geen effect. WIC kan een afbeelding niet laden als deze niet kan worden gedecodeerd door een door Windows geleverde codec, en het aanroepen van de CreateComponentEnumerator-methode zou alleen door Windows geleverde componenten retourneren.

Wijzigingen in CLSID_WICPngDecoder en ondersteuning voor PNG-decoder kleurencontext.

CLSID_WICPngDecoder1 is toegevoegd met dezelfde GUID als CLSID_WICPngDecoder, en ook CLSID_WICPngDecoder2 is nu toegevoegd.

Wanneer deze is gecompileerd op basis van de Windows 8 SDK, wordt CLSID_WICPngDecoder gereguleerd naar CLSID_WICPngDecoder2 om het gebruik van het nieuwe PNG-decodergedrag in nieuw gecompileerde apps te bevorderen. Apps moeten CLSID_WICPngDecoderblijven opgeven.

Wanneer u CLSID_WICPngDecoder2 specificeert, wordt er een versie van de WIC PNG-decoder gecreëerd die een IWICColorContext- genereert op basis van cHRM- en gAMA-segmenten. Hierdoor kunnen deze metagegevens van de kleurruimte worden gebruikt met andere Windows-API's voor het beheren van de bronafbeelding. Een IWICColorContext- wordt niet gegenereerd op basis van de gAMA- en cHRM-segmenten als er een iCCP-segment aanwezig is, als er een sRGB-segment aanwezig is, of als de gAMA- en cHRM-segmenten een sRGB-kleurruimte aangeven.

Een app kan CLSID_WICPngDecoder1 opgeven om een versie van de WIC PNG-decoder te maken die de gAMA- en cHRM-segmenten niet gebruikt om een IWICColorContext- te genereren. Dit komt overeen met het gedrag van de PNG-decoder in eerdere versies van Windows.

Wijzigingen in WINCODEC_SDK_VERSION

Wanneer het wordt gecompileerd tegen de Windows 8 SDK, wordt WINCODEC_SDK_VERSION gedefinieerd als WINCODEC_SDK_VERSION2 om nieuwe, gecompileerde apps te promoten die gebruikmaken van het nieuwe PNG-decodergdrag. Anders wordt het gedefinieerd als WINCODEC_SDK_VERSION1. Apps moeten WINCODEC_SDK_VERSIONblijven opgeven.

Als u WINCODEC_SDK_VERSION opgeeft bij het aanroepen van WICCreateImagingFactory_Proxy om de imaging factory te creëren, wordt CLSID_WICPngDecoder2 gemaakt in plaats van CLSID_WICPngDecoder1 van de methode CreateDecoder en de bijbehorende varianten. Bovendien retourneert een enumerator van een decoderonderdeel CLSID_WICPngDecoder2 onderdeelgegevens, maar niet CLSID_WICPngDecoder1 informatie.

Als u WINCODEC_SDK_VERSION1 opgeeft, wordt CLSID_WICPngDecoder1 gebruikt in plaats van CLSID_WICPngDecoder2 in de bovenstaande gevallen.

Wijzigingen in CLSID_WICImagingFactory

CLSID_WICImagingFactory1 is toegevoegd met dezelfde GUID als CLSID_WICImagingFactory, en ook CLSID_WICImagingFactory2 is toegevoegd.

Wanneer gecompileerd tegen de Windows 8 SDK, wordt CLSID_WICImagingFactory #defined naar CLSID_WICImagingFactory2 om nieuw gecompileerde apps te bevorderen die het nieuwe PNG-decodergedrag gebruiken. Apps moeten CLSID_WICImagingFactoryblijven opgeven.

Als u CLSID_WICImagingFactory2 opgeeft bij het aanroepen van CoCreateInstance om de imaging factory te maken, worden CLSID_WICPngDecoder2 gemaakt in plaats van CLSID_WICPngDecoder1 van de methode CreateDecoder methode en de bijbehorende varianten. Bovendien retourneert een enumerator van een decoderonderdeel CLSID_WICPngDecoder2 onderdeelgegevens, maar niet CLSID_WICPngDecoder1 informatie.

Als u CLSID_WICImagingFactory1 opgeeft, wordt CLSID_WICPngDecoder1 gebruikt in plaats van CLSID_WICPngDecoder2 in de bovenstaande gevallen.

Wat is er nieuw voor Windows 7?

In Windows 7 is WIC bijgewerkt met verschillende nieuwe functies. Dit onderwerp bevat een korte inleiding tot deze nieuwe functies.

Updates voor de TIFF-codec

De WIC TIFF-codec is bijgewerkt voor Windows 7 ter ondersteuning van verschillende functies die niet worden ondersteund door de vorige versie van WIC.

  • Ondersteuning voor grote TIFF-bestanden.
  • Decoderen van betegelde TIFF-afbeeldingen.
  • Platte (planar) TIFF-afbeeldingen decoderen.
  • JPEG-gecodeerde TIFF-afbeeldingen decoderen.

Progressieve decodering

Progressieve decodering biedt de mogelijkheid om delen van een afbeelding incrementeel te decoderen en weer te geven voordat de volledige afbeelding is gedownload. Deze functie verbetert de gebruikerservaring aanzienlijk bij het weergeven van afbeeldingen van internet, omdat de gebruiker niet hoeft te wachten tot de volledige afbeelding is gedownload voordat de decodering kan beginnen. Met progressieve decodering kunnen gebruikers een voorbeeld van een afbeelding zien met beschikbare gegevens lang voordat de volledige afbeelding wordt gedownload. Deze functie is essentieel voor elke toepassing die wordt gebruikt om afbeeldingen van internet of van gegevensbronnen met beperkte bandbreedte weer te geven.

Zie het Progressive Decoding Overviewvoor meer informatie.

Uitgebreide metagegevensondersteuning voor JPEG, PNG en GIF

In Windows 7 heeft WIC de metagegevensondersteuning voor JPEG-, PNG- en GIF-afbeeldingen uitgebreid.

  • Er is ondersteuning toegevoegd voor geanimeerde GIF's en GIF-eigenschappen.
  • Uitgebreide JPG-metagegevenshandlers ter ondersteuning van chrominantie, luminantie en metagegevens van opmerkingen.
  • Uitgebreide PNG-metagegevenshandlers ter ondersteuning van metagegevens van tIME, sRGB, iCCP, hIST, cHRM, iTXt, bKGD en gAMA-metagegevens.
  • Er zijn nieuwe 8BIM-metagegevenshandlers toegevoegd voor ResolutionInfo-metagegevens en IPTC-digestmetagegevens.
  • Er zijn nieuwe metagegevenshandlers toegevoegd voor LSD-metagegevens (Logical Screen Descriptor), Image Descriptor (IMD), Graphic Control Extensions (GCE) en APE-metagegevens (Application Extensions).
  • Ondersteuning voor metagegevens die APPn-blokken omvatten.

Ondersteuning voor meerdere threads appartement

Objecten binnen een multithreaded appartement (MTA) kunnen gelijktijdig worden aangeroepen door een willekeurig aantal threads binnen de MTA, waardoor betere prestaties op multicore-systemen en bepaalde serverscenario's mogelijk zijn. Daarnaast kunnen WIC-codecs die binnen een MTA leven andere objecten oproepen die zich binnen dezelfde MTA bevinden, zonder de marshalingkosten die gepaard gaan met het aanroepen tussen threads die zich in verschillende STA-appartementen bevinden. In Windows 7 zijn alle in-box WIC-codecs bijgewerkt ter ondersteuning van MTA, waaronder JPEG, TIFF, PNG, GIF, ICO en BMP. Het wordt ten zeerste aanbevolen om codecs te schrijven ter ondersteuning van MTA. Codecs die geen ondersteuning bieden voor MTA, veroorzaken aanzienlijke prestatievermindering in multithreaded-toepassingen vanwege marshaling. Voor het inschakelen van MTA-ondersteuning moet de juiste synchronisatie in de codec worden geïmplementeerd. De exacte implementatie van deze synchronisatietechnieken valt buiten het bereik van dit document. Hieronder vindt u een algemene verwijzing voor het synchroniseren van COM-objecten (Component Object Model).

Implementaties van metagegevenswerkgroepen

Er zijn momenteel verschillende indelingen voor metagegevensopslag die overlappende eigenschappen bevatten, zonder duidelijke industriestandaard of richtlijnen voor consistente methoden voor het lezen en schrijven van deze metagegevensindelingen. Om u te helpen met deze verschillende indelingen en eigenschappen, is de metagegevenswerkgroep (MWG) gevormd. Het doel van de MWG is om richtlijnen te bieden die zorgen voor interoperabiliteit tussen een groot aantal platforms, toepassingen en apparaten. De richtlijnen die door de MWG zijn vastgesteld, zijn van toepassing op de velden XMP, Exif en IPTC, en op de JPEG-, TIFF- en PSD-afbeeldingsindelingen.

In Windows 7 zijn de handler voor fotometagegevens en de beleidslaag voor metagegevens bijgewerkt om metagegevens van afbeeldingen te lezen en schrijven volgens de richtlijnen die door de MWG zijn vastgesteld. Zie de vastgestelde metagegevensrichtlijnenvoor meer informatie over de werkgroep metagegevens (MWG).

Windows 7-functies die worden ondersteund op Windows Vista en Windows Server 2008

De Platform Update voor Windows Vista is een set runtimebibliotheken waarmee ontwikkelaars toepassingen kunnen richten op zowel Windows 7 als Windows Vista. De platformupdate voor Windows Server 2008 is een set runtimebibliotheken waarmee ontwikkelaars toepassingen kunnen richten op zowel Windows Server 2008 R2 als Windows Server 2008. De platformupdate voor Windows Vista en de platformupdate voor Windows Server 2008 zijn beschikbaar voor alle Windows Vista- en Windows Server 2008-klanten via Windows Update. Toepassingen van derden waarvoor Platform Update voor Windows Vista of Platform Update voor Windows Server 2008 is vereist, kunnen door Windows Update laten detecteren of de vereiste update is geïnstalleerd. Als dit niet het geval is, wordt de vereiste update door Windows Update gedownload en op de achtergrond geïnstalleerd. Zie Platform Update voor Windows Vista voor meer informatie over beide updates