我有一个位图,报告的HorizontalResolution
和VerticalResolution
属性都是96.但是当我在Gimp中打开相同的图像时,报告的dpi是300x300。
为什么会有区别?
答案 0 :(得分:0)
Image
报告PPI中的解决方案。要转换为DPI(如GIMP所示),请使用以下公式:
var dpiWidth = image.Width * 72 / image.HorizontalResolution;
var dpiHeight = image.Height * 72 / image.VerticalResolution;
答案 1 :(得分:0)
这是从同一个文件中获得不同结果的可能方法:
import scala.collection.mutable.Map
val strings: Map[Int, String] = Map()
strings(1) = "abc1"
strings(2) = "abc2"
现在 Bitmap bmp1 = (Bitmap)Bitmap.FromFile(some300dpiImage);
Bitmap bmp2 = new Bitmap(bm1);
将按预期报告300dpi(或准确地说:ppi)。
但是bmp1
是一个新的位图,使用相同的像素创建但具有当前的屏幕分辨率,它将报告您的计算机的屏幕分辨率。我的是120dpi / ppi。
注意:这与dpi vs ppi无关 - 对于discussion about dpi - ppi see here。
TLTR:严格意义上的dpi 仅与打印硬件相关。除了ppi之外,图像软件没有理由报告任何内容。但是ppi几乎总是被称为dpi,所以我们可以像调用像素点那样做,反之亦然。