2011-04-14 108 views
3

我有一個圖像尺寸爲126x75爲什麼裁剪的行爲如此?

(rdb:1) p image.width 
126 
(rdb:1) p image.height 
57 

現在我想裁剪下來50x50,在西北方(左上角)開始。所以我想,(這應該是類似於即時命令行幾何參數的50x50+0+0):

image2 = image.process(:crop, :width => 50, :height => 50, :x => 0, :y => 0) 

但結果多少有些令人吃驚對我說:

(rdb:1) p image2.width 
24 
(rdb:1) p image2.height 
16 

爲什麼會發生這樣呢?什麼是正確的方法?

回答

3

這聽起來像您正在使用的圖像有現有的頁面幾何造成您的(0,0)位置偏移。您可以告訴IM重新映射圖像以刪除現有頁面幾何圖形,使(0,0)爲「真」(0,0)。檢查IM文檔:http://www.imagemagick.org/Usage/crop/#crop_page

+1

這是正確的想法,謝謝!但只有裁剪方法似乎有一個可選參數repage。有許多幫助函數使用裁剪功能,不接受該參數。解決方法:在每個方法之前使用'image.crop!(0,0,image_width,image_height,true)'。不完美,但完成這項工作。 – ericteubert 2011-04-21 13:44:43

相關問題