2013-04-30 56 views
1
的DPI

我必須使用getImageResolution()iMagick - PNG

任何想法,我可能做錯了的時候當我使用iMagick返回爲118.11 DPI,我已經保存爲300DPI

PNG

由於

+0

用戶也報告說,此功能不能正常工作。你使用哪種iMagick版本? – 2013-04-30 09:54:06

+0

根據'convert -v'我使用'6.7.7-10' – user1970557 2013-04-30 09:56:50

+0

請參閱[如何使用ImageMagick查找每英寸像素數(PPI)](http://stackoverflow.com/q/14632254/2261774)以及下面的答案。 – 2013-04-30 10:01:26

回答

2

首先,118.11恰好是300/2.54的結果。如1英寸= 2.54釐米,看起來iMagick報告每釐米點數而不是每英寸點數。所以你只需要將iMagic提供的數字乘以2.54即可得到原始的DPI。

但是,一般來說,數字光柵圖像上的DPI沒有多大意義,因爲它們的物理尺寸不能以英寸或釐米爲單位進行測量。當然,您可以在大多數圖像格式上設置這些尺寸,並且可能在打印時使用這些尺寸,但對於其他任何目的,這些信息不會以任何方式影響圖像。特別是在計算機屏幕上顯示時,設置DPI將不起作用。

+0

檢查PNG內部的「真實值」。例如,如果將圖像發送到打印機,則DPI值是有意義的。然後打印機通過像素大小和DPI值瞭解圖像在紙上的大小。 – 2013-04-30 09:59:22

+0

啊。我不得不使用'round()'作爲DPI * 2.54是'299.9994' – user1970557 2013-04-30 10:04:06

+0

圖像將顯示在Print-ready PDF上,因此我需要檢查上傳時他們是300DPI – user1970557 2013-04-30 10:04:47

-1

當使用PNG文件時,您的Imagick版本會返回每釐米PPC的像素數,而不是每英寸點數DPI(像素每英寸PPI)。但你正在尋找更晚的。

請參閱以及How to find pixels per inch (PPI) using ImageMagick其中概述如下公式將這些值轉換:

const INCH_PER_CENTIMETER = 2.54; 

$ppi = (int) round($ppcm * INCH_PER_CENTIMETER); 
+0

我不明白。英寸比釐米大,所以你的代碼與它應該做的完全相反。 您應該用CENTIMETERS_PER_INCHES除以釐米,您將得到英寸。 我錯過了什麼嗎? – nbrogi 2016-10-15 17:08:14