在C#中,如何将.png文件合并为一个.png文件
我正在抓拍网页的截图。然后将其保存在一个.png文件中,并将此文件合并到一个最终的.png文件中。 我可以将第一个.png文件保存到最终的.png文件中,但对于第二个.png文件及以后的文件,它们不会合并 这是我的密码。else块不工作:( lastappend是一个整数,它随着程序截图的增加而增加在C#中,如何将.png文件合并为一个.png文件,c#,.net,C#,.net,我正在抓拍网页的截图。然后将其保存在一个.png文件中,并将此文件合并到一个最终的.png文件中。 我可以将第一个.png文件保存到最终的.png文件中,但对于第二个.png文件及以后的文件,它们不会合并 这是我的密码。else块不工作:( lastappend是一个整数,它随着程序截图的增加而增加 ********************************* Code ************* string fileName = "Funds"; Bitmap bmpScreensh
********************************* Code *************
string fileName = "Funds";
Bitmap bmpScreenshot;
Graphics gfxScreenshot;
bmpScreenshot = new Bitmap(Screen.PrimaryScreen.Bounds.Width, Screen.PrimaryScreen.Bounds.Height, PixelFormat.Format32bppArgb);
gfxScreenshot = Graphics.FromImage(bmpScreenshot);
gfxScreenshot.CopyFromScreen(Screen.PrimaryScreen.Bounds.X, Screen.PrimaryScreen.Bounds.Y, 0, 0, Screen.PrimaryScreen.Bounds.Size, CopyPixelOperation.SourceCopy);
bmpScreenshot.Save("C:\\Test\\Images\\Temp\\Image" +lastAppend+ ".Png", ImageFormat.Png);
Image img1 = Image.FromFile(Constants.testImagePath + "Image" + lastAppend + ".Png");
string mergedScreenShot = (Constants.testImagePath + fileName + ".Png"); // Here constants.testimagepath is C:\\Test\\Images\\Temp\\Image
if (lastAppend == 1)
{
bmpScreenshot.Save(Constants.testImagePath + fileName + ".Png");
img1.Dispose();
}
else
{
Image mergeimg = Image.FromFile(mergedScreenShot);
int width = mergeimg.Width;
int height = mergeimg.Height;
Bitmap img3 = new Bitmap(width, height); // setting bitmap object of the merged file
Graphics g = Graphics.FromImage(img3);
g.DrawImage(img1, new Point(width, height));
g.Save();
img3.Save(mergedScreenShot);
img1.Dispose();
g.Dispose();
img3.Dispose();
}
*********** End of code ***************
最有可能的解决方案是通过使用找到的。有一些工作需要使用.NET包装器 另一个选项是,您只需在服务器上为自己调用ImageMagick可执行文件:
它在做什么?你期望它做什么?你有错误吗?它崩溃了吗?等等。基本上说“它不工作”是没有帮助的,因为我甚至不知道你所说的“合并”是什么意思我制作了一个最终文件,在其中我一个接一个地复制所有屏幕截图。使用“合并”,我的意思是将当前.png文件复制到最终文件中上一个文件的旁边。。在“其他”块中,代码不要将当前.png文件复制到最终文件中…在层中相互重叠?或者您打算安排吗它们是水平的还是垂直的,图像的大小应该增长到可以容纳的程度?我不知道合并是什么意思。如果你只是简单地把它写在原稿上(这就是你的代码看起来的样子),一个屏幕截图通常没有透明度,因此您不会看到多个图像。我仍然不知道您的意思。我正在尝试水平地一个接一个地添加.png文件…那么,您不应该将新合并的图像初始化为与原始图像相同的宽度和高度。您需要根据合并的宽度和高度增加宽度idth。此外,您不希望在点
宽度,高度
处绘制,而是要在点宽度,0
处绘制,否则将其斜放在原始点下方。