這不是問題,而是試圖提高我對(duì) DPI 如何以各種文件格式存儲(chǔ)的理解,并討論其工作原理的原因。
我對(duì)圖像(JPG、PNG 和 Tiff)進(jìn)行了大量工作并檢測(cè)它們的分辨率。
例如,我可以在 Imagick 中的圖像上運(yùn)行它:
$imagick = new Imagick($filename); $data = $imagick->identifyimage(); var_dump($data);
它會(huì)給我分辨率和單位(PixelsPerCentimeter 或 PixelsPerInch)
在 Windows (11) 中,我只能在 JPG 的屬性中看到分辨率,而不能在 PNG 的屬性中看到分辨率,無論您將 PSD 設(shè)置為 PixelsPerCentimeter 還是 PixelsPerInch,它都會(huì)顯示為 (300 dpi)。
在 Imagick(版本:ImageMagick 6.9.11-60 Q16 x86_64)中 - 它能夠看到以 PixelsPerCentimeter 保存的 JPG 和以 PixelsPerInch 保存的 JPG 之間的差異。但對(duì)于 PNG,無論我如何在 Photoshop 中創(chuàng)建/保存它,它都會(huì)給出 PixelsPerCentimeter。
Photoshop (24.1.0) 還可以檢測(cè) JPG 上的 PixelsPerCentimeter - 但 PNG 都“說”它們是 PixelsPerInch,即使我將它們另存為 PixelsPerCentimeter。
現(xiàn)在我完全理解 118.11 PixelsPerCentimeter = 300 PixelsPerInch 但我真的很感興趣為什么 Windows/Photoshop 和 Imagick 會(huì)這樣對(duì)待它們?
我確實(shí)考慮到一開始在 Photoshop 中創(chuàng)建文件可能會(huì)產(chǎn)生副作用,因此我使用 Imagick 創(chuàng)建了一個(gè)文件(PNG、300dpi、PixelsPerInch),但 Imagick 將其指定為 118 PixelsPerCentimeter。
所以我想我的問題是:這些差異是否取決于文件的讀取方式或文件類型中存儲(chǔ)的實(shí)際元數(shù)據(jù)?
這不是一個(gè)權(quán)威、完整的答案 - 更像是一個(gè)“提示”,因?yàn)闆]有人回答您。
這有點(diǎn)像雷區(qū),不同的軟件有不同的長(zhǎng)度。如果您想進(jìn)一步研究它,exiftool
及其 -v
選項(xiàng)通常是最有幫助的。
關(guān)于 PNG 圖像
原始 PNG 規(guī)范有一個(gè) pHYs
塊,僅給出以米為單位的水平和垂直分辨率,英寸不可用。 此處描述了各種 PNG 標(biāo)簽。
某些軟件(ImageMagick 和 exiftool
)將(JPEG 樣式)APP1 數(shù)據(jù)(見下文)非正式地存儲(chǔ)在 zTXt
塊中。有些沒有。
2017 年 7 月,PNG 規(guī)范更新為允許 eXIf
塊。請(qǐng)參閱此處。
關(guān)于 JPEG 圖像
在 JPEG 中,x/y 分辨率可能存儲(chǔ)在 APP0、APP1 或 APP13 (Photoshop) 段中。我所知道的最好的描述是這里。
我從來沒有對(duì) XMP 數(shù)據(jù)那么感興趣,但我相信 x/y 分辨率也可能存儲(chǔ)在那里。