这不是问题,而是试图提高我对 DPI 如何以各种文件格式存储的理解,并讨论其工作原理的原因。
我对图像(JPG、PNG 和 Tiff)进行了大量工作并检测它们的分辨率。
例如,我可以在 Imagick 中的图像上运行它:
$imagick = new Imagick($filename); $data = $imagick->identifyimage(); var_dump($data);
它会给我分辨率和单位(PixelsPerCentimeter 或 PixelsPerInch)
在 Windows (11) 中,我只能在 JPG 的属性中看到分辨率,而不能在 PNG 的属性中看到分辨率,无论您将 PSD 设置为 PixelsPerCentimeter 还是 PixelsPerInch,它都会显示为 (300 dpi)。
在 Imagick(版本:ImageMagick 6.9.11-60 Q16 x86_64)中 - 它能够看到以 PixelsPerCentimeter 保存的 JPG 和以 PixelsPerInch 保存的 JPG 之间的差异。但对于 PNG,无论我如何在 Photoshop 中创建/保存它,它都会给出 PixelsPerCentimeter。
Photoshop (24.1.0) 还可以检测 JPG 上的 PixelsPerCentimeter - 但 PNG 都“说”它们是 PixelsPerInch,即使我将它们另存为 PixelsPerCentimeter。
现在我完全理解 118.11 PixelsPerCentimeter = 300 PixelsPerInch 但我真的很感兴趣为什么 Windows/Photoshop 和 Imagick 会这样对待它们?
我确实考虑到一开始在 Photoshop 中创建文件可能会产生副作用,因此我使用 Imagick 创建了一个文件(PNG、300dpi、PixelsPerInch),但 Imagick 将其指定为 118 PixelsPerCentimeter。
所以我想我的问题是:这些差异是否取决于文件的读取方式或文件类型中存储的实际元数据?
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号