IlvColorMatrixFilter クラス
IlvColorMatrixFilter クラスを使うと、入力イメージの RGBA コンポーネントにマトリックス変換を適用できます。
マトリックスは、5 x 4 行の主な順位係数になっています。
| R' | | a00 a01 a02 a03 a04 | | R |
| G' | | a10 a11 a12 a13 a14 | | G |
| B' | = | a20 a21 a22 a23 a24 | * | B |
| A' | | a30 a31 a32 a33 a34 | | A |
| 1 | | 0 0 0 0 1 | | 1 |
このクラスには、特定の係数を持つ 3 つのサブクラスがあります。
IlvSaturationFilter クラス
IlvSaturationFilter は、次の数式から変換マトリックスを計算します。
| R' | |0.213+0.787s 0.715-0.715s 0.072-0.072s 0 0 | | R |
| G' | |0.213-0.213s 0.715+0.285s 0.072-0.072s 0 0 | | G |
| B' | = |0.213-0.213s 0.715-0.715s 0.072+0.928s 0 0 | * | B |
| A' | | 0 0 0 1 0 | | A |
| 1 | | 0 0 0 0 1 | | 1 |
ここで、s は彩度です。
IlvHueRotateFilter クラス
IlvHueRotateFilter は、次の数式から変換マトリックスを計算します。
| R' | | a00 a01 a02 0 0 | | R |
| G' | | a10 a11 a12 0 0 | | G |
| B' | = | a20 a21 a22 0 0 | * | B |
| A' | | 0 0 0 1 0 | | A |
| 1 | | 0 0 0 0 1 | | 1 |
ここで、a00、a01 などは、次のように計算されます。
| a01 a01 a02 | [+0.213 +0.715 +0.072]
| a10 a11 a12 | = [+0.213 +0.715 +0.072] +
| a20 a21 a22 | [+0.213 +0.715 +0.072]
[+0.787 -0.715 -0.072]
cos(hueRotate value) * [-0.212 +0.285 -0.072] +
[-0.213 -0.715 +0.928]
[-0.213 -0.715 +0.928]
sin(hueRotate value) * [+0.143 +0.140 -0.283]
[-0.787 +0.715 +0.072]
ここで、value は色調の回転角です。
したがって、色調マトリックスの左上の項は、次のようになります。
.213 + cos(hueRotate value)*.787 - sin(hueRotate value)*.213
IlvLuminanceToAlphaFilter クラス
| R' | | 0 0 0 0 0 | | R |
| G' | | 0 0 0 0 0 | | G |
| B' | = | 0 0 0 0 0 | * | B |
| A' | | 0.2125 0.7154 0.0721 0 0 | | A |
| 1 | | 0 0 0 0 1 | | 1 |
このフィルターは、色のイメージをグレースケール・イメージに変換します。
Version 6.0
Copyright © 2015, Rogue Wave Software, Inc. All Rights Reserved.