3

我做了一个小程序来分割大图,并把它们的一部分。当我导入由“Microsoft Paint”制作的图像时,这个图像是“96 dpi”,所以我的程序运行良好。

但是我有由 Photoshop 制作的图片,当我裁剪这些图片时,其分辨率为 71.6 dpi,新裁剪的图片采用 96 dpi 分辨率,因此它们之间的大小有所不同。

我想裁剪图片并保持其分辨率。

.

非常感谢您

4

3 回答 3

6

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");
于 2009-05-13T15:24:43.990 回答
3

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

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

于 2009-05-13T10:22:30.567 回答
1

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

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

于 2009-05-13T15:22:11.000 回答