我使用ImageMagick的Perl的4:3的圖像裁剪算法
use Image::Magick;
我已經寫功能代碼來執行類似調整大小,縮略圖所有必要的任務,讀取尺寸,作物,作物中心。
我確實有一個要求,所有的照片是風景,所以我拋出任何圖像的高度大於或等於寬度。
我在掙扎的問題是在調整大小之前裁剪。照片需要是4:3的寬高比。某些照片採用新的16:9格式,或者在發送到服務器之前可能會被裁剪,導致屏幕顯示偏斜。在我調整大小之前,我想裁剪圖像,使其與最接近的4:3相等。例如,800/600是好的,但802/600會將中心裁剪到800/600。
我將調整大小的所有照片,裁剪大小regarless存儲爲800/600的最大存儲圖像,但這是仙子無關緊要。由於我可以提前讀取高度和寬度尺寸,因此可能有算法可用於計算最接近的匹配。我真的只需要幫助獲得新的尺寸來裁剪,而不是ImageMagick,除非ImageMagick中有一個函數可以爲我做到這一點。
但是,我一直不成功找到一個。
你的意思是這樣的:如果寬度> 4.0/3.0 *高度則newWidth = 4.0/3.0的高度否則newHeight = 3.0/4.0 *寬? – vmpstr 2012-02-24 14:10:08
這是我一直想要處理的照片,我加載到數碼相框。我的一個奇特相機需要16x9的照片,這很棒,但在畫面中看起來不太好看。裁剪的大小不是唯一的問題:你需要決定在哪裏切除額外的東西:同樣在兩邊,別的地方,等等。 – 2012-02-24 17:20:23
要做到這一點,你只需找到中心,然後測量,直到你達到裁剪尺寸。 $圖像 - >作物( '800×600 + $ X + $ Y');其中$ x =原始圖像寬度的1/2,$ y是原始圖像高度的1/2。 – chrisrth 2012-02-24 21:54:23