rsvg2 2.2.4-x64-mingw32
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +7 -0
- data/README +35 -0
- data/Rakefile +69 -0
- data/ext/rsvg2/depend +6 -0
- data/ext/rsvg2/extconf.rb +89 -0
- data/ext/rsvg2/rbrsvg.c +206 -0
- data/ext/rsvg2/rbrsvgdimensiondata.c +194 -0
- data/ext/rsvg2/rbrsvghandle.c +496 -0
- data/ext/rsvg2/rsvg2.def +2 -0
- data/ext/rsvg2/rsvg2.h +70 -0
- data/extconf.rb +49 -0
- data/lib/2.0/rsvg2.so +0 -0
- data/lib/2.1/rsvg2.so +0 -0
- data/lib/2.2/rsvg2.so +0 -0
- data/lib/rsvg2.rb +33 -0
- data/sample/svg-viewer.rb +44 -0
- data/sample/svg2.rb +60 -0
- data/test/rsvg2-test-utils.rb +23 -0
- data/test/run-test.rb +49 -0
- data/test/test-handle.rb +91 -0
- data/vendor/local/bin/croco-0.6-config +87 -0
- data/vendor/local/bin/csslint-0.6.exe +0 -0
- data/vendor/local/bin/libcroco-0.6-3.dll +0 -0
- data/vendor/local/bin/librsvg-2-2.dll +0 -0
- data/vendor/local/bin/rsvg-convert.exe +0 -0
- data/vendor/local/include/libcroco-0.6/libcroco/cr-additional-sel.h +98 -0
- data/vendor/local/include/libcroco-0.6/libcroco/cr-attr-sel.h +74 -0
- data/vendor/local/include/libcroco-0.6/libcroco/cr-cascade.h +74 -0
- data/vendor/local/include/libcroco-0.6/libcroco/cr-declaration.h +136 -0
- data/vendor/local/include/libcroco-0.6/libcroco/cr-doc-handler.h +298 -0
- data/vendor/local/include/libcroco-0.6/libcroco/cr-enc-handler.h +94 -0
- data/vendor/local/include/libcroco-0.6/libcroco/cr-fonts.h +315 -0
- data/vendor/local/include/libcroco-0.6/libcroco/cr-input.h +174 -0
- data/vendor/local/include/libcroco-0.6/libcroco/cr-num.h +127 -0
- data/vendor/local/include/libcroco-0.6/libcroco/cr-om-parser.h +98 -0
- data/vendor/local/include/libcroco-0.6/libcroco/cr-parser.h +128 -0
- data/vendor/local/include/libcroco-0.6/libcroco/cr-parsing-location.h +70 -0
- data/vendor/local/include/libcroco-0.6/libcroco/cr-prop-list.h +80 -0
- data/vendor/local/include/libcroco-0.6/libcroco/cr-pseudo.h +64 -0
- data/vendor/local/include/libcroco-0.6/libcroco/cr-rgb.h +94 -0
- data/vendor/local/include/libcroco-0.6/libcroco/cr-sel-eng.h +110 -0
- data/vendor/local/include/libcroco-0.6/libcroco/cr-selector.h +95 -0
- data/vendor/local/include/libcroco-0.6/libcroco/cr-simple-sel.h +130 -0
- data/vendor/local/include/libcroco-0.6/libcroco/cr-statement.h +440 -0
- data/vendor/local/include/libcroco-0.6/libcroco/cr-string.h +76 -0
- data/vendor/local/include/libcroco-0.6/libcroco/cr-style.h +339 -0
- data/vendor/local/include/libcroco-0.6/libcroco/cr-stylesheet.h +102 -0
- data/vendor/local/include/libcroco-0.6/libcroco/cr-term.h +190 -0
- data/vendor/local/include/libcroco-0.6/libcroco/cr-tknzr.h +115 -0
- data/vendor/local/include/libcroco-0.6/libcroco/cr-token.h +212 -0
- data/vendor/local/include/libcroco-0.6/libcroco/cr-utils.h +246 -0
- data/vendor/local/include/libcroco-0.6/libcroco/libcroco-config.h +17 -0
- data/vendor/local/include/libcroco-0.6/libcroco/libcroco.h +44 -0
- data/vendor/local/include/librsvg-2.0/librsvg/librsvg-enum-types.h +24 -0
- data/vendor/local/include/librsvg-2.0/librsvg/librsvg-features.h +28 -0
- data/vendor/local/include/librsvg-2.0/librsvg/rsvg-cairo.h +42 -0
- data/vendor/local/include/librsvg-2.0/librsvg/rsvg.h +264 -0
- data/vendor/local/lib/girepository-1.0/Rsvg-2.0.typelib +0 -0
- data/vendor/local/lib/libcroco-0.6.a +0 -0
- data/vendor/local/lib/libcroco-0.6.dll.a +0 -0
- data/vendor/local/lib/libcroco-0.6.la +41 -0
- data/vendor/local/lib/librsvg-2.a +0 -0
- data/vendor/local/lib/librsvg-2.dll.a +0 -0
- data/vendor/local/lib/librsvg-2.la +41 -0
- data/vendor/local/lib/pkgconfig/libcroco-0.6.pc +11 -0
- data/vendor/local/lib/pkgconfig/librsvg-2.0.pc +15 -0
- data/vendor/local/share/gir-1.0/Rsvg-2.0.gir +754 -0
- data/vendor/local/share/gtk-doc/html/libcroco/ch01.html +113 -0
- data/vendor/local/share/gtk-doc/html/libcroco/home.png +0 -0
- data/vendor/local/share/gtk-doc/html/libcroco/index.html +109 -0
- data/vendor/local/share/gtk-doc/html/libcroco/index.sgml +582 -0
- data/vendor/local/share/gtk-doc/html/libcroco/left.png +0 -0
- data/vendor/local/share/gtk-doc/html/libcroco/libcroco-cr-additional-sel.html +337 -0
- data/vendor/local/share/gtk-doc/html/libcroco/libcroco-cr-attr-sel.html +203 -0
- data/vendor/local/share/gtk-doc/html/libcroco/libcroco-cr-cascade.html +240 -0
- data/vendor/local/share/gtk-doc/html/libcroco/libcroco-cr-declaration.html +642 -0
- data/vendor/local/share/gtk-doc/html/libcroco/libcroco-cr-doc-handler.html +517 -0
- data/vendor/local/share/gtk-doc/html/libcroco/libcroco-cr-enc-handler.html +164 -0
- data/vendor/local/share/gtk-doc/html/libcroco/libcroco-cr-fonts.html +670 -0
- data/vendor/local/share/gtk-doc/html/libcroco/libcroco-cr-input.html +1102 -0
- data/vendor/local/share/gtk-doc/html/libcroco/libcroco-cr-num.html +265 -0
- data/vendor/local/share/gtk-doc/html/libcroco/libcroco-cr-om-parser.html +380 -0
- data/vendor/local/share/gtk-doc/html/libcroco/libcroco-cr-parser.html +913 -0
- data/vendor/local/share/gtk-doc/html/libcroco/libcroco-cr-parsing-location.html +205 -0
- data/vendor/local/share/gtk-doc/html/libcroco/libcroco-cr-prop-list.html +421 -0
- data/vendor/local/share/gtk-doc/html/libcroco/libcroco-cr-pseudo.html +141 -0
- data/vendor/local/share/gtk-doc/html/libcroco/libcroco-cr-rgb.html +503 -0
- data/vendor/local/share/gtk-doc/html/libcroco/libcroco-cr-sel-eng.html +346 -0
- data/vendor/local/share/gtk-doc/html/libcroco/libcroco-cr-selector.html +246 -0
- data/vendor/local/share/gtk-doc/html/libcroco/libcroco-cr-simple-sel.html +240 -0
- data/vendor/local/share/gtk-doc/html/libcroco/libcroco-cr-statement.html +1408 -0
- data/vendor/local/share/gtk-doc/html/libcroco/libcroco-cr-string.html +137 -0
- data/vendor/local/share/gtk-doc/html/libcroco/libcroco-cr-style.html +384 -0
- data/vendor/local/share/gtk-doc/html/libcroco/libcroco-cr-stylesheet.html +158 -0
- data/vendor/local/share/gtk-doc/html/libcroco/libcroco-cr-term.html +304 -0
- data/vendor/local/share/gtk-doc/html/libcroco/libcroco-cr-tknzr.html +312 -0
- data/vendor/local/share/gtk-doc/html/libcroco/libcroco-cr-token.html +428 -0
- data/vendor/local/share/gtk-doc/html/libcroco/libcroco-cr-utils.html +334 -0
- data/vendor/local/share/gtk-doc/html/libcroco/libcroco-libcroco-config.html +80 -0
- data/vendor/local/share/gtk-doc/html/libcroco/libcroco.devhelp2 +511 -0
- data/vendor/local/share/gtk-doc/html/libcroco/right.png +0 -0
- data/vendor/local/share/gtk-doc/html/libcroco/style.css +266 -0
- data/vendor/local/share/gtk-doc/html/libcroco/up.png +0 -0
- data/vendor/local/share/gtk-doc/html/rsvg-2.0/RsvgHandle.html +1420 -0
- data/vendor/local/share/gtk-doc/html/rsvg-2.0/annotation-glossary.html +55 -0
- data/vendor/local/share/gtk-doc/html/rsvg-2.0/api-index-2-14.html +55 -0
- data/vendor/local/share/gtk-doc/html/rsvg-2.0/api-index-2-22.html +43 -0
- data/vendor/local/share/gtk-doc/html/rsvg-2.0/api-index-2-32.html +47 -0
- data/vendor/local/share/gtk-doc/html/rsvg-2.0/api-index-2-36.html +46 -0
- data/vendor/local/share/gtk-doc/html/rsvg-2.0/api-index-2-4.html +39 -0
- data/vendor/local/share/gtk-doc/html/rsvg-2.0/api-index-2-8.html +54 -0
- data/vendor/local/share/gtk-doc/html/rsvg-2.0/api-index-2-9.html +53 -0
- data/vendor/local/share/gtk-doc/html/rsvg-2.0/api-index-deprecated.html +100 -0
- data/vendor/local/share/gtk-doc/html/rsvg-2.0/api-index-full.html +323 -0
- data/vendor/local/share/gtk-doc/html/rsvg-2.0/home.png +0 -0
- data/vendor/local/share/gtk-doc/html/rsvg-2.0/index.html +88 -0
- data/vendor/local/share/gtk-doc/html/rsvg-2.0/index.sgml +106 -0
- data/vendor/local/share/gtk-doc/html/rsvg-2.0/left-insensitive.png +0 -0
- data/vendor/local/share/gtk-doc/html/rsvg-2.0/left.png +0 -0
- data/vendor/local/share/gtk-doc/html/rsvg-2.0/licence.html +57 -0
- data/vendor/local/share/gtk-doc/html/rsvg-2.0/object-tree.html +38 -0
- data/vendor/local/share/gtk-doc/html/rsvg-2.0/right-insensitive.png +0 -0
- data/vendor/local/share/gtk-doc/html/rsvg-2.0/right.png +0 -0
- data/vendor/local/share/gtk-doc/html/rsvg-2.0/rsvg-2.0.devhelp2 +94 -0
- data/vendor/local/share/gtk-doc/html/rsvg-2.0/rsvg-Using-RSVG-with-GIO.html +360 -0
- data/vendor/local/share/gtk-doc/html/rsvg-2.0/rsvg-Using-RSVG-with-GdkPixbuf.html +484 -0
- data/vendor/local/share/gtk-doc/html/rsvg-2.0/rsvg-Using-RSVG-with-cairo.html +154 -0
- data/vendor/local/share/gtk-doc/html/rsvg-2.0/rsvg-Version-check-and-feature-tests.html +142 -0
- data/vendor/local/share/gtk-doc/html/rsvg-2.0/rsvg.html +57 -0
- data/vendor/local/share/gtk-doc/html/rsvg-2.0/style.css +476 -0
- data/vendor/local/share/gtk-doc/html/rsvg-2.0/up-insensitive.png +0 -0
- data/vendor/local/share/gtk-doc/html/rsvg-2.0/up.png +0 -0
- data/vendor/local/share/license/libcroco/AUTHORS +13 -0
- data/vendor/local/share/license/libcroco/COPYING +481 -0
- data/vendor/local/share/license/libcroco/COPYING.LIB +481 -0
- data/vendor/local/share/license/librsvg/AUTHORS +1 -0
- data/vendor/local/share/license/librsvg/COPYING +340 -0
- data/vendor/local/share/license/librsvg/COPYING.LIB +482 -0
- data/vendor/local/share/man/man1/rsvg-convert.1 +55 -0
- metadata +209 -0
data/ext/rsvg2/rsvg2.def
ADDED
data/ext/rsvg2/rsvg2.h
ADDED
@@ -0,0 +1,70 @@
|
|
1
|
+
/* -*- c-file-style: "ruby"; indent-tabs-mode: nil -*- */
|
2
|
+
/*
|
3
|
+
* Copyright (C) 2011 Ruby-GNOME2 Project Team
|
4
|
+
* Copyright (C) 2005-2006 Ruby-GNOME2 Project Team
|
5
|
+
* Copyright (C) 2004 Kouhei Sutou <kou@cozmixng.org>
|
6
|
+
*
|
7
|
+
* This library is free software; you can redistribute it and/or
|
8
|
+
* modify it under the terms of the GNU Lesser General Public
|
9
|
+
* License as published by the Free Software Foundation; either
|
10
|
+
* version 2.1 of the License, or (at your option) any later version.
|
11
|
+
*
|
12
|
+
* This library is distributed in the hope that it will be useful,
|
13
|
+
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
14
|
+
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
15
|
+
* Lesser General Public License for more details.
|
16
|
+
*
|
17
|
+
* You should have received a copy of the GNU Lesser General Public
|
18
|
+
* License along with this library; if not, write to the Free Software
|
19
|
+
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
|
20
|
+
* MA 02110-1301 USA
|
21
|
+
*/
|
22
|
+
|
23
|
+
#ifndef RSVG2_H
|
24
|
+
#define RSVG2_H
|
25
|
+
|
26
|
+
#ifdef __cplusplus
|
27
|
+
extern "C" {
|
28
|
+
#endif /* __cplusplus */
|
29
|
+
|
30
|
+
#include <ruby.h>
|
31
|
+
|
32
|
+
#include <rbglib.h>
|
33
|
+
#include <rbgobject.h>
|
34
|
+
|
35
|
+
#ifdef HAVE_LIBRSVG_RSVG_GZ_H
|
36
|
+
# include <librsvg/rsvg-gz.h>
|
37
|
+
#else
|
38
|
+
# include <librsvg/rsvg.h>
|
39
|
+
#endif
|
40
|
+
|
41
|
+
#ifdef HAVE_RB_CAIRO_H
|
42
|
+
# include <rb_cairo.h>
|
43
|
+
# include <librsvg/rsvg-cairo.h>
|
44
|
+
#endif
|
45
|
+
|
46
|
+
#ifdef HAVE_LIBRSVG_LIBRSVG_ENUM_TYPES_H
|
47
|
+
# include <librsvg/librsvg-enum-types.h>
|
48
|
+
#else
|
49
|
+
# include "librsvg-enum-types.h"
|
50
|
+
#endif
|
51
|
+
|
52
|
+
#define LIBRSVG_CHECK_VERSION(major, minor, micro) \
|
53
|
+
(LIBRSVG_MAJOR_VERSION > (major) || \
|
54
|
+
(LIBRSVG_MAJOR_VERSION == (major) && LIBRSVG_MINOR_VERSION > (minor)) || \
|
55
|
+
(LIBRSVG_MAJOR_VERSION == (major) && LIBRSVG_MINOR_VERSION == (minor) && \
|
56
|
+
LIBRSVG_MICRO_VERSION >= (micro)))
|
57
|
+
|
58
|
+
#if !LIBRSVG_CHECK_VERSION(2, 36, 2)
|
59
|
+
# include <librsvg/librsvg-features.h>
|
60
|
+
#endif
|
61
|
+
|
62
|
+
|
63
|
+
G_GNUC_INTERNAL void Init_rsvg_handle(VALUE mRSVG);
|
64
|
+
G_GNUC_INTERNAL void Init_rsvg_dimensiondata(VALUE mRSVG);
|
65
|
+
|
66
|
+
#ifdef __cplusplus
|
67
|
+
}
|
68
|
+
#endif
|
69
|
+
|
70
|
+
#endif
|
data/extconf.rb
ADDED
@@ -0,0 +1,49 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
|
3
|
+
require 'pathname'
|
4
|
+
require 'mkmf'
|
5
|
+
require 'rbconfig'
|
6
|
+
require 'fileutils'
|
7
|
+
|
8
|
+
package = "rsvg2"
|
9
|
+
|
10
|
+
base_dir = Pathname(__FILE__).dirname.expand_path
|
11
|
+
ext_dir = base_dir + "ext" + package
|
12
|
+
mkmf_gnome2_dir = base_dir + 'lib'
|
13
|
+
|
14
|
+
ruby = File.join(RbConfig::CONFIG['bindir'],
|
15
|
+
RbConfig::CONFIG['ruby_install_name'] +
|
16
|
+
RbConfig::CONFIG["EXEEXT"])
|
17
|
+
|
18
|
+
build_dir = Pathname("ext") + package
|
19
|
+
FileUtils.mkdir_p(build_dir.to_s) unless build_dir.exist?
|
20
|
+
extconf_rb_path = ext_dir + "extconf.rb"
|
21
|
+
system(ruby, "-C", build_dir.to_s, extconf_rb_path.to_s, *ARGV) || exit(false)
|
22
|
+
|
23
|
+
create_makefile(package)
|
24
|
+
FileUtils.mv("Makefile", "Makefile.lib")
|
25
|
+
|
26
|
+
File.open("Makefile", "w") do |makefile|
|
27
|
+
makefile.puts(<<-EOM)
|
28
|
+
all:
|
29
|
+
(cd ext/#{package} && $(MAKE))
|
30
|
+
$(MAKE) -f Makefile.lib
|
31
|
+
|
32
|
+
install:
|
33
|
+
(cd ext/#{package} && $(MAKE) install)
|
34
|
+
$(MAKE) -f Makefile.lib install
|
35
|
+
|
36
|
+
site-install:
|
37
|
+
(cd ext/#{package} && $(MAKE) site-install)
|
38
|
+
$(MAKE) -f Makefile.lib site-install
|
39
|
+
|
40
|
+
clean:
|
41
|
+
(cd ext/#{package} && $(MAKE) clean)
|
42
|
+
$(MAKE) -f Makefile.lib clean
|
43
|
+
|
44
|
+
distclean:
|
45
|
+
(cd ext/#{package} && $(MAKE) distclean)
|
46
|
+
$(MAKE) -f Makefile.lib distclean
|
47
|
+
@rm -f Makefile.lib
|
48
|
+
EOM
|
49
|
+
end
|
data/lib/2.0/rsvg2.so
ADDED
Binary file
|
data/lib/2.1/rsvg2.so
ADDED
Binary file
|
data/lib/2.2/rsvg2.so
ADDED
Binary file
|
data/lib/rsvg2.rb
ADDED
@@ -0,0 +1,33 @@
|
|
1
|
+
require "glib2"
|
2
|
+
require "gdk_pixbuf2"
|
3
|
+
begin
|
4
|
+
require "cairo"
|
5
|
+
rescue LoadError
|
6
|
+
end
|
7
|
+
|
8
|
+
base_dir = Pathname.new(__FILE__).dirname.dirname.expand_path
|
9
|
+
vendor_dir = base_dir + "vendor" + "local"
|
10
|
+
vendor_bin_dir = vendor_dir + "bin"
|
11
|
+
GLib.prepend_dll_path(vendor_bin_dir)
|
12
|
+
begin
|
13
|
+
major, minor, micro, = RUBY_VERSION.split(/\./)
|
14
|
+
require "#{major}.#{minor}/rsvg2.so"
|
15
|
+
rescue LoadError
|
16
|
+
require "rsvg2.so"
|
17
|
+
end
|
18
|
+
|
19
|
+
module RSVG
|
20
|
+
LOG_DOMAIN = "librsvg"
|
21
|
+
end
|
22
|
+
|
23
|
+
if RSVG.cairo_available?
|
24
|
+
module Cairo
|
25
|
+
class Context
|
26
|
+
def render_rsvg_handle(handle, *args, &block)
|
27
|
+
handle.render_cairo(self, *args, &block)
|
28
|
+
end
|
29
|
+
end
|
30
|
+
end
|
31
|
+
end
|
32
|
+
|
33
|
+
GLib::Log.set_log_domain(RSVG::LOG_DOMAIN)
|
@@ -0,0 +1,44 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
|
3
|
+
require 'gtk2'
|
4
|
+
require 'rsvg2'
|
5
|
+
|
6
|
+
unless RSVG.cairo_available?
|
7
|
+
puts "this sample needs RSVG with cairo support"
|
8
|
+
exit(-1)
|
9
|
+
end
|
10
|
+
|
11
|
+
unless Gdk.cairo_available?
|
12
|
+
puts "this sample needs GDK with cairo support"
|
13
|
+
exit(-1)
|
14
|
+
end
|
15
|
+
|
16
|
+
if ARGV.size != 1
|
17
|
+
puts "usage: #{$0} input.svg"
|
18
|
+
exit(-1)
|
19
|
+
end
|
20
|
+
|
21
|
+
input = ARGV.shift
|
22
|
+
|
23
|
+
handle = RSVG::Handle.new_from_file(input)
|
24
|
+
width, height = handle.dimensions.to_a
|
25
|
+
|
26
|
+
window = Gtk::Window.new
|
27
|
+
window.set_default_size(width, height)
|
28
|
+
area = Gtk::DrawingArea.new
|
29
|
+
|
30
|
+
window.signal_connect("destroy") do
|
31
|
+
Gtk.main_quit
|
32
|
+
end
|
33
|
+
|
34
|
+
area.signal_connect("expose_event") do |widget, event|
|
35
|
+
context = widget.window.create_cairo_context
|
36
|
+
window_width, window_height = widget.window.size
|
37
|
+
context.scale(window_width.to_f / width, window_height.to_f / height)
|
38
|
+
context.render_rsvg_handle(handle)
|
39
|
+
end
|
40
|
+
|
41
|
+
window.add(area)
|
42
|
+
window.show_all
|
43
|
+
|
44
|
+
Gtk.main
|
data/sample/svg2.rb
ADDED
@@ -0,0 +1,60 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
=begin
|
3
|
+
svg2.rb - Ruby/RSVG sample script.
|
4
|
+
|
5
|
+
Copyright (c) 2006 Ruby-GNOME2 Project Team
|
6
|
+
This program is licenced under the same licence as Ruby-GNOME2.
|
7
|
+
|
8
|
+
$Id: svg2.rb,v 1.5 2006/06/17 13:30:25 mutoh Exp $
|
9
|
+
=end
|
10
|
+
|
11
|
+
require 'tempfile'
|
12
|
+
require "rsvg2"
|
13
|
+
|
14
|
+
if ARGV.size < 2
|
15
|
+
puts "usage: #{$0} input.svg output [scale_ratio]"
|
16
|
+
exit(-1)
|
17
|
+
end
|
18
|
+
|
19
|
+
input, output, ratio = ARGV
|
20
|
+
ratio ||= 1.0
|
21
|
+
ratio = ratio.to_f
|
22
|
+
|
23
|
+
output_type = File.extname(output)[1..-1].downcase
|
24
|
+
output_type = "jpeg" if /jpg/ =~ output_type
|
25
|
+
|
26
|
+
def to_pixbuf_with_cairo(input, ratio)
|
27
|
+
handle = nil
|
28
|
+
Dir.chdir(File.dirname(File.expand_path(input))) do
|
29
|
+
handle = RSVG::Handle.new_from_file(input)
|
30
|
+
end
|
31
|
+
dim = handle.dimensions
|
32
|
+
width = dim.width * ratio
|
33
|
+
height = dim.height * ratio
|
34
|
+
surface = Cairo::ImageSurface.new(Cairo::FORMAT_ARGB32, width, height)
|
35
|
+
cr = Cairo::Context.new(surface)
|
36
|
+
cr.scale(ratio, ratio)
|
37
|
+
cr.render_rsvg_handle(handle)
|
38
|
+
temp = Tempfile.new("svg2")
|
39
|
+
cr.target.write_to_png(temp.path)
|
40
|
+
cr.target.finish
|
41
|
+
Gdk::Pixbuf.new(temp.path)
|
42
|
+
end
|
43
|
+
|
44
|
+
def to_pixbuf(input, ratio)
|
45
|
+
RSVG.pixbuf_from_file_at_zoom(input, ratio, ratio)
|
46
|
+
end
|
47
|
+
|
48
|
+
if RSVG.cairo_available?
|
49
|
+
puts "using cairo..."
|
50
|
+
pixbuf = to_pixbuf_with_cairo(input, ratio)
|
51
|
+
else
|
52
|
+
pixbuf = to_pixbuf(input, ratio)
|
53
|
+
end
|
54
|
+
|
55
|
+
if pixbuf.nil?
|
56
|
+
puts "Is it a SVG file?: #{input}"
|
57
|
+
exit(-1)
|
58
|
+
end
|
59
|
+
puts "saving to #{output}(#{pixbuf.width}x#{pixbuf.height})..."
|
60
|
+
pixbuf.save(output, output_type)
|
@@ -0,0 +1,23 @@
|
|
1
|
+
# Copyright (C) 2014 Ruby-GNOME2 Project Team
|
2
|
+
#
|
3
|
+
# This library is free software; you can redistribute it and/or
|
4
|
+
# modify it under the terms of the GNU Lesser General Public
|
5
|
+
# License as published by the Free Software Foundation; either
|
6
|
+
# version 2.1 of the License, or (at your option) any later version.
|
7
|
+
#
|
8
|
+
# This library is distributed in the hope that it will be useful,
|
9
|
+
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
10
|
+
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
11
|
+
# Lesser General Public License for more details.
|
12
|
+
#
|
13
|
+
# You should have received a copy of the GNU Lesser General Public
|
14
|
+
# License along with this library; if not, write to the Free Software
|
15
|
+
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
|
16
|
+
|
17
|
+
require "test-unit"
|
18
|
+
require "test/unit/notify"
|
19
|
+
|
20
|
+
require "fileutils"
|
21
|
+
|
22
|
+
module RSVG2TestUtils
|
23
|
+
end
|
data/test/run-test.rb
ADDED
@@ -0,0 +1,49 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
#
|
3
|
+
# Copyright (C) 2014 Ruby-GNOME2 Project Team
|
4
|
+
#
|
5
|
+
# This library is free software; you can redistribute it and/or
|
6
|
+
# modify it under the terms of the GNU Lesser General Public
|
7
|
+
# License as published by the Free Software Foundation; either
|
8
|
+
# version 2.1 of the License, or (at your option) any later version.
|
9
|
+
#
|
10
|
+
# This library is distributed in the hope that it will be useful,
|
11
|
+
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
12
|
+
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
13
|
+
# Lesser General Public License for more details.
|
14
|
+
#
|
15
|
+
# You should have received a copy of the GNU Lesser General Public
|
16
|
+
# License along with this library; if not, write to the Free Software
|
17
|
+
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
|
18
|
+
|
19
|
+
ruby_gnome2_base = File.join(File.dirname(__FILE__), "..", "..")
|
20
|
+
ruby_gnome2_base = File.expand_path(ruby_gnome2_base)
|
21
|
+
|
22
|
+
glib_base = File.join(ruby_gnome2_base, "glib2")
|
23
|
+
gdk_pixbuf2_base = File.join(ruby_gnome2_base, "gdk_pixbuf2")
|
24
|
+
rsvg2_base = File.join(ruby_gnome2_base, "rsvg2")
|
25
|
+
|
26
|
+
have_make = system("which make > /dev/null")
|
27
|
+
|
28
|
+
modules = [
|
29
|
+
[glib_base, "glib2"],
|
30
|
+
[gdk_pixbuf2_base, "gdk_pixbuf2"],
|
31
|
+
[rsvg2_base, "rsvg2"],
|
32
|
+
]
|
33
|
+
modules.each do |target, module_name|
|
34
|
+
if File.exist?(File.join(target, "Makefile")) and have_make
|
35
|
+
`make -C #{target.dump} > /dev/null` or exit(false)
|
36
|
+
end
|
37
|
+
$LOAD_PATH.unshift(File.join(target, "ext", module_name))
|
38
|
+
$LOAD_PATH.unshift(File.join(target, "lib"))
|
39
|
+
end
|
40
|
+
|
41
|
+
$LOAD_PATH.unshift(File.join(glib_base, "test"))
|
42
|
+
require "glib-test-init"
|
43
|
+
|
44
|
+
$LOAD_PATH.unshift(File.join(rsvg2_base, "test"))
|
45
|
+
require "rsvg2-test-utils"
|
46
|
+
|
47
|
+
require "rsvg2"
|
48
|
+
|
49
|
+
exit Test::Unit::AutoRunner.run(true)
|
data/test/test-handle.rb
ADDED
@@ -0,0 +1,91 @@
|
|
1
|
+
# Copyright (C) 2014 Ruby-GNOME2 Project Team
|
2
|
+
#
|
3
|
+
# This library is free software; you can redistribute it and/or
|
4
|
+
# modify it under the terms of the GNU Lesser General Public
|
5
|
+
# License as published by the Free Software Foundation; either
|
6
|
+
# version 2.1 of the License, or (at your option) any later version.
|
7
|
+
#
|
8
|
+
# This library is distributed in the hope that it will be useful,
|
9
|
+
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
10
|
+
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
11
|
+
# Lesser General Public License for more details.
|
12
|
+
#
|
13
|
+
# You should have received a copy of the GNU Lesser General Public
|
14
|
+
# License along with this library; if not, write to the Free Software
|
15
|
+
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
|
16
|
+
|
17
|
+
class TestHandle < Test::Unit::TestCase
|
18
|
+
sub_test_case ".new_from_file" do
|
19
|
+
sub_test_case "options" do
|
20
|
+
def setup
|
21
|
+
setup_svg
|
22
|
+
end
|
23
|
+
|
24
|
+
def setup_svg
|
25
|
+
@svg_path = "tmp/empty.svg"
|
26
|
+
return if File.exist?(@svg_path)
|
27
|
+
|
28
|
+
FileUtils.mkdir_p(File.dirname(@svg_path))
|
29
|
+
File.open(@svg_path, "w") do |svg|
|
30
|
+
svg.puts(<<-SVG)
|
31
|
+
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
32
|
+
<svg>
|
33
|
+
</svg>
|
34
|
+
SVG
|
35
|
+
end
|
36
|
+
end
|
37
|
+
|
38
|
+
def test_empty_options
|
39
|
+
handle = RSVG::Handle.new_from_file(@svg_path, {})
|
40
|
+
assert_equal([0, 0, 0.0, 0.0],
|
41
|
+
handle.dimensions.to_a)
|
42
|
+
end
|
43
|
+
end
|
44
|
+
|
45
|
+
sub_test_case ":flags => :unlimited" do
|
46
|
+
def setup
|
47
|
+
setup_large_svg
|
48
|
+
end
|
49
|
+
|
50
|
+
def setup_large_svg
|
51
|
+
@large_svg_path = "tmp/large-file.svg"
|
52
|
+
return if File.exist?(@large_svg_path)
|
53
|
+
|
54
|
+
FileUtils.mkdir_p(File.dirname(@large_svg_path))
|
55
|
+
large_byte = (10 * 1024 * 1024).to_i
|
56
|
+
File.open(@large_svg_path, "w") do |svg|
|
57
|
+
svg.puts(<<-SVG_HEADER)
|
58
|
+
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
59
|
+
<svg>
|
60
|
+
SVG_HEADER
|
61
|
+
large_byte.times do
|
62
|
+
svg.puts("\n")
|
63
|
+
end
|
64
|
+
svg.puts(<<-SVG_FOOTER)
|
65
|
+
</svg>
|
66
|
+
SVG_FOOTER
|
67
|
+
end
|
68
|
+
end
|
69
|
+
|
70
|
+
def test_no_option
|
71
|
+
assert_raise(RSVG::Error::Failed) do
|
72
|
+
RSVG::Handle.new_from_file(@large_svg_path)
|
73
|
+
end
|
74
|
+
end
|
75
|
+
|
76
|
+
def test_unlimited
|
77
|
+
handle = RSVG::Handle.new_from_file(@large_svg_path,
|
78
|
+
:flags => :flag_unlimited)
|
79
|
+
assert_equal([0, 0, 0.0, 0.0],
|
80
|
+
handle.dimensions.to_a)
|
81
|
+
end
|
82
|
+
|
83
|
+
def test_base_uri
|
84
|
+
handle = RSVG::Handle.new
|
85
|
+
uri_string = "test_base_uri"
|
86
|
+
handle.base_uri = uri_string
|
87
|
+
assert_match(uri_string, handle.base_uri)
|
88
|
+
end
|
89
|
+
end
|
90
|
+
end
|
91
|
+
end
|
@@ -0,0 +1,87 @@
|
|
1
|
+
#! /bin/sh
|
2
|
+
|
3
|
+
prefix=/home/vagrant/ruby-gnome2.win64/rsvg2/vendor/local
|
4
|
+
exec_prefix=${prefix}
|
5
|
+
exec_prefix_set=no
|
6
|
+
includedir=${prefix}/include
|
7
|
+
libdir=${exec_prefix}/lib
|
8
|
+
|
9
|
+
usage()
|
10
|
+
{
|
11
|
+
cat <<EOF
|
12
|
+
Usage: croco-config [OPTION]...
|
13
|
+
|
14
|
+
Known values for OPTION are:
|
15
|
+
|
16
|
+
--prefix=DIR change CROCO prefix [default $prefix]
|
17
|
+
--exec-prefix=DIR change CROCO executable prefix [default $exec_prefix]
|
18
|
+
--libs print library linking information
|
19
|
+
--cflags print pre-processor and compiler flags
|
20
|
+
--help display this help and exit
|
21
|
+
--version output version information
|
22
|
+
EOF
|
23
|
+
|
24
|
+
exit $1
|
25
|
+
}
|
26
|
+
|
27
|
+
if test $# -eq 0; then
|
28
|
+
usage 1
|
29
|
+
fi
|
30
|
+
|
31
|
+
cflags=false
|
32
|
+
libs=false
|
33
|
+
|
34
|
+
while test $# -gt 0; do
|
35
|
+
case "$1" in
|
36
|
+
-*=*) optarg=`echo "$1" | sed 's/[-_a-zA-Z0-9]*=//'` ;;
|
37
|
+
*) optarg= ;;
|
38
|
+
esac
|
39
|
+
|
40
|
+
case "$1" in
|
41
|
+
--prefix=*)
|
42
|
+
prefix=$optarg
|
43
|
+
if test $exec_prefix_set = no ; then
|
44
|
+
exec_prefix=$optarg
|
45
|
+
fi
|
46
|
+
;;
|
47
|
+
|
48
|
+
--prefix)
|
49
|
+
echo $prefix
|
50
|
+
;;
|
51
|
+
|
52
|
+
--exec-prefix=*)
|
53
|
+
exec_prefix=$optarg
|
54
|
+
exec_prefix_set=yes
|
55
|
+
;;
|
56
|
+
|
57
|
+
--exec-prefix)
|
58
|
+
echo $exec_prefix
|
59
|
+
;;
|
60
|
+
|
61
|
+
--version)
|
62
|
+
echo 0.6.8
|
63
|
+
exit 0
|
64
|
+
;;
|
65
|
+
|
66
|
+
--help)
|
67
|
+
usage 0
|
68
|
+
;;
|
69
|
+
|
70
|
+
--cflags)
|
71
|
+
echo -mms-bitfields -I/home/vagrant/ruby-gnome2.win64/glib2/vendor/local/include -I/home/vagrant/ruby-gnome2.win64/glib2/vendor/local/include/glib-2.0 -I/home/vagrant/ruby-gnome2.win64/glib2/vendor/local/lib/glib-2.0/include -I/home/vagrant/rcairo.win64/vendor/local/include/libxml2 @GLIB2_CFLAGS@ @LIBXML2_CFLAGS@
|
72
|
+
;;
|
73
|
+
|
74
|
+
--libs)
|
75
|
+
echo -L/home/vagrant/ruby-gnome2.win64/glib2/vendor/local/lib -L/home/vagrant/rcairo.win64/vendor/local/lib -lglib-2.0 -lintl -lxml2 @GLIB2_LIBS@ @LIBXML2_LIBS@
|
76
|
+
;;
|
77
|
+
|
78
|
+
*)
|
79
|
+
usage
|
80
|
+
exit 1
|
81
|
+
;;
|
82
|
+
esac
|
83
|
+
shift
|
84
|
+
done
|
85
|
+
|
86
|
+
|
87
|
+
exit 0
|