Sha256: 43c7c7977d75db613cbbe16522a2518b51e9bbfc2f5bb14fe998e38d2405d53d

Contents?: true

Size: 1.17 KB

Versions: 90

Compression:

Stored size: 1.17 KB

Contents

#!/usr/bin/env ruby
=begin
  svg2.rb - Ruby/RSVG sample script.

  Copyright (c) 2006-2017 Ruby-GNOME2 Project Team
  This program is licenced under the same licence as Ruby-GNOME2.
=end

require 'tempfile'
require "rsvg2"

if ARGV.size < 2
  puts "usage: #{$0} input.svg output [scale_ratio]"
  exit(-1)
end

input, output, ratio = ARGV
ratio ||= 1.0
ratio = ratio.to_f

output_type = File.extname(output)[1..-1].downcase
output_type = "jpeg" if /jpg/ =~ output_type

def to_pixbuf(input, ratio)
  handle = nil
  Dir.chdir(File.dirname(File.expand_path(input))) do
    handle = Rsvg::Handle.new(:path => input)
  end
  dim = handle.dimensions
  width = dim.width * ratio
  height = dim.height * ratio
  surface = Cairo::ImageSurface.new(Cairo::FORMAT_ARGB32, width, height)
  cr = Cairo::Context.new(surface)
  cr.scale(ratio, ratio)
  cr.render_rsvg_handle(handle)
  temp = Tempfile.new("svg2")
  cr.target.write_to_png(temp.path)
  cr.target.finish
  GdkPixbuf::Pixbuf.new(:file => temp.path)
end

pixbuf = to_pixbuf(input, ratio)
if pixbuf.nil?
  puts "Is it a SVG file?: #{input}"
  exit(-1)
end
puts "saving to #{output}(#{pixbuf.width}x#{pixbuf.height})..."
pixbuf.save(output, output_type)

Version data entries

90 entries across 90 versions & 1 rubygems

Version Path
rsvg2-4.2.8 sample/svg2.rb
rsvg2-4.2.7 sample/svg2.rb
rsvg2-4.2.6 sample/svg2.rb
rsvg2-4.2.5 sample/svg2.rb
rsvg2-4.2.4 sample/svg2.rb
rsvg2-4.2.3 sample/svg2.rb
rsvg2-4.2.2 sample/svg2.rb
rsvg2-4.2.1 sample/svg2.rb
rsvg2-4.2.0 sample/svg2.rb
rsvg2-4.1.9 sample/svg2.rb
rsvg2-4.1.8 sample/svg2.rb
rsvg2-4.1.7 sample/svg2.rb
rsvg2-4.1.6 sample/svg2.rb
rsvg2-4.1.5 sample/svg2.rb
rsvg2-4.1.4 sample/svg2.rb
rsvg2-4.1.3 sample/svg2.rb
rsvg2-4.1.2 sample/svg2.rb
rsvg2-4.1.1 sample/svg2.rb
rsvg2-4.1.0 sample/svg2.rb
rsvg2-4.0.9 sample/svg2.rb