9

ベース画像にオーバーレイしたい.png画像があります。

オーバーレイ画像には赤い斜めの線だけが含まれています。オーバーレイ画像と同じ座標でベース画像に赤い線をオーバーレイする必要があります。

問題は、座標の場所がわからないことです。

プログラムでC#を使用して見つける必要があります。オーバーレイ画像は常に透明または白い背景になります。オーバーレイ画像から線の座標を見つけるためのコードは何ですか?

4

2 に答える 2

17

新しい画像を作成し、最初に背景画像をレンダリングしてから、その上にオーバーレイ画像をレンダリングできます。オーバーレイにはアルファ チャネルがあり、線は本来あるべき場所に配置されるため (線の上部と左側に不透明なスペースがあることを意味します)、座標は必要ありません。イラストコード:

Image imageBackground = Image.FromFile("bitmap1.png");
Image imageOverlay = Image.FromFile("bitmap2.png");

Image img = new Bitmap(imageBackground.Width, imageBackground.Height);
using (Graphics gr = Graphics.FromImage(img))
{
    gr.DrawImage(imageBackground, new Point(0, 0));
    gr.DrawImage(imageOverlay, new Point(0, 0));
}
img.Save("output.png", ImageFormat.Png);
于 2012-10-25T13:46:32.763 に答える
0

WPFを使用している場合、単純な線であれば、画像の代わりにオーバーレイのパスを使用してみませんか?これにより、任意のサイズに拡大縮小でき、その寸法を操作する方法があります。

Winformsを使用している場合は、同様のグラフィックス描画機能を利用できます。PictureBoxを使用していると仮定すると、画像のサイズを取得するのは簡単です。次のプロパティで十分です。

myPictureBox.Top
myPictureBox.Bottom
myPictureBox.Left
myPictureBox.Right

同様に、WPFイメージの場合:

myImage.Margin
于 2012-10-25T13:31:23.647 に答える