Udostępnij za pośrednictwem


Co nowego w WIC

Składnik Windows Imaging (WIC) został zaktualizowany o nowe wersje systemu Windows. Ten temat zawiera krótkie wprowadzenie do tych nowych funkcji.

Co nowego w systemie Windows 10 w wersji 1507

Dostęp do danych JPEG niskiego poziomu na potrzeby dekodowania I kodowania WIC

Począwszy od systemu Windows 10, wersja 1507, WIC zapewnia dostęp do struktur danych JPEG niskiego poziomu, w tym Huffman i tabel kwantyzacji. Aby uzyskać więcej informacji, zobacz następujące tematy:

Indeksowanie JPEG

Indeksowanie JPEG to technika, która znacznie poprawia wydajność losowego uzyskiwania dostępu do małych regionów podrzędnych dużego obrazu JPEG kosztem dodatkowego użycia pamięci. Indeksowanie JPEG może być używane przez każdego użytkownika WIC.

Interfejs ID2D1ImageSourceFromWic jest przeznaczony do korzystania z indeksowania JPEG, jeśli jest włączony. Na przykład interfejs API ID2D1ImageSource zażąda tylko wymaganych sekcji obrazu w takich sytuacjach jak przesuwanie i powiększanie obrazu o dużej rozdzielczości. Aby uzyskać więcej informacji, zobacz następujące tematy:

Co nowego w systemie Windows 8.1

Obsługa obrazów JPEG YCbCr

Począwszy od systemu Windows 8.1, WIC zapewnia obsługę dekodowania, przekształcania i kodowania danych obrazów JPEG Y'CbCr w natywnym formacie. Dzięki temu aplikacje mogą znacznie skrócić czas przetwarzania i zużycie pamięci w przypadku niektórych operacji obrazowania podczas pracy z kodowanymi plikami JPEG Y'CbCr. Aby uzyskać więcej informacji, zobacz następujące tematy:

Obsługa skompresowanych formatów blokowych (plików DDS)

Począwszy od systemu Windows 8.1, WIC dodaje nowy koder kodujący obsługujący obrazy DDS zakodowane w następujących formatach: DXGI_FORMAT_BC1_UNORM, DXGI_FORMAT_BC2_UNORM i DXGI_FORMAT_BC3_UNORM. Dostęp do skompresowanych danych DDS można uzyskać w postaci zdekodowanej przy użyciu standardowych interfejsów WIC lub bezpośrednio uzyskiwać dostęp przy użyciu nowych interfejsów specyficznych dla usługi DDS. Aby uzyskać więcej informacji, zobacz następujące tematy:

Co nowego w systemie Windows 8

W systemie Windows 8 funkcja WIC została zaktualizowana o kilka nowych funkcji. Zaktualizowana wersja WIC jest również dostępna w systemach Windows 7 i Windows Server 2008 R2 za pośrednictwem aktualizacji platformy dla systemu Windows 7, która jest dostępna za pośrednictwem aktualizacji platformy dla systemu Windows 7.

Ulepszona integracja direct2D

Funkcja WIC w systemie Windows 8 udostępnia te interfejsy API w celu poprawy integracji Direct2D z funkcją WIC.

Zmiany w obsłudze kodeka BMP dotyczące kanału alfa

Funkcja WIC w systemie Windows 8 obsługuje ładowanie BITMAPV5HEADER plików obrazów jako obrazy w formacie WICPixelFormat32bppBGRA. Ponadto koder BMP obsługuje nową opcję logiczną "EnableV5Header32bppBGRA", która nakazuje zapisanie przez koder nagłówka BITMAPV5HEADER z danymi obrazu 32bppBGRA.

Aby uzyskać więcej informacji na temat formatów BMP, zobacz omówienie formatu BMP.

Nowe formaty pikseli

WIC w systemie Windows 8 definiuje te nowe formaty pikseli:

  • GUID_WICPixelFormat32bppRGB
  • GUID_WICPixelFormat64bppRGB
  • GUID_WICPixelFormat96bppRGBFloat
  • GUID_WICPixelFormat64bppPRGBAHalf

Notatka

Wbudowany koder TIFF zwróci dane w formacie GUID_WICPixelFormat96bppRGBFloat. Pozostałe trzy formaty nie są używane przez wbudowane kodery.

 

Ograniczenia dotyczące rozszerzalności składników w aplikacji AppContainer

W przypadku uruchamiania w procesie AppContainer, który obejmuje wszystkie aplikacje ze Sklepu Windows, WIC będzie używać tylko składników dostarczanych przez system Windows, niezależnie od tego, czy dodatkowe składniki są zainstalowane w systemie. Aplikacje, które nie działają w AppContainer, nie są dotknięte.

Aplikacje nie muszą wprowadzać żadnych zmian w kodzie do uruchamiania w aplikacji AppContainger, ale WICComponentEnumerateOptions flaga i parametry identyfikatora GUID dostawcy nie będą miały wpływu. WIC nie załaduje obrazu, jeśli nie można go zdekodować za pomocą kodeka dostarczonego przez system Windows, a wywołanie metody CreateComponentEnumerator zwróci tylko komponenty dostarczone przez system Windows.

