しばやん雑記

ASP.NET とメイドさんが大好きなフリーランスのプログラマーのブログ

WPF に用意されている 7 種類のビットマップ

System.Windows.Media.Imaging 以下にあるクラスの超個人的メモ。

CachedBitmap

スケーリングやクリッピングとか、複数の操作を単一の BitmapSource に対して行うときには、この CachedBitmap を使えばパフォーマンスが上がるらしい。利用頻度は低そう。メモリの使用量が変化するかなど、もうちょっと調べる必要あり。

ColorConvertedBitmap

色空間を変更するときに使うらしい。ぶっちゃけ、どういった場面で使えばいいのかがわからない。

CroppedBitmap

ビットマップの一部分だけ切り出したい時に使う。SourceRect プロパティで切り出したい領域を指定すればおっけー。

FormatConvertedBitmap

ピクセルフォーマットを変更したい時に使う。PixelFormats クラスにフォーマットが定義されているので、それを指定すれば減色とかもやってくれる。案外使うかも。

RenderTargetBitmap

Visual オブジェクトをビットマップにするときに使う。個人的には一番使用頻度が高そうなクラス、DrawingVisual と使うのが一般的かな?

TransformedBitmap

RenderTransform によく似た機能を、ビットマップに直接反映させたい時に使う。90°ずつの回転と拡大縮小しか使えない。つまり ScaleTransform と RotateTransform だけ使うことができる。

TransformGroup で組み合わせることもできるけど、遅いので RenderTransform を使ったほうがいい気がする……。

WriteableBitmap

これは Win32 との相互運用のためのクラスと考えてもよさそう。RenderTargetBitmap の方が圧倒的に便利だと。