0

我有一系列PNG格式的圖像組成動畫。作爲一個整體自動裁剪圖像系列(同時考慮到所有圖像)

我想自動完成整個動畫中多餘透明度的裁剪過程,所以我需要找到唯一最小的矩形區域,以便如果每張圖像都裁剪掉了,則不會修整不透明像素任何圖像;然後裁剪每個圖像到這個區域。

IOW,相當於在GIMP中製作每個PNG圖層,在每個圖層上執行「autocrop圖層」,然後將「畫布大小分層」,然後再將每個圖層重新導出爲PNG格式。

有沒有辦法讓mogrify或轉換(或GIMP,對於這個問題,但我想我的情況下涉及的圖像數量會佔用太多的內存,讓他們全部爲GIMP圖層)自動執行此操作?

如果沒有,是否有一個腳本函數可以返回給定圖像的自動裁剪矩形,所以我可以檢查重疊並找到能覆蓋所有圖像的最小的自己?

回答

1

你可以裁剪框像這樣的圖片:

convert input.png -format "%@" info: 
245x114+4+2 

所以,在這種情況下它是245px寬114px高,從左上角的偏移[4,2]。

因此,爲了測試理論,讓我們製作3張帶有透明背景的圖像,並用小紅框表示您的內容。我添加了一個黑色的邊框,所以您可以看到堆棧溢出的白色背景的程度:

convert -size 200x100 xc:none -fill red -draw "rectangle 10,10 20,20" 1.png 

enter image description here

convert -size 200x100 xc:none -fill red -draw "rectangle 180,20 190,30" 2.png 

enter image description here

convert -size 200x100 xc:none -fill red -draw "rectangle 150,80 160,90" 3.png 

enter image description here

所以,我可以得到所有3的裁剪框圖像組合是這樣的:

convert [123].png -evaluate-sequence mean -format %@ info: 
181x81+10+10 

如果我畫的是在藍色:

convert result.png -stroke blue -fill none -draw "rectangle 10,10 191,91" -bordercolor black -border 1 result.png 

enter image description here

+0

哇,這是偉大的!我認爲我必須使用PerlMagick或其他東西。有了這個,我可以用任何語言編寫腳本,只需使用命令行輸出,就可以使工具鏈保持在較小的範圍內。 :) – Kev