2012-05-04 66 views
8

我正在使用mini_magick作爲利用ImageMagick操縱某些圖像的界面。 調整大小工作正常。但是,當我要進行一些裁剪圖像:無法使用mini_magick裁剪圖像

img = MiniMagick::Image.open(url) 
img.crop('200x800!') 

它不斷提示No such file

No such file or directory - /var/folders/c4/mqlwdx_d3kj6hqcnvbjr9mn80000gn/T/mini_magick20120504-11111-16kayc1.png 

回答

30

啊,我是用錯了關鍵的一句我想搜索。當我搜索minimagick而不是mini_magick時,正確的答案來了。 特別是這個答案https://stackoverflow.com/a/9961434/179691

我知道關於mini_magick的東西只是mogrify等的包裝。我的問題的原因是,-crop只接受完整格式的幾何。所以我改變了表達爲:

img.crop('200x800+0+0') 

和那個作品。

+0

也適用於jekyll-minimagick和retinamagick! ''crop:「640x480 + 0 + 0」''' – malcolm

1

只是在是否有人使用Carrierwave作物和上傳圖片直接到Amazon S3,正確的方法爲我做的情況如下:

image_uploader.rb

url=model.remote_image_url 
crop_params="#{w}x#{h}+#{x}+#{y}" 
manipulate! do |img| 
    img = MiniMagick::Image.open(url) 
    img.crop(crop_params) 
    img = yield(img) if block_given? 
    img 
end 

我之所以「M加入IMG = MiniMagick :: Image.open(URL)是因爲如果我不指定我自己的形象,這會讓我下面的錯誤:

mogrify.im6: geometry does not contain image `/tmp/mini_magick20150811-15523-ac8go1.jpeg' 

我認爲這是一些默認速度那麼mini_magick會嘗試查找圖像的路徑,但由於圖像是在S3中遠程保存的,因此無法找到它。