2013-05-17 35 views
4

我有一組圖像,所有大小相同,保存爲PNG格式。預先修剪PNG圖像爲alpha並獲得偏移量

後來,在我的程序中,我將使用這些圖像並將它們疊加在一起。

但是,這些圖像中每一個的非透明部分實際上都很小。因此,爲了提高性能,最好使用修剪爲alpha的圖像,以便將每個圖像裁剪爲包含所有非alpha像素的儘可能最小的矩形。

當將每個圖像繪製在另一個圖像上時,我只需要用偏移量繪製裁剪圖像。

很多的圖像,所以不應該手動完成 - 也不是我想在我的程序的第一次啓動時做的事情。

換句話說,我正在創建一些可以有效處理這個問題的批處理作業。

ImageMagick有「修剪」,這正在做我在找什麼,除了我需要捕捉偏移量。此偏移量需要以某種方式伴隨圖像 - 無論是將偏移量寫入文件還是將其放入文件名中(例如,如果偏移量爲34x99,overlay123.png可能會變爲overlay123-34x99.png)。

該工作的最佳工具是什麼?我可以編寫這樣一個例程來手動完成它,但似乎應該有一些我可以使用的命令行實用程序,或者使用某些腳本語言在幾行中執行。

回答

4

從簡單的修剪命令開始:

convert test.png -trim +repage test2.png 

您可以添加-identify操作:

convert test.png -trim -identify +repage test2.png 

此命令的輸出將是:

test.png PNG 800x600=>566x483 800x600+161+52 8-bit DirectClass 0.000u 0:00.004 

其中800x600的是原始圖像的大小,566x483是結果圖像的大小和+1 61 + 52是包含圖片非alpha部分的矩形的偏移量。使用後者的信息,你應該能夠建立一個小腳本來實現你的目標。