class Imagecache::Conversions::Round
Public Instance Methods
process(file, metadata, conversion)
click to toggle source
# File lib/imagecache/conversions/round.rb, line 9 def process(file, metadata, conversion) shortest = [metadata.width, metadata.height].min radius = (conversion.radius / 100.to_f) * shortest command = command(file.path, radius) `#{command}` data = File.open("#{file.path}.png").read File.unlink("#{file.path}.png") File.unlink(file.path) data end
Private Instance Methods
command(filepath, radius)
click to toggle source
# File lib/imagecache/conversions/round.rb, line 22 def command(filepath, radius) arguments = [] arguments << '\( +clone -alpha extract' arguments << "-draw 'fill black polygon 0,0 0,#{radius} #{radius},0 fill white circle #{radius},#{radius} #{radius},0'" arguments << '\( +clone -flip \) -compose Multiply -composite' arguments << '\( +clone -flop \) -compose Multiply -composite' arguments << '\) -alpha off -compose CopyOpacity -composite' "convert #{filepath} #{arguments.join(' ')} #{filepath}.png" end