0

正しい質問をしているかどうかさえわかりません。前もってお詫び申し上げます。いくつかの PNG をキャンバスに書き込んでいますが、同時に PNG をビットマップにコピーしたいと考えています。PNG がキャンバス上と同じ場所にビットマップ上に表示されるようにします。

これはコード スニペットです。

WorkingBMP = new RenderTargetBitmap(BOARD_WIDTH, BOARD_HEIGHT, 96, 96, PixelFormats.Pbgra32);

TreeFile = "pack://application:,,,/Images/" + TreeFile;

var image = new Image
{
    Source = new BitmapImage(new Uri(TreeFile))
};
image.Width = 10;
image.Height = 10;

Canvas.SetLeft(image, x );
Canvas.SetTop(image, y );

DrawingVisual drawingVisual = new DrawingVisual();
DrawingContext drawingContext = drawingVisual.RenderOpen();
drawingContext.DrawImage(image, new Rect(x, y, image.Width, image.Height));
drawingContext.Close();

WorkingBMP.Render(drawingVisual);

MainCanvas.Children.Add(image);

ただし、「この行で「System.Windows.Controls.Image」から「System.Windows.Media.ImageSource」に変換できません」というエラーがスローされます。

drawingContext.DrawImage(image,
                  new Rect(x, y, image.Width, image.Height));

何らかの方法で画像を ImageSource に変換できれば、このエラーは解決しますか、それともすべて間違っていますか?

ありがとう!

4

3 に答える 3