如何用回形针创建圆角?我找到了这个解决方案,它创建了使用convert_options用回形针实现圆角 http://loo.no/2009/08/09/rounded-corners-with-paperclip,但它不适用于 Rails 3 和 Paperclip 2.4.5。生成的转换命令仅在我使用时才有效ImageMagick Alpha 参数 http://www.imagemagick.org/Usage/thumbnails/#rounded而不是阈值参数:
convert example.jpg \
\( +clone -alpha extract \
-draw 'fill black polygon 0,0 0,15 15,0 fill white circle 15,15 15,0' \
\( +clone -flip \) -compose Multiply -composite \
\( +clone -flop \) -compose Multiply -composite \
\) -alpha off -compose CopyOpacity -composite rounded_corners.png
这对应于
has_attached_file :avatar,
:styles => { :medium => ["918x483#", :png] },
:convert_options => {:medium => Proc.new{self.convert_options}}
def self.convert_options(px = 15)
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
此代码片段似乎生成了正确的转换命令,但给出了“处理 xyz 流的缩略图时出错".
Command :: convert '/tmp/stream20120109-15817-1lju7p6-0.jpg[0]' -resize "918x"
-crop "918x483+0+105" +repage \( +clone -alpha extract -draw 'fill black polygon
0,0 0,15 15,0 fill white circle 15,15 15,0' \( +clone -flip \) -compose
Multiply -composite \( +clone -flop \) -compose Multiply -composite \) +alpha off
-compose CopyOpacity -composite '/tmp/stream20120109-15817-1lju7p6-....png'
[paperclip] An error was received while processing: #<Paperclip::PaperclipError:
There was an error processing the thumbnail for stream20120109-15817-1lju7p6-0>