2013-01-31 81 views
4

我可以使用下面的命令得到PPI爲JPEG圖像像素(ppi):如何找到每英寸使用ImageMagick

$ identify -format "%w x %h %x x %y" mypic.jpg 
1600 x 1200 72 PixelsPerInch x 72 PixelsPerInch 

然而,當我在PNG格式運行相同的命令,我得到的像素每釐米:

$ identify -format "%w x %h %x x %y" mypic.png 
1600 x 1200 28.35 PixelsPerCentimeter x 28.35 PixelsPerCentimeter 

有沒有辦法來改變命令來獲得每英寸像素數(PPI)爲PNG格式,以及或者是計算基於每釐米像素的PPI?

回答

2

所使用的分辨率和單位都存儲在文件中,所以如果分辨率存儲在PixelsPerCentimeter中,那麼identify將顯示它。沒有辦法通過identify自動進行轉換。但它只是釐米英寸轉換數學:

PixelsPerInch = PixelsPerCentimeter * 2.54 
+0

只是供參考,但你現在可以在'識別'中實際進行轉換 - 請參閱我的答案。當然,當你在時間的迷霧中回答時可能不可能:-) –

+0

啊,我甚至沒有給出任何使用'fx'表達式來做到這一點。儘管我讀過一些關於'fx'速度的不愉快的事情。 – Crontab

+0

'fx'的速度只適用於將'-fx'與'convert'一起使用的情況,因爲它會爲每個像素的每個通道編譯和調用函數,即每個像素在潛在大圖像中的3次。當你在'identify'命令中使用它作爲'one-off'時,它和任何東西一樣快。 –

0

1英寸= ~2.54釐米。所以在兩者之間轉換是微不足道的。

6

你可以簡單地添加選項

-units PixelsPerInch 
+0

這是我正在尋找的':)' – sdaau

1

可以使用fx運營商和一些聰明的格式在identify輸出是這樣的:

identify -format "%[fx:int(resolution.x*2.54)]" image.png 
299 

當然,這樣做的真正樂趣它是獨立於平臺的,因此您不必在OS X和Linux上使用dc,或者在Windows上執行所需的muppetry來執行數學運算。

相關問題