Unterstützung für IWICDevelopRaw
Um Anwendungen die Unterstützung der RAW-Verarbeitung zu ermöglichen, wird Codecautoren dringend empfohlen, alle Parameter von IWICDevelopRaw zu implementieren. Für Windows 7 erfordert Windows Imaging Component (WIC) Unterstützung für alle IWICDevelopRaw- . Wenn Ihr Dateiformat nicht alle diese Parameter unterstützt, sollten Sie das Bilddateiformat überarbeiten.
Um die grundlegende RAW-Verarbeitung in Anwendungen zu ermöglichen, müssen Codecs Anpassungen an der Belichtung (ExposureCompensationSupport) und der Farbe (z. B. KelvinWhitePointSupport und TintSupport) unterstützen. Darüber hinaus wird die Ausgabe in bestimmte Farbräume und Pixelformate dringend empfohlen. Unterstützung für andere Anpassungen wird natürlich empfohlen und ist für Windows 7 erforderlich.
Der RAW-Codec muss grundlegende Unterstützung für die Bildrotation und schnelle Vorschau bereitstellen. Die Drehung kann auf zwei unterschiedliche Arten angegeben werden:
- IWICDevelopRaw::SetRotation-Methode. Diese Methode legt den gewünschten Drehwinkel für die Ausgabe nachfolgender Aufrufe von CopyPixels fest.
- IWICBitmapSourceTransform::CopyPixels-Methode. Der Aufrufer kann die Option dstTransform festlegen, um den gewünschten Drehwinkel anzugeben.
Diese beiden Ansätze unterscheiden sich auf folgende Weise:
- Nur IWICDevelopRaw-Einstellungen können über Instanzen des Decoderobjekts hinweg beibehalten werden.
- IWICBitmapSourceTransform::CopyPixels gilt nur für diesen bestimmten Aufruf; es gibt keineRlei Persistenz.
- IWICDevelopRaw ermöglicht eine wesentlich feiner abgrenzende Steuerung der Drehung. IWICBitmapSourceTransform::CopyPixels ist auf 90-Grad-Inkremente beschränkt.
Wenn rotation sowohl in IWICDevelopRaw als auch in IWICBitmapSourceTransform angegebenist, ist der Rotationseffekt kumulativ. Wenn ALSOICDevelopRaw beispielsweise eine Drehung um 25 Grad angibt und IWICBitmapSourceTransform eine Drehung um 90 Grad angibt, sollte Folgendes geschehen:
- Aufrufe von IWICBitmapFrameDecode::CopyPixels sollten eine Drehung um 25 Grad anwenden (d. h. nur den in IWICDevelopRawangegebenen Betrag).
- Aufrufe von IWICBitmapSourceTransform::CopyPixels mit einer dstTransform-Menge von 90 führen dann zu einer Drehung um 115 Grad (25 + 90).
- Auch hier kann nur die über IWICDevelopRaw::SetRotation angegebene Drehung um 25 Grad beibehalten werden.
In Windows Vista können Aufrufer mit den METHODEN IWICBitmapFrameDecode::GetThumbnail und IWICBitmapDecoder::GetPreview eingebettete Miniaturansichten bzw. Vorschaubilder erhalten. Diese sollen vorab berechnete Vorschauen und Miniaturansichten aus dem Bilddateistream zurückgeben. Das Generieren von Vorschauversionen oder Miniaturansichten "on the fly" führt zu einer schlechten Leistung im Windows Explorer und Bildanzeige. Der Codec muss auch eine Möglichkeit bieten, ein aktualisiertes Bild mit Bildschirmauflösung schnell zurück zu geben, wenn Benutzer die Verarbeitungseinstellungen interaktiv steuern.
Aufrufe von IWICDevelopRaw::SetRenderMode bestimmt, welche nachfolgenden Aufrufe von IWICBitmapFrameDecode::CopyPixels zurückgeben (entweder durch Geschwindigkeit oder Qualität). Darüber hinaus kann die IWICBitmapSourceTransform-Schnittstelle verwendet werden, um zu bestimmen, ob downsampling erforderlich ist, und kann die Leistung erhöhen, wenn es angewendet werden kann. Die Farbgenauigkeit aller Bilder sollte vergleichbar sein. Wenn Änderungen an den Verarbeitungseinstellungen vorgenommen werden, sollten alle diese Renderings die Änderungen widerspiegeln.