我写了一个小程序,用于分割大图片并截取其中的一部分。
当我导入使用“Microsoft Paint”制作的图像时,这个图像是“96 dpi”,所以我的程序能够正常运行。
但是我有一些由Photoshop制作的图片,其分辨率为71.6 dpi。当我截取这些图片时,新截取的图片会变成96 dpi的分辨率,因此它们之间的大小存在差异。
我想保持图片的分辨率来截取图片。
.
非常感谢您。
我写了一个小程序,用于分割大图片并截取其中的一部分。
当我导入使用“Microsoft Paint”制作的图像时,这个图像是“96 dpi”,所以我的程序能够正常运行。
但是我有一些由Photoshop制作的图片,其分辨率为71.6 dpi。当我截取这些图片时,新截取的图片会变成96 dpi的分辨率,因此它们之间的大小存在差异。
.
非常感谢您。
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");
Bitmap
有一个构造函数 public Bitmap(string filename);
。因此,强制转换 Image.FromFile
并不是必需的。另外,使用 using
语句可能会使资源清理更好处理。 - BrianDPI(每英寸点数)仅是像素大小与介质上的大小之间的关系。如果您有一张图像,其大小为1024 x 768像素,则它就是1024 x 768。位图/二进制文件中没有固有的DPI。
如果您想在打印机上打印该图像,而该打印机的打印分辨率为300 dpi,则可以计算纸张上的大小,例如。