アプリケーションが RAW 処理をサポートできるようにするには、コーデック作成者が IWICDevelopRawのすべてのパラメーター実装することを強くお勧めします。 Windows 7 の場合、Windows イメージング コンポーネント (WIC) では、IWICDevelopRawのすべてのサポートが必要になります。 ファイル形式でこれらのパラメーターがすべてサポートされていない場合は、イメージ ファイル形式を変更する必要があります。
アプリケーションで基本的な RAW 処理を有効にするには、コーデックで露出 (ExposureCompensationSupport) と色 (KelvinWhitePointSupport や TintSupport など) の調整をサポートする必要があります。 さらに、特定の色空間とピクセル形式への出力を強くお勧めします。 その他の調整のサポートは、もちろん、推奨されており、Windows 7 では必要です。
RAW コーデックは、画像の回転と高速プレビューの基本的なサポートを提供する必要があります。 回転は、次の 2 つの異なる方法で指定できます。
- IWICDevelopRaw:: SetRotationメソッドします。 このメソッドは、CopyPixelsへの後続の呼び出しの出力に必要な回転角度を設定します。
- IWICBitmapSourceTransform::CopyPixels メソッド。 呼び出し元は、dstTransform オプションを設定して、目的の回転角度を示すことができます。
これらの 2 つの方法は、次の点で異なります。
- デコーダー オブジェクト インスタンス間で保持できるのは、IWICDevelopRaw 設定だけです。
- IWICBitmapSourceTransform::CopyPixels はその特定の呼び出しにのみ適用されます。どのような種類の永続化もありません。
- IWICDevelopRaw では、回転を細かく制御できます。 IWICBitmapSourceTransform::CopyPixels は 90 度増分に制限されます。
IWICDevelopRaw と IWICBitmapSourceTransformの両方で回転が指定されている場合、回転効果は累積されます。 たとえば、IWICDevelopRaw25 度の回転を指定し、IWICBitmapSourceTransformが 90 度の回転を指定場合、次のことが発生します。
- IWICBitmapFrameDecodeへの呼び出し::CopyPixels は、25 度回転 (つまり、IWICDevelopRawで指定された量だけ) を適用する必要があります。
- IWICBitmapSourceTransform::CopyPixels dstTransform の量が 90 の場合、115 度回転 (25 + 90) になります。
- ここでも、IWICDevelopRaw::SetRotation を使用して指定された 25 度回転のみを保持できます。
Windows Vista では、IWICBitmapFrameDecode::GetThumbnail と IWICBitmapDecoder::GetPreview メソッドを使用すると、呼び出し元は、それぞれ埋め込まれたサムネイルとプレビュー 画像を取得できます。 これらは、事前計算されたプレビューとサムネイルをイメージ ファイル ストリームから返すことを目的としています。 プレビューまたはサムネイルを "オンザフライ" で生成すると、Windows エクスプローラーとフォト ビューアーのパフォーマンスが低下します。 コーデックは、ユーザーが処理設定の対話型制御を行うときに、更新された画面解像度イメージをすばやく返す方法も提供する必要があります。
IWICDevelopRaw::SetRenderMode を呼び出すと、IWICBitmapFrameDecode::CopyPixels 戻り値が決定されます (速度または品質を優先)。 さらに、IWICBitmapSourceTransform インターフェイスを使用して、ダウンサンプリングが必要かどうかを判断し、適用できる場合にパフォーマンスを向上させることができます。 すべての画像の色の忠実度は同等である必要があります。 処理設定に変更が加えられると、これらのレンダリングはすべて変更を反映する必要があります。
関連トピック