如何在不改变C#.Net的分辨率的情况下裁剪图像?

我做了一个小程序来分割大图片并参与其中。 当我导入由“Microsoft Paint”制作的图像时,此图像为“96 dpi”,因此我的程序运行良好。

但我用Photoshop制作的照片,其分辨率为71.6 dpi,当我裁剪这些照片时,新裁剪的照片分辨率为96 dpi,因此它们之间的尺寸是差别。

我希望通过保持其分辨率来裁剪图片。

非常感谢你

Bitmap.clone允许您创建图像的裁剪副本,然后可以保存。 它不应该改变分辨率或任何东西(如果你在一个程序中打开它时图像看起来会更大,当图像更小时放大更多)。 它不能用于扩展canvas(你将失去内存错误)。 因此,只需从文件中获取一个Image ,转换为Bitmap ,( system.drawing命名空间)并将其克隆为更小,然后保存它。

例:

 using System.Drawing; //... Bitmap x = (Bitmap) Image.FromFile(@"c:\tmp\food.png"); Image x2 = x.Clone(new Rectangle(25, 25, 50, 50), x.PixelFormat); x2.Save(@"c:\tmp\food2.png"); 

DPI(每英寸点数)只是像素大小与介质大小之间的关系。 如果您的图像为1024 x 768像素,则为1024 x 768.位图/二进制文件没有固有的DPI。

如果要在300 dpi打印的打印机上打印该图像,则可以计算纸张尺寸。

Bitmap类的SetResolution()方法允许您指定图像的分辨率。

请参阅http://msdn.microsoft.com/en-us/library/system.drawing.bitmap.setresolution.aspx