我正在尝试裁剪图像,然后保存新图像。我有原始图像,x和y坐标,我希望裁剪的图像在哪里,以及新裁剪图像的宽度和高度。
这是我的代码:
Bitmap originalBitmap = new Bitmap(filePath);
Bitmap newImage = new Bitmap(width, height);
Graphics g = Graphics.FromImage(newImage);
g.DrawImage(originalBitmap, x, y, width, height);
newImage.Save(newFilePath);
但是当图像被实际保存时,它是一个正确高度和宽度的小图像,但是完全是空的。
我确定我只是在这里错过了一个技巧,或完全误解了某些东西(或两者兼而有之!),所以任何帮助都会受到赞赏!
答案 0 :(得分:3)
尝试使用Bitmap的Clone功能:
Bitmap newImage = originalBitmap.Clone(new RectangleF(x, y, width, height),
System.Drawing.Imaging.PixelFormat.Format32bppArgb);
newImage.Save(newFilePath);