2012-07-18 190 views
1

我设法在我的头像上实现圆角后处理。它在我的Mac上正常工作,但在Windows上没有骰子。Windows上的回形针/ ImageMagick问题

它看起来像这样

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 & 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中,则该行会生成圆角文件,而不会出现问题。

回答

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更喜欢将“双引号”改为“单引号”,所以只需要将字符串中的内容转义即可。我尝试了这么多的组合,不敢相信这是这么简单。