You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
33 lines
915 B
33 lines
915 B
module Squib |
|
class Card |
|
|
|
# :nodoc: |
|
# @api private |
|
def save_png(i, dir, prefix, count_format, do_rotate, angle) |
|
if [true, :clockwise, :counterclockwise].include?(do_rotate) |
|
surface = rotated_image(angle) |
|
else |
|
surface = @cairo_surface |
|
end |
|
write_png(surface, i, dir, prefix, count_format) |
|
end |
|
|
|
# :nodoc: |
|
# @api private |
|
def rotated_image(angle) |
|
rotated_cc = Cairo::Context.new(Cairo::ImageSurface.new(@height, @width) ) |
|
rotated_cc.translate(@height * 0.5, @width * 0.5) |
|
rotated_cc.rotate(angle) |
|
rotated_cc.translate(@width * -0.5, @height * -0.5) |
|
rotated_cc.set_source(@cairo_surface) |
|
rotated_cc.paint |
|
rotated_cc.target |
|
end |
|
# :nodoc: |
|
# @api private |
|
def write_png(surface, i, dir, prefix, count_format) |
|
surface.write_to_png("#{dir}/#{prefix}#{count_format % i}.png") |
|
end |
|
|
|
end |
|
end
|
|
|