我想要在基礎圖像上疊加一個.png圖像。如何在.NET中疊加圖像
我的疊加圖像只包含一條紅色的斜線。我需要在疊加圖像上以相同的座標疊加在基礎圖像上的紅線。
問題是我沒有座標位置。
我需要用C#編程查找它。疊加圖像將始終爲透明或白色背景。從疊加圖像找到線座標的代碼是什麼?
我想要在基礎圖像上疊加一個.png圖像。如何在.NET中疊加圖像
我的疊加圖像只包含一條紅色的斜線。我需要在疊加圖像上以相同的座標疊加在基礎圖像上的紅線。
問題是我沒有座標位置。
我需要用C#編程查找它。疊加圖像將始終爲透明或白色背景。從疊加圖像找到線座標的代碼是什麼?
如果您使用的是WPF,那麼爲什麼不使用path代替圖像,如果它是簡單的線條?這將允許它縮放到任意大小,並且具有操縱其尺寸的方法。
如果您使用的是Winforms,那麼您可能會利用一些similar graphics drawing capabilities。獲取圖像的尺寸應該是容易的,假設你使用一個圖片,下面的屬性應該足夠了:
myPictureBox.Top
myPictureBox.Bottom
myPictureBox.Left
myPictureBox.Right
同樣,對於一個WPF圖片:
myImage.Margin
您可以創建新的圖像,先渲染背景圖像,然後在其上渲染覆蓋圖像。由於覆蓋有alpha通道和線放置在它應該是(我的意思是有不透明的空間上線和左側),你不需要座標。插圖代碼:
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);
感謝但與上面的代碼第二個圖像重疊背景圖像。例如,如果我的背景圖像是某個人的臉部,並且說用戶已經編輯了它以在臉部增加耳朵。這兩個圖像保存的方式不同。我想以這樣的方式合併圖像,使得臉部應該在用戶添加它的正確位置處有耳朵。 – Gayatri
謝謝,我第一次遇到了一些麻煩,因爲我生成的圖片比我的屏幕大。這導致圖像的一部分被裁剪。我解決了它通過使用gr.DrawImage(imageBackground,新的System.Drawing.Rectangle(0,0,imageBackground.Width,imageBackground.Height)); gr.DrawImage(imageOverlay,new System.Drawing.Rectangle(0,0,imageBackground.Width,imageBackground.Height));而不是gr.DrawImage(imageBackground,new Point(0,0)); grdrawImage(imageOverlay,new Point(0,0)); – Rockney
什麼是「同一座標」?也許一些插圖會使它更清晰。 –
如果在疊加圖像中我的行從20,20開始到120,50結束,那麼我需要該行出現在我的基本圖像20,20和結束於120,50。 – Gayatri