Zmiany w CLSID_WICPngDecoder oraz wsparcie dekodera PNG dla kontekstu kolorów

CLSID_WICPngDecoder1 ma taki sam identyfikator GUID jak CLSID_WICPngDecoder, a CLSID_WICPngDecoder2 został dodany.

Przy użyciu zestawu SDK systemu Windows 8, CLSID_WICPngDecoder jest zdefiniowany jako CLSID_WICPngDecoder2 w celu promowania nowo skompilowanych aplikacji korzystających z nowego zachowania dekodera PNG. Aplikacje powinny nadal określać CLSID_WICPngDecoder.

Określenie CLSID_WICPngDecoder2 spowoduje utworzenie wersji dekodera WIC PNG, która wygeneruje IWICColorContext z fragmentów cHRM i gAMA. Dzięki temu te metadane przestrzeni kolorów mogą być używane z innymi interfejsami API systemu Windows do zarządzania obrazem źródłowym. IWICColorContext nie jest generowany na podstawie fragmentów gAMA i cHRM, jeśli fragment iCCP jest obecny, jeśli fragment sRGB jest obecny, lub jeśli fragmenty gAMA i cHRM wskazują przestrzeń kolorów SRGB.

Aplikacja może określić CLSID_WICPngDecoder1, aby utworzyć wersję dekodera WIC PNG, która nie generuje IWICColorContext z fragmentów gAMA i cHRM. Jest to zgodne z zachowaniem dekodera PNG w poprzednich wersjach systemu Windows.

Zmiany w WINCODEC_SDK_VERSION

Po skompilowaniu przy użyciu zestawu SDK systemu Windows 8, WINCODEC_SDK_VERSION jest zdefiniowane jako WINCODEC_SDK_VERSION2, aby promować nowo kompilowane aplikacje z wykorzystaniem nowego zachowania dekodera PNG. W przeciwnym razie jest to zdefiniowane jako WINCODEC_SDK_VERSION1. Aplikacje powinny nadal określać WINCODEC_SDK_VERSION.

Określenie WINCODEC_SDK_VERSION podczas wywoływania WICCreateImagingFactory_Proxy w celu utworzenia fabryki do przetwarzania obrazów powoduje utworzenie CLSID_WICPngDecoder2 zamiast CLSID_WICPngDecoder1 z metody CreateDecoder i jej wariantów. Ponadto wyliczający komponentu zwróci informacje o składniku CLSID_WICPngDecoder2, ale nie informacje o CLSID_WICPngDecoder1.

Określenie WINCODEC_SDK_VERSION1 spowoduje, że CLSID_WICPngDecoder1 będą używane zamiast CLSID_WICPngDecoder2 w powyższych przypadkach.

Zmiany w CLSID_WICImagingFactory

Dodano CLSID_WICImagingFactory1 z tym samym identyfikatorem GUID co CLSID_WICImagingFactory, a także dodano CLSID_WICImagingFactory2.

Przy kompilowaniu z użyciem zestawu SDK systemu Windows 8, CLSID_WICImagingFactory jest zdefiniowany jako CLSID_WICImagingFactory2 w celu promowania nowo skompilowanych aplikacji z wykorzystaniem nowego zachowania dekodera PNG. Aplikacje powinny nadal określać CLSID_WICImagingFactory.

Określenie CLSID_WICImagingFactory2 podczas wywoływania CoCreateInstance w celu utworzenia fabryki obrazowania powoduje utworzenie CLSID_WICPngDecoder2 zamiast CLSID_WICPngDecoder1 z metody CreateDecoder i jej wariantów. Ponadto moduł wyliczania informacji o dekoderze będzie zwracał informacje o składniku CLSID_WICPngDecoder2, ale nie o składniku CLSID_WICPngDecoder1.

Określenie CLSID_WICImagingFactory1 spowoduje, że CLSID_WICPngDecoder1 będzie używany zamiast CLSID_WICPngDecoder2 w powyższych przypadkach.

Co nowego w systemie Windows 7

W systemie Windows 7 funkcja WIC została zaktualizowana o kilka nowych funkcji. Ten temat zawiera krótkie wprowadzenie do tych nowych funkcji.

Aktualizacje kodera TIFF

Koder codec WIC TIFF został zaktualizowany dla systemu Windows 7 w celu obsługi kilku funkcji, które nie są obsługiwane przez poprzednią wersję WIC.

  • Obsługa dużych plików TIFF.
  • Odkoduj obrazy TIFF z kafelkami.
  • Dekoduj płaskie (planarowe) obrazy TIFF.
  • Dekoduj zakodowane obrazy TIFF w formacie JPEG.

Dekodowanie progresywne

