比較Imagick、Adobe Photoshop和Windows - 偵測解析度(每公分像素或每吋像素)
P粉520204081
P粉520204081 2024-04-06 16:01:27
0
1
394

這不是問題,而是試圖提高我對 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。

所以我想我的問題是:這些差異是否取決於文件​​的讀取方式或文件類型中儲存的實際元資料?

P粉520204081
P粉520204081

全部回覆(1)
P粉885562567

這不是一個權威、完整的答案 - 更像是一個“提示”,因為沒有人回答您。

這有點像雷區,不同的軟體有不同的長度。如果您想進一步研究它,exiftool 及其 -v 選項通常是最有幫助的。


關於 PNG 圖片

#原始 PNG 規範有一個 pHYs 塊,僅給出以米為單位的水平和垂直分辨率,英寸不可用。 此處描述了各種 PNG 標籤。

某些軟體(ImageMagickexiftool)將(JPEG 樣式)APP1 資料(見下文)非正式地儲存在 zTXt 區塊中。有些沒有。

2017 年 7 月,PNG 規格更新為允許 eXIf 區塊。請參閱此處


關於 JPEG 影像

#在 JPEG 中,x/y 解析度可能儲存在 APP0、APP1 或 APP13 (Photoshop) 段中。我所知道的最好的描述是這裡

我從來沒有對 XMP 資料那麼感興趣,但我相信 x/y 解析度也可能儲存在那裡。

熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!