Class: Utopia::Tags::Gallery::Processes::CircularCropThumbnail

Inherits:
CropThumbnail show all
Defined in:
lib/utopia/tags/gallery/thumbnail.rb

Instance Method Summary collapse

Methods inherited from Thumbnail

#default_extension, #initialize

Constructor Details

This class inherits a constructor from Utopia::Tags::Gallery::Processes::Thumbnail

Instance Method Details

#call(img) ⇒ Object



61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
# File 'lib/utopia/tags/gallery/thumbnail.rb', line 61

def call(img)
	img = super(img)

	# The crop composite doesn't work correcty with unusual colourspaces:
	img.colorspace = Magick::SRGBColorspace

	circle = Magick::Image.new(*@size)
	gc = Magick::Draw.new
	gc.fill('black')
	gc.circle(@size[0] / 2.0, @size[1] / 2.0, @size[0] / 2.0, 1)
	gc.draw(circle)

	mask = circle.blur_image(0,1).negate

	mask.matte = false
	img.matte = true

	img.composite!(mask, Magick::CenterGravity, Magick::CopyOpacityCompositeOp)
end