WPF アプリケーションで画像を処理したいと考えています。ただし、実行時にメモリ内の BitmapSource のピクセルを変更したいと思います。
私は現在、昔ながらの System.Drawing.Bitmap に対して「安全でない」コードを使用してこれを行うことに成功しています。このアプローチは、次の投稿で説明されています。
これを WPF で機能させるために、次のアプローチを使用して WPF BitmapSource を作成しています。
BitmapSource destination;
IntPtr hBitmap = bitmap.GetHbitmap();
BitmapSizeOptions sizeOptions = BitmapSizeOptions.FromEmptyOptions();
destination = Imaging.CreateBitmapSourceFromHBitmap(hBitmap, IntPtr.Zero, Int32Rect.Empty, sizeOptions);
destination.Freeze();
return destination;
ただし、これによりメモリ内に多くのコピーが作成されるため、EricGu がビットマップの例で示したように、そこにアクセスして BitmapSource 内の基になるビットをいじりたいと思っています。これは可能ですか?
PixelShaders はおそらくこれを行うことができると認識していますが、これは複数のスレッドを含む学術的な演習です (これは、ビットマップをアンセーフ モードで編集するときにサポートされます)。
前もって感謝します