Windows上的Paperclip / ImageMagick问题

时间:2012-07-18 16:32:36

标签: ruby-on-rails-3 shell imagemagick paperclip dos

我设法在我的头像上实现了圆角后期处理。它在我的Mac上工作正常,但在Windows上没有骰子。

看起来像这样

def self.convert_options(px = 10)
  trans = ""
  trans << " \\( +clone -alpha extract "
  trans << "-draw 'fill black polygon 0,0 0,#{px} #{px},0 fill white circle #{px},#{px} #{px},0' "
  trans << "\\( +clone -flip \\) -compose Multiply -composite "
  trans << "\\( +clone -flop \\) -compose Multiply -composite "
  trans << "\\) -alpha off -compose CopyOpacity -composite "
end

基于http://www.imagemagick.org/Usage/thumbnails/#rounded&amp; Rounded corners with Paperclip

我用

开始的大错误列表
convert.exe: unable to open image `\\(': No such file or directory @ error/blob.c/OpenBlob/2638.

我想也许这与Windows转义字符有关?所以改成了\到^但是却得到了这个错误

convert.exe: unable to open image `black': No such file or directory @ error/blob.c/OpenBlob/2638.

ImageMagick正在工作,否则。它管理更简单的处理/调整大小。如果我使用GIT BASH将命令直接输入shell,那么该行会生成圆角文件而没有问题。

1 个答案:

答案 0 :(得分:0)

一夜好眠(经过几千小时的尝试)让我想到了这个

def self.convert_options_win(px = 10)
  trans = " "
  trans << " ( +clone -alpha extract -draw \"fill black polygon 0,0 0,#{px} #{px},0 fill white circle #{px},#{px} #{px},0 \"  "
  trans << " ( +clone -flip ) -compose Multiply -composite  "
  trans << " ( +clone -flop ) -compose Multiply -composite ) "
  trans << " -alpha off -compose CopyOpacity -composite  "
end

工作正常。在行的开头不需要连续字符,因为它被截断为单个行字符串。 Windows shell更喜欢“双引号”到'单引号',所以只需要转义字符串中的那些。我尝试了这么多组合,简直不敢相信这就是这么简单。