Quantcast
Channel: C#タグが付けられた新着記事 - Qiita
Viewing all articles
Browse latest Browse all 9749

[C#/xaml] BitmapResourceやその派生クラスから、System.Drawing.Bitmapに変換する(BmpBitmapEncoderクラス)

$
0
0

もくじ
https://qiita.com/tera1707/items/4fda73d86eded283ec4f

Bitmap関連
BitmapSource派生クラスの使い方

やりたいこと

WPFアプリでよく使うBitmapResourceやその派生のBitmapImageRenderTargetBitmapTransformedBitmapSystem.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


Viewing all articles
Browse latest Browse all 9749

Trending Articles