既存の BMP を表示するイメージを含むキャンバスがあります。キャンバスに四角形を描画し、これらを Children コレクションに追加します。[保存] をクリックしたときに、基になる BMP ファイルを更新したいと考えています。
次のコードは機能しますが、BMP に描画される四角形は、私が描いたものよりもはるかに小さいです。座標の違いはあると思いますか?System.Drawing を使うべきではないのでしょうか?
using (Graphics g = Graphics.FromImage(image))
{
g.CompositingMode = System.Drawing.Drawing2D.CompositingMode.SourceCopy;
foreach (var child in canvas.Children)
{
if (child is System.Windows.Shapes.Rectangle)
{
var oldRect = child as System.Windows.Shapes.Rectangle;
// need to do something here to make the new rect bigger as the scale is clearly different
var rect = new Rectangle((int)Canvas.GetLeft(oldRect), (int)Canvas.GetTop(oldRect), (int)oldRect.Width, (int)oldRect.Height);
g.FillRectangle(Brushes.Black, rect);
}
}
... code to save bmp
すべての提案を歓迎します!
ありがとう