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

时间:2009-05-13 10:14:59

标签: c# .net image resolution crop

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

但我用Photoshop制作的照片,其分辨率为71.6 dpi,当我裁剪这些照片时,新裁剪的照片分辨率达到96 dpi,所以它们之间的尺寸差别很小。

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

非常感谢

3 个答案:

答案 0 :(得分:5)

Bitmap.clone可让您创建图像的裁剪副本,然后可以保存。它不应该改变分辨率或任何东西(如果你在一个程序中打开它,当图像较小时放大更多),图像看起来会更大。它不能用于扩展画布(你将失去内存错误)。所以,只需从文件中抓取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");

答案 1 :(得分:3)

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

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

答案 2 :(得分:1)

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

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