投稿者 よねKEN  (社会人) 投稿日時 2011/5/26 21:58:02
> M.Matrix00 = 1.0F
> M.Matrix11 = 1.0F
> M.Matrix22 = 1.0F
> M.Matrix33 = 0.5F
> M.Matrix44 = 1.0F
> 個人的にここでどんなことが行われているのか知りたいです。
> ご教授ください。 

詳しい話は以下のURLをご覧ください。

方法 : カラー行列を使用して単一色を変換する
http://msdn.microsoft.com/ja-jp/library/6tf7sa87.aspx

読んでみてよくわからなかったら、今は一旦あきらめてもよいと思います。
このURLの説明に出てくる行列、ベクターは高校の数学で習う用語ですし、
高校数学でそういったことを習ったとしても、それだけでは理論をきちんと
理解するのは難しいので。
(カラー行列がどうこうという話は、情報工学の中の画像処理系の分野の言葉だと思いますので、
 高校では習わないですし、専門学校や大学でもそういう専門の勉強を選択しなければ習いません。
 そういうわけで、そういう学習課程を経ない場合は、必要な知識を独学で身に着けることになりますね)

で、現実的には、理論的な話ではなく、
このコードサンプルの話としては以下の点だけ理解しておけばよいかと思います。

変数M(ColorMatrixクラスのオブジェクト)には色を変換するための情報を入れます。

ColorMatrixクラスのMartixXX(XXは数字)という名前のプロパティは、
Matrix00~Matrix44にはすべてに1.0を設定し、
00、11、22、33、44といった数字の揃った番号でないMatrix01、Matrix02…にはすべて0.0を設定しておくと「何も変換しない」という変換ルールになります。
(数学の用語で言うと単位行列といいます)

で、このうちMatrix33だけを0.0~1.0をいろいろいじってみるとわかるのですが、
Matrix33の設定内容に応じて画像の透明度が変わります。
コードサンプルでは0.5としているのでちょうど半透明となります。1.0なら不透明、0.0なら透明です。