Sim*_*ier 58
您必须使用目标分辨率将位复制到新图像上,如下所示:
using (Bitmap bitmap = (Bitmap)Image.FromFile("file.jpg"))
{
using (Bitmap newBitmap = new Bitmap(bitmap))
{
newBitmap.SetResolution(300, 300);
newBitmap.Save("file300.jpg", ImageFormat.Jpeg);
}
}
Run Code Online (Sandbox Code Playgroud)
小智 9
本文讨论修改EXIF数据而不重新保存/重新压缩(因而丢失信息 - 它实际上使用了"技巧";该方法可能需要更多直接库)SetResolution.这是在快速谷歌搜索中找到的,但我想指出,您需要做的就是修改存储的EXIF数据.
另外:用于EXIF修改的.NET lib和另一个SO问题.当您知道好的搜索字词时,Google就拥有了.
只需按正确的比例缩放图像的宽度和高度即可。并非所有图像格式都支持DPI元标记,当它们支持时,它们告诉图形软件要做的就是将图像除以提供的比率。
例如,如果将300dpi的图像从Photoshop导出为JPEG,则在图片查看软件中查看时,图像将显得非常大。这是因为JPEG不支持DPI信息,并且在保存时将其丢弃。这意味着您的图片查看器不知道将图像除以什么比例,而是以1:1的比例显示图像。
要获得比例,您需要按比例缩放图像,请参见下面的代码。请记住,这将拉伸图像,就像在Photoshop中一样。您实际上是将图像的大小增加了三倍,因此图像将被拉伸并可能产生伪像。
伪代码
ratio = 300.0 / 72.0 // 4.167
image.width * ratio
image.height * ratio
Run Code Online (Sandbox Code Playgroud)