IWICDevelopRaw
COM公式ドキュメント
raw コーデック形式の機能へのアクセスを提供するメソッドを公開します。
メソッド 32
vtbl = vtable インデックス(0始まり)。HSP等からCOMメソッドをインデックス指定で呼ぶ際に使用します。0〜2 は IUnknown。
raw イメージでどの機能がサポートされているかに関する情報を取得します。
| pInfo | WICRawCapabilitiesInfo* | inout | raw イメージがサポートする機能を提供する WICRawCapabilitiesInfo を受け取るポインター。 |
戻り値
型: HRESULT
このメソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラーコードを返します。
解説(Remarks)
外側の範囲の限界における結果が完璧な品質でない場合でも、コーデックはその機能をサポートしていると報告することが推奨されます。
目的の WICRawParameterSet オプションを設定します。
| ParameterSet | WICRawParameterSet | in | 目的の WICRawParameterSet オプション。 |
戻り値
型: HRESULT
このメソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラーコードを返します。
現在のパラメーターセットを取得します。
| ppCurrentParameterSet | IPropertyBag2** | out | 現在のパラメーターセットへのポインターを受け取るポインター。 |
戻り値
型: HRESULT
このメソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラーコードを返します。
露出補正のストップ値を設定します。
| ev | DOUBLE | in | 露出補正値。露出補正の値の範囲は -5.0 から +5.0 で、これは 10 段分のストップに相当します。 |
戻り値
型: HRESULT
このメソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラーコードを返します。
解説(Remarks)
外側の範囲の限界における結果が完璧な品質でない場合でも、コーデックはこのメソッドをサポートしていると報告することが推奨されます。
raw イメージの露出補正のストップ値を取得します。
| pEV | DOUBLE* | out | 露出補正のストップ値を受け取るポインター。既定値は「撮影時」の設定です。 |
戻り値
型: HRESULT
このメソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラーコードを返します。
ホワイトポイントの RGB 値を設定します。
| Red | DWORD | in | 赤のホワイトポイント値。 |
| Green | DWORD | in | 緑のホワイトポイント値。 |
| Blue | DWORD | in | 青のホワイトポイント値。 |
戻り値
型: HRESULT
このメソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラーコードを返します。
解説(Remarks)
他のホワイトポイント設定メソッド (例: SetWhitePointKelvin) が存在するため、コーデック実装者は適切な相互運用性を確保するよう注意する必要があります。たとえば、呼び出し元が名前付きホワイトポイントを使用して設定した場合、コーデック実装者は対応するケルビン温度の読み戻しを無効にしたい場合があります。以前の呼び出しを理由にコーデック実装者が特定のアクションを拒否したい特定のケースでは、WINCODEC_ERR_WRONGSTATE を返す必要があります。
ホワイトポイントの RGB 値を取得します。
| pRed | DWORD* | out | 赤のホワイトポイント値を受け取るポインター。 |
| pGreen | DWORD* | out | 緑のホワイトポイント値を受け取るポインター。 |
| pBlue | DWORD* | out | 青のホワイトポイント値を受け取るポインター。 |
戻り値
型: HRESULT
このメソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラーコードを返します。
raw ファイルの名前付きホワイトポイントを設定します。
| WhitePoint | WICNamedWhitePoint | in | 列挙値のビットごとの組み合わせ。 |
戻り値
型: HRESULT
このメソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラーコードを返します。
解説(Remarks)
名前付きホワイトポイントが raw イメージでサポートされていない場合、または raw ファイルにこの API でサポートされていない名前付きホワイトポイントが含まれている場合でも、コーデック実装者はこの機能をサポート済みとしてマークする必要があります。
名前付きホワイトポイントが raw イメージでサポートされていない場合、それが raw ファイルの事前定義されたホワイトポイントでない場合でも、名前付きホワイトポイントに合わせてイメージを調整する最善の努力を行う必要があります。
raw ファイルにこの API でサポートされていない名前付きホワイトポイントが含まれている場合、コーデック実装者はその名前付きホワイトポイントを API 内でサポートする必要があります。
他のホワイトポイント設定メソッド (例: SetWhitePointKelvin) が存在するため、コーデック実装者は適切な相互運用性を確保するよう注意する必要があります。たとえば、呼び出し元が名前付きホワイトポイントを使用して設定した場合、コーデック実装者は対応するケルビン温度の読み戻しを無効にしたい場合があります。以前の呼び出しを理由にコーデック実装者が特定のアクションを拒否したい特定のケースでは、WINCODEC_ERR_WRONGSTATE を返す必要があります。
raw イメージの名前付きホワイトポイントを取得します。
| pWhitePoint | WICNamedWhitePoint* | out | 列挙値のビットごとの組み合わせを受け取るポインター。 |
戻り値
型: HRESULT
このメソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラーコードを返します。
解説(Remarks)
名前付きホワイトポイントが raw イメージでサポートされていない場合、または raw ファイルにこの API でサポートされていない名前付きホワイトポイントが含まれている場合でも、コーデック実装者はこの機能をサポート済みとしてマークする必要があります。
名前付きホワイトポイントが raw イメージでサポートされていない場合、それが raw ファイルの事前定義されたホワイトポイントでない場合でも、名前付きホワイトポイントに合わせてイメージを調整する最善の努力を行う必要があります。
raw ファイルにこの API でサポートされていない名前付きホワイトポイントが含まれている場合、コーデック実装者はその名前付きホワイトポイントを WICNamedWhitePoint 内でサポートする必要があります。
ホワイトポイントのケルビン値を設定します。
| WhitePointKelvin | DWORD | in | ホワイトポイントのケルビン値。許容されるケルビン値は 1,500 から 30,000 です。 |
戻り値
型: HRESULT
このメソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラーコードを返します。
解説(Remarks)
コーデック実装者は、raw イメージがネイティブにサポートする範囲内で色温度を忠実に調整する必要があります。ネイティブのサポート範囲外の値については、コーデック実装者はその色温度におけるイメージの最善の表現を提供する必要があります。
値が定義された許容範囲外である場合、コーデック実装者は WINCODEC_ERR_VALUEOUTOFRANGE を返す必要があります。
コーデック実装者は、SetWhitePointRGB などの他のホワイトポイント設定メソッドとの適切な相互運用性を確保する必要があります。たとえば、呼び出し元が SetNamedWhitePoint を使用してホワイトポイントを設定した場合、コーデック実装者は対応するケルビン温度の読み戻しを無効にしたい場合があります。以前の呼び出しを理由にコーデック実装者が特定のアクションを拒否したい特定のケースでは、WINCODEC_ERR_WRONGSTATE を返す必要があります。
raw イメージのホワイトポイントのケルビン温度を取得します。
| pWhitePointKelvin | DWORD* | out | raw イメージのホワイトポイントのケルビン温度を受け取るポインター。既定値は「撮影時」の設定値です。 |
戻り値
型: HRESULT
このメソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラーコードを返します。
raw イメージの現在のケルビン範囲に関する情報を取得します。
| pMinKelvinTemp | DWORD* | out | 最小ケルビン温度を受け取るポインター。 |
| pMaxKelvinTemp | DWORD* | out | 最大ケルビン温度を受け取るポインター。 |
| pKelvinTempStepValue | DWORD* | out | ケルビンのステップ値を受け取るポインター。 |
戻り値
型: HRESULT
このメソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラーコードを返します。
raw イメージのコントラスト値を設定します。
| Contrast | DOUBLE | in | raw イメージのコントラスト値。既定値は「撮影時」の設定です。コントラストの値の範囲は 0.0 から 1.0 です。下限の 0.0 はイメージにコントラストが適用されていないことを表し、上限の 1.0 は適用できる最大量のコントラストを表します。 |
戻り値
型: HRESULT
このメソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラーコードを返します。
解説(Remarks)
コーデック実装者は、上限範囲の値が何を表すかを決定し、その値を自身のイメージ処理ルーチンにどのようにマッピングするかを決定する必要があります。
raw イメージのコントラスト値を取得します。
| pContrast | DOUBLE* | out | raw イメージのコントラスト値を受け取るポインター。既定値は「撮影時」の設定です。コントラストの値の範囲は 0.0 から 1.0 です。下限の 0.0 はイメージにコントラストが適用されていないことを表し、上限の 1.0 は適用できる最大量のコントラストを表します。 |
戻り値
型: HRESULT
このメソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラーコードを返します。
目的のガンマ値を設定します。
| Gamma | DOUBLE | in | 目的のガンマ値。 |
戻り値
型: HRESULT
このメソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラーコードを返します。
raw イメージの現在のガンマ設定を取得します。
| pGamma | DOUBLE* | out | 現在のガンマ設定を受け取るポインター。 |
戻り値
型: HRESULT
このメソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラーコードを返します。
raw イメージのシャープネス値を設定します。
| Sharpness | DOUBLE | in | raw イメージのシャープネス値。既定値は「撮影時」の設定です。シャープネスの値の範囲は 0.0 から 1.0 です。下限の 0.0 はイメージにシャープニングが適用されていないことを表し、上限の 1.0 は適用できる最大量のシャープネスを表します。 |
戻り値
型: HRESULT
このメソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラーコードを返します。
解説(Remarks)
コーデック実装者は、上限範囲の値が何を表すかを決定し、その値を自身のイメージ処理ルーチンにどのようにマッピングするかを決定する必要があります。
raw イメージのシャープネス値を取得します。
| pSharpness | DOUBLE* | out | raw イメージのシャープネス値を受け取るポインター。既定値は「撮影時」の設定です。シャープネスの値の範囲は 0.0 から 1.0 です。下限の 0.0 はイメージにシャープニングが適用されていないことを表し、上限の 1.0 は適用できる最大量のシャープネスを表します。 |
戻り値
型: HRESULT
このメソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラーコードを返します。
raw イメージの彩度値を設定します。
| Saturation | DOUBLE | in | raw イメージの彩度値。彩度の値の範囲は 0.0 から 1.0 です。0.0 の値は完全に彩度が失われたイメージを表し、1.0 の値は適用できる最大量の彩度を表します。 |
戻り値
型: HRESULT
このメソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラーコードを返します。
解説(Remarks)
コーデック実装者は、上限範囲の値が何を表すかを決定し、その値を自身のイメージ処理ルーチンにどのようにマッピングするかを決定する必要があります。
raw イメージの彩度値を取得します。
| pSaturation | DOUBLE* | out | raw イメージの彩度値を受け取るポインター。既定値は「撮影時」の設定です。彩度の値の範囲は 0.0 から 1.0 です。0.0 の値は完全に彩度が失われたイメージを表し、1.0 の値は適用できる最大量の彩度を表します。 |
戻り値
型: HRESULT
このメソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラーコードを返します。
raw イメージの色合い (Tint) 値を設定します。
| Tint | DOUBLE | in | raw イメージの色合い (Tint) 値。既定値は「撮影時」の設定が存在すればその値、なければ 0.0 です。値の範囲は -1.0 から +1.0 です。下限の -1.0 はイメージへの完全な緑寄りを表し、上限の 1.0 は完全なマゼンタ寄りを表します。 |
戻り値
型: HRESULT
このメソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラーコードを返します。
解説(Remarks)
コーデック実装者は、外側の範囲の値が何を表すかを決定し、その値を自身のイメージ処理ルーチンにどのようにマッピングするかを決定する必要があります。
raw イメージの色合い (Tint) 値を取得します。
| pTint | DOUBLE* | out | raw イメージの色合い (Tint) 値を受け取るポインター。既定値は「撮影時」の設定が存在すればその値、なければ 0.0 です。値の範囲は -1.0 から +1.0 です。下限の -1.0 はイメージへの完全な緑寄りを表し、上限の 1.0 は完全なマゼンタ寄りを表します。 |
戻り値
型: HRESULT
このメソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラーコードを返します。
raw イメージのノイズ低減値を設定します。
| NoiseReduction | DOUBLE | in | raw イメージのノイズ低減値。既定値は「撮影時」の設定が存在すればその値、なければ 0.0 です。ノイズ低減の値の範囲は 0.0 から 1.0 です。下限の 0.0 はイメージにノイズ低減が適用されていないことを表し、上限の 1.0 は適用できる最大量のノイズ低減を表します。 |
戻り値
型: HRESULT
このメソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラーコードを返します。
解説(Remarks)
コーデック実装者は、上限範囲の値が何を表すかを決定し、その値を自身のイメージ処理ルーチンにどのようにマッピングするかを決定する必要があります。
raw イメージのノイズ低減値を取得します。
| pNoiseReduction | DOUBLE* | out | raw イメージのノイズ低減値を受け取るポインター。既定値は「撮影時」の設定が存在すればその値、なければ 0.0 です。ノイズ低減の値の範囲は 0.0 から 1.0 です。下限の 0.0 はイメージにノイズ低減が適用されていないことを表し、上限の 1.0 は適用できる最大量のノイズ低減を表します。 |
戻り値
型: HRESULT
このメソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラーコードを返します。
出力先のカラーコンテキストを設定します。
| pColorContext | IWICColorContext* | in | 出力先のカラーコンテキスト。 |
戻り値
型: HRESULT
このメソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラーコードを返します。
raw イメージのトーンカーブを設定します。
| cbToneCurveSize | DWORD | in | pToneCurve 構造体のサイズ。 |
| pToneCurve | WICRawToneCurve* | in | 目的のトーンカーブ。 |
戻り値
型: HRESULT
このメソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラーコードを返します。
raw イメージのトーンカーブを取得します。
| cbToneCurveBufferSize | DWORD | in | pToneCurve バッファーのサイズ。 |
| pToneCurve | WICRawToneCurve* | outoptional | raw イメージの WICRawToneCurve を受け取るポインター。 |
| pcbActualToneCurveBufferSize | DWORD* | inoutoptional | トーンカーブ構造体を取得するために必要なサイズを受け取るポインター。 |
戻り値
型: HRESULT
このメソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラーコードを返します。
目的の回転角度を設定します。
| Rotation | DOUBLE | in | 目的の回転角度。 |
戻り値
型: HRESULT
このメソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラーコードを返します。
現在の回転角度を取得します。
| pRotation | DOUBLE* | out | 現在の回転角度を受け取るポインター。 |
戻り値
型: HRESULT
このメソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラーコードを返します。
現在の WICRawRenderMode を設定します。
| RenderMode | WICRawRenderMode | in | 使用するレンダーモード。 |
戻り値
型: HRESULT
このメソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラーコードを返します。
現在の WICRawRenderMode を取得します。
| pRenderMode | WICRawRenderMode* | out | 現在の WICRawRenderMode を受け取るポインター。 |
戻り値
型: HRESULT
このメソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラーコードを返します。
通知コールバックメソッドを設定します。
| pCallback | IWICDevelopRawNotificationCallback* | in | 通知コールバックメソッドへのポインター。 |
戻り値
型: HRESULT
このメソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラーコードを返します。
Microsoft 公式リファレンス: 英語 (en-us) · 日本語 (ja-jp) · 原文ソース (GitHub)
HSP用 COM定義
#usecom / #comfunc によるHSPのCOM呼び出し定義。数字は vtbl インデックス(0始まり)。クラスIDが無い場合 #usecom の末尾は "{}"、ある場合は "{CLSID}"。
#define global IID_IWICDevelopRaw "{FBEC5E44-F7BE-4B65-B7F8-C0C81FEF026D}" #usecom global IWICDevelopRaw IID_IWICDevelopRaw "{}" #comfunc global IWICDevelopRaw_QueryRawCapabilitiesInfo 11 var #comfunc global IWICDevelopRaw_LoadParameterSet 12 int #comfunc global IWICDevelopRaw_GetCurrentParameterSet 13 sptr #comfunc global IWICDevelopRaw_SetExposureCompensation 14 double #comfunc global IWICDevelopRaw_GetExposureCompensation 15 var #comfunc global IWICDevelopRaw_SetWhitePointRGB 16 int,int,int #comfunc global IWICDevelopRaw_GetWhitePointRGB 17 var,var,var #comfunc global IWICDevelopRaw_SetNamedWhitePoint 18 int #comfunc global IWICDevelopRaw_GetNamedWhitePoint 19 var #comfunc global IWICDevelopRaw_SetWhitePointKelvin 20 int #comfunc global IWICDevelopRaw_GetWhitePointKelvin 21 var #comfunc global IWICDevelopRaw_GetKelvinRangeInfo 22 var,var,var #comfunc global IWICDevelopRaw_SetContrast 23 double #comfunc global IWICDevelopRaw_GetContrast 24 var #comfunc global IWICDevelopRaw_SetGamma 25 double #comfunc global IWICDevelopRaw_GetGamma 26 var #comfunc global IWICDevelopRaw_SetSharpness 27 double #comfunc global IWICDevelopRaw_GetSharpness 28 var #comfunc global IWICDevelopRaw_SetSaturation 29 double #comfunc global IWICDevelopRaw_GetSaturation 30 var #comfunc global IWICDevelopRaw_SetTint 31 double #comfunc global IWICDevelopRaw_GetTint 32 var #comfunc global IWICDevelopRaw_SetNoiseReduction 33 double #comfunc global IWICDevelopRaw_GetNoiseReduction 34 var #comfunc global IWICDevelopRaw_SetDestinationColorContext 35 sptr #comfunc global IWICDevelopRaw_SetToneCurve 36 int,var #comfunc global IWICDevelopRaw_GetToneCurve 37 int,var,var #comfunc global IWICDevelopRaw_SetRotation 38 double #comfunc global IWICDevelopRaw_GetRotation 39 var #comfunc global IWICDevelopRaw_SetRenderMode 40 int #comfunc global IWICDevelopRaw_GetRenderMode 41 var #comfunc global IWICDevelopRaw_SetNotificationCallback 42 sptr ; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。 ; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。 ; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。 ; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。#define global IID_IWICDevelopRaw "{FBEC5E44-F7BE-4B65-B7F8-C0C81FEF026D}" #usecom global IWICDevelopRaw IID_IWICDevelopRaw "{}" #comfunc global IWICDevelopRaw_QueryRawCapabilitiesInfo 11 sptr #comfunc global IWICDevelopRaw_LoadParameterSet 12 int #comfunc global IWICDevelopRaw_GetCurrentParameterSet 13 sptr #comfunc global IWICDevelopRaw_SetExposureCompensation 14 double #comfunc global IWICDevelopRaw_GetExposureCompensation 15 sptr #comfunc global IWICDevelopRaw_SetWhitePointRGB 16 int,int,int #comfunc global IWICDevelopRaw_GetWhitePointRGB 17 sptr,sptr,sptr #comfunc global IWICDevelopRaw_SetNamedWhitePoint 18 int #comfunc global IWICDevelopRaw_GetNamedWhitePoint 19 sptr #comfunc global IWICDevelopRaw_SetWhitePointKelvin 20 int #comfunc global IWICDevelopRaw_GetWhitePointKelvin 21 sptr #comfunc global IWICDevelopRaw_GetKelvinRangeInfo 22 sptr,sptr,sptr #comfunc global IWICDevelopRaw_SetContrast 23 double #comfunc global IWICDevelopRaw_GetContrast 24 sptr #comfunc global IWICDevelopRaw_SetGamma 25 double #comfunc global IWICDevelopRaw_GetGamma 26 sptr #comfunc global IWICDevelopRaw_SetSharpness 27 double #comfunc global IWICDevelopRaw_GetSharpness 28 sptr #comfunc global IWICDevelopRaw_SetSaturation 29 double #comfunc global IWICDevelopRaw_GetSaturation 30 sptr #comfunc global IWICDevelopRaw_SetTint 31 double #comfunc global IWICDevelopRaw_GetTint 32 sptr #comfunc global IWICDevelopRaw_SetNoiseReduction 33 double #comfunc global IWICDevelopRaw_GetNoiseReduction 34 sptr #comfunc global IWICDevelopRaw_SetDestinationColorContext 35 sptr #comfunc global IWICDevelopRaw_SetToneCurve 36 int,sptr #comfunc global IWICDevelopRaw_GetToneCurve 37 int,sptr,sptr #comfunc global IWICDevelopRaw_SetRotation 38 double #comfunc global IWICDevelopRaw_GetRotation 39 sptr #comfunc global IWICDevelopRaw_SetRenderMode 40 int #comfunc global IWICDevelopRaw_GetRenderMode 41 sptr #comfunc global IWICDevelopRaw_SetNotificationCallback 42 sptr ; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。 ; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。 ; ※出力/バッファ引数はポインタ方式(token=sptr / 呼び出しは varptr(変数))。 ; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。