もくじ
→https://qiita.com/tera1707/items/4fda73d86eded283ec4f
Bitmap関連
→BitmapSource派生クラスの使い方
やりたいこと
WPFアプリでよく使うBitmapResourceやその派生のBitmapImageRenderTargetBitmapTransformedBitmapをSystem.Drawing.Bitmapに変換したい。
(新しく作る処理ではBitmapResourceを使いたいが、もともとあるロジックでSystem.Drawing.Bitmapを使ってるときに、そこに合わせに行きたい)
やり方
BmpBitmapEncoderを使う。
サンプル
privatevoidButton_Click_1(objectsender,RoutedEventArgse){// BitmapResourceの派生クラス「RenderTargetBitmap」で、画像を取ってくる// 「RouletteWhole」は、Gridの名前。varcanvas=newRenderTargetBitmap((int)RouletteWhole.ActualWidth,(int)RouletteWhole.ActualHeight,96,96,PixelFormats.Pbgra32);canvas.Render(RouletteWhole);// BmpBitmapEncoderに画像を入れるusing(varstream=newMemoryStream()){BitmapEncoderencoder=newBmpBitmapEncoder();encoder.Frames.Add(BitmapFrame.Create(canvas));encoder.Save(stream);// BmpBitmapEncoderからSystem.Drawing.Bitmapをつくるvarbitmap=newSystem.Drawing.Bitmap(stream);bitmap.Save(@".\aaa.bmp");}}参考
Convert RenderTargetBitmap to Bitmap
https://stackoverflow.com/questions/20083210/convert-rendertargetbitmap-to-bitmap
親クラスの「BitmapEncoder」クラス
https://docs.microsoft.com/ja-jp/dotnet/api/system.windows.media.imaging.bitmapencoder?view=netframework-4.8