Dekodowanie progresywne umożliwia przyrostowe dekodowanie i renderowanie fragmentów obrazu przed zakończeniem pobierania całego obrazu. Ta funkcja znacznie poprawia środowisko użytkownika podczas przeglądania obrazów z Internetu, ponieważ użytkownik nie musi czekać na cały obraz do pobrania przed rozpoczęciem dekodowania. Dzięki progresywnemu dekodowaniu użytkownicy mogą zobaczyć podgląd obrazu z dostępnymi danymi na długo przed pobraniem całego obrazu. Ta funkcja jest niezbędna dla każdej aplikacji używanej do wyświetlania obrazów z Internetu lub ze źródeł danych z ograniczoną przepustowością.

Aby uzyskać więcej informacji, zobacz Omówienie progresywnego dekodowania.

Rozszerzona obsługa metadanych dla plików JPEG, PNG i GIF

W systemie Windows 7 funkcja WIC rozszerzyła obsługę metadanych dla obrazów JPEG, PNG i GIF.

  • Dodano obsługę animowanych GIF-ów oraz właściwości GIF-ów.
  • Rozszerzono obsługę metadanych JPG o chrominancję, luminancję i komentarze jako metadane.
  • Rozszerzono obsługę metadanych PNG, aby obsługiwać metadane tIME, sRGB, iCCP, hIST, cHRM, iTXt, bKGD i gAMA.
  • Dodano nowe programy obsługi metadanych 8BIM dla metadanych ResolutionInfo i metadanych skrótu IPTC.
  • Dodano nowe programy obsługi metadanych dla deskryptora ekranu logicznego (LSD), deskryptora obrazów (IMD), rozszerzeń kontrolek graficznych (GCE) i metadanych rozszerzeń aplikacji (APE).
  • Obsługa metadanych obejmujących bloki APPn.

Obsługa Multi Threaded Apartment

Obiekty w wielowątkowym modelu (MTA) mogą być wywoływane współbieżnie przez dowolną liczbę wątków w modelu MTA, co pozwala na lepszą wydajność w systemach wielordzeniowych i niektórych scenariuszach serwera. Ponadto kodeki WIC znajdujące się w MTA mogą wywoływać inne obiekty mieszczące się w MTA bez kosztów marshalingu związanych z wywoływaniem między wątkami znajdującymi się w różnych przestrzeniach do przetwarzania zadań STA. W systemie Windows 7 wszystkie wbudowane kodeki WIC zostały zaktualizowane w celu obsługi MTA, w tym JPEG, TIFF, PNG, GIF, ICO i BMP. Zdecydowanie zaleca się napisanie koderów w celu obsługi usługi MTA. Kodeki, które nie obsługują MTA, spowodują znaczne pogorszenie wydajności w aplikacjach wielowątkowych z powodu potrzeby marshalling'u. Włączenie obsługi MTA wymaga zaimplementowania odpowiedniej synchronizacji w koderze. Dokładna implementacja tych technik synchronizacji wykracza poza zakres tego dokumentu. Poniżej przedstawiono ogólne informacje dotyczące synchronizowania obiektów modelu obiektów obiektów składników (COM).

Implementacje grup roboczych metadanych

Obecnie istnieją różne formaty magazynu metadanych, które zawierają nakładające się właściwości bez wyraźnego standardu branżowego lub wskazówek dotyczących spójnych metod odczytywania i zapisywania tych formatów metadanych. Aby ułatwić pracę z różnymi formatami i właściwościami, utworzono grupę roboczą metadanych (MWG). Celem MWG jest zapewnienie wytycznych zapewniających współdziałanie między różnymi platformami, aplikacjami i urządzeniami. Wytyczne ustanowione przez MWG dotyczą pól metadanych XMP, Exif i IPTC oraz formatów obrazów JPEG, TIFF i PSD.

W systemie Windows 7 program obsługi metadanych zdjęć i warstwa zasad metadanych zostały zaktualizowane w celu odczytu i zapisu metadanych obrazu zgodnie z wytycznymi określonymi przez MWG. Aby uzyskać więcej informacji o grupie roboczej metadanych (MWG), zobacz ustanowione wytyczne dotyczące metadanych .

Funkcje systemu Windows 7 obsługiwane w systemach Windows Vista i Windows Server 2008

Aktualizacja platformy dla systemu Windows Vista to zestaw bibliotek czasu wykonywania, który umożliwia deweloperom kierowanie aplikacji do systemów Windows 7 i Windows Vista. Aktualizacja platformy dla systemu Windows Server 2008 to zestaw bibliotek czasu wykonywania, który umożliwia deweloperom kierowanie aplikacji do systemów Windows Server 2008 R2 i Windows Server 2008. Aktualizacja platformy dla systemu Windows Vista i aktualizacja platformy dla systemu Windows Server 2008 będą dostępne dla wszystkich klientów systemów Windows Vista i Windows Server 2008 za pośrednictwem usługi Windows Update. Aplikacje innych firm, które wymagają aktualizacji platformy dla systemu Windows Vista lub aktualizacji platformy dla systemu Windows Server 2008, mogą wykryć, czy wymagana aktualizacja jest zainstalowana; Jeśli tak nie jest, usługa Windows Update pobierze ją i zainstaluje w tle. Aby uzyskać więcej informacji na temat obu aktualizacji, zobacz Aktualizacja platformy dla systemu Windows Vista