Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
path: root/TurtleArt/tasprite_factory.py
diff options
context:
space:
mode:
Diffstat (limited to 'TurtleArt/tasprite_factory.py')
-rwxr-xr-xTurtleArt/tasprite_factory.py505
1 files changed, 265 insertions, 240 deletions
diff --git a/TurtleArt/tasprite_factory.py b/TurtleArt/tasprite_factory.py
index f92a00d..24622b5 100755
--- a/TurtleArt/tasprite_factory.py
+++ b/TurtleArt/tasprite_factory.py
@@ -27,7 +27,10 @@ import os
from gettext import gettext as _
from taconstants import HIT_RED, HIT_GREEN, HIDE_WHITE, SHOW_WHITE
+
+
class SVG:
+
def __init__(self):
self._x = 0
self._y = 0
@@ -44,10 +47,10 @@ class SVG:
self._stroke_width = 1
self._innie = [False]
self._outie = False
- self._innie_x1 = (9-self._stroke_width)/2
+ self._innie_x1 = (9 - self._stroke_width) / 2
self._innie_y1 = 3
- self._innie_x2 = (9-self._stroke_width)/2
- self._innie_y2 = (9-self._stroke_width)/2
+ self._innie_x2 = (9 - self._stroke_width) / 2
+ self._innie_y2 = (9 - self._stroke_width) / 2
self._innie_spacer = 9
self._slot = True
self._cap = False
@@ -56,7 +59,8 @@ class SVG:
self._slot_x = 10
self._slot_y = 2
self._porch = False
- self._porch_x = self._innie_x1+self._innie_x2+4*self._stroke_width
+ self._porch_x = self._innie_x1 + self._innie_x2 + \
+ 4 * self._stroke_width
self._porch_y = self._innie_y2
self._expand_x = 0
self._expand_y = 0
@@ -89,12 +93,13 @@ class SVG:
for i in range(len(self._innie)):
if self._innie[i] is True:
svg += self._do_innie()
- if i==0:
+ if i == 0:
svg += self._rline_to(0, self._expand_y)
- if i==0 and self._porch is True:
+ if i == 0 and self._porch is True:
svg += self._do_porch(False)
- elif len(self._innie)-1 > i:
- svg += self._rline_to(0, 2*self._innie_y2+self._innie_spacer)
+ elif len(self._innie) - 1 > i:
+ svg += self._rline_to(0,
+ 2 * self._innie_y2 + self._innie_spacer)
# moved expand_y to just after first innie above
# svg += self._rline_to(0, self._expand_y)
svg += self._corner(-1, 1)
@@ -107,8 +112,8 @@ class SVG:
svg += self._corner(-1, -1)
svg += self._rline_to(0, -self._expand_y)
if True in self._innie:
- svg += self.line_to(x, self._radius+self._innie_y2+\
- self._stroke_width/2.0)
+ svg += self.line_to(x, self._radius + self._innie_y2 + \
+ self._stroke_width / 2.0)
svg += self._do_outie()
self.calc_w_h()
svg += self._close_path()
@@ -140,22 +145,22 @@ class SVG:
svg += self._do_innie()
svg += self._rline_to(0, self._innie_spacer)
else:
- self.margins[2] =\
- int((self._x-self._stroke_width+0.5)*self._scale)
+ self.margins[2] = \
+ int((self._x - self._stroke_width + 0.5) * self._scale)
if self._bool is True:
- svg += self._rline_to(0,self._radius/2.0)
+ svg += self._rline_to(0, self._radius / 2.0)
svg += self._do_boolean()
- svg += self._rline_to(0,self._stroke_width)
+ svg += self._rline_to(0, self._stroke_width)
if self._else:
- svg += self._rline_to(self._radius*3+self._slot_x*2, 0)
+ svg += self._rline_to(self._radius * 3 + self._slot_x * 2, 0)
else:
- svg += self._rline_to(self._radius+self._slot_x, 0)
+ svg += self._rline_to(self._radius + self._slot_x, 0)
hh = self._x
svg += self._corner(1, 1)
- svg += self._rline_to(-self._radius,0)
+ svg += self._rline_to(-self._radius, 0)
if self._else:
svg += self._do_tab()
- svg += self._rline_to(-self._radius*2, 0)
+ svg += self._rline_to(-self._radius * 2, 0)
svg += self._do_tab()
svg += self._inverse_corner(-1, 1, 90, 0, 0, True, False)
svg += self._rline_to(0, self._expand_y)
@@ -168,7 +173,7 @@ class SVG:
svg += self._corner(-1, -1)
svg += self._rline_to(0, -self._expand_y)
if True in self._innie:
- svg += self.line_to(x, self._radius+self._innie_y2+\
+ svg += self.line_to(x, self._radius + self._innie_y2 + \
self._stroke_width)
svg += self._close_path()
self.calc_w_h()
@@ -183,11 +188,11 @@ class SVG:
def portfolio(self):
self.reset_min_max()
(x, y) = self._calculate_x_y()
- self.margins[0] = int(x+2*self._stroke_width+0.5)
- self.margins[1] = int(y+self._stroke_width+0.5+self._slot_y)
+ self.margins[0] = int(x + 2 * self._stroke_width + 0.5)
+ self.margins[1] = int(y + self._stroke_width + 0.5 + self._slot_y)
self.margins[2] = 0
self.margins[3] = 0
- x += self._innie_x1+self._innie_x2
+ x += self._innie_x1 + self._innie_x2
svg = self.new_path(x, y)
svg += self._corner(1, -1)
svg += self._do_slot()
@@ -198,19 +203,23 @@ class SVG:
for i in range(len(self._innie)):
if self._innie[i] is True and i > 0 and self._draw_innies:
svg += self._do_innie()
- svg += self._rline_to(0, 2*self._innie_y2+self._innie_spacer)
+ svg += self._rline_to(0, 2 * self._innie_y2 + \
+ self._innie_spacer)
else:
- svg += self._rline_to(0, 2*self._innie_y2+self._innie_spacer)
+ svg += self._rline_to(0, 2 * self._innie_y2 + \
+ self._innie_spacer)
svg += self._corner(-1, 1)
svg += self.line_to(xx, self._y)
svg += self._do_tab()
svg += self._corner(-1, -1)
for i in range(len(self._innie)):
- if self._innie[len(self._innie)-i-1] is True:
- svg += self._rline_to(0, -2*self._innie_y2-self._innie_spacer)
+ if self._innie[len(self._innie) - i - 1] is True:
+ svg += self._rline_to(0, -2 * self._innie_y2 - \
+ self._innie_spacer)
svg += self._do_reverse_innie()
else:
- svg += self._rline_to(0, -2*self._innie_y2-self._innie_spacer)
+ svg += self._rline_to(0, -2 * self._innie_y2 - \
+ self._innie_spacer)
svg += self._close_path()
self.calc_w_h()
svg += self.style()
@@ -220,17 +229,18 @@ class SVG:
def basic_box(self):
self.reset_min_max()
self.set_outie(True)
- x = self._stroke_width/2.0+self._innie_x1+self._innie_x2
- self.margins[0] = int((x+self._stroke_width+0.5)*self._scale)
- self.margins[1] = int((self._stroke_width+0.5)*self._scale)
+ x = self._stroke_width / 2.0 + self._innie_x1 + self._innie_x2
+ self.margins[0] = int((x + self._stroke_width + 0.5) * self._scale)
+ self.margins[1] = int((self._stroke_width + 0.5) * self._scale)
self.margins[2] = 0
self.margins[3] = 0
- svg = self.new_path(x, self._stroke_width/2.0)
+ svg = self.new_path(x, self._stroke_width / 2.0)
svg += self._rline_to(self._expand_x, 0)
- svg += self._rline_to(0, 2*self._radius+self._innie_y2+self._expand_y)
+ svg += self._rline_to(0, 2 * self._radius + self._innie_y2 + \
+ self._expand_y)
svg += self._rline_to(-self._expand_x, 0)
- svg += self.line_to(x, self._radius+self._innie_y2+\
- self._stroke_width/2.0)
+ svg += self.line_to(x, self._radius + self._innie_y2 + \
+ self._stroke_width / 2.0)
svg += self._do_outie()
svg += self._close_path()
self.calc_w_h()
@@ -240,137 +250,143 @@ class SVG:
def boolean_and_or(self):
self.reset_min_max()
- svg = self._start_boolean(self._stroke_width/2.0,
- self._radius*5.5+self._stroke_width/2.0+\
- self._innie_y2+self._innie_spacer +\
+ svg = self._start_boolean(self._stroke_width / 2.0,
+ self._radius * 5.5 + self._stroke_width / \
+ 2.0 + \
+ self._innie_y2 + self._innie_spacer +\
self._expand_y)
- svg += self._rline_to(0,-self._radius*3.5-self._innie_y2-\
- self._innie_spacer-self._stroke_width)
+ svg += self._rline_to(0, -self._radius * 3.5 - self._innie_y2 - \
+ self._innie_spacer - self._stroke_width)
- self._hide_x = self._x + self._radius/2 + self._stroke_width
- self._hide_y = self._y - self._radius/2 + self._stroke_width
- self._show_x = self._x + self._radius/2 + self._stroke_width
+ self._hide_x = self._x + self._radius / 2 + self._stroke_width
+ self._hide_y = self._y - self._radius / 2 + self._stroke_width
+ self._show_x = self._x + self._radius / 2 + self._stroke_width
svg += self._rarc_to(1, -1)
- svg += self._rline_to(self._radius/2.0+self._expand_x, 0)
+ svg += self._rline_to(self._radius / 2.0 + self._expand_x, 0)
xx = self._x
- svg += self._rline_to(0,self._radius/2.0)
+ svg += self._rline_to(0, self._radius / 2.0)
svg += self._do_boolean()
- svg += self._rline_to(0,self._radius*1.5+self._innie_y2+\
+ svg += self._rline_to(0, self._radius * 1.5 + self._innie_y2 + \
self._innie_spacer)
svg += self._rline_to(0, self._expand_y)
svg += self._do_boolean()
- svg += self._rline_to(0,self._radius/2.0)
+ svg += self._rline_to(0, self._radius / 2.0)
- self._show_y = self._y + self._radius/2
- self._show_y -= (self._innie_y1+self._innie_y2+self._stroke_width)
+ self._show_y = self._y + self._radius / 2
+ self._show_y -= (self._innie_y1 + self._innie_y2 + self._stroke_width)
svg += self.line_to(xx, self._y)
svg += self._rline_to(-self._expand_x, 0)
svg += self._end_boolean()
- self.margins[0] = int((self._radius+self._stroke_width+0.5)*self._scale)
- self.margins[1] = int(self._stroke_width*self._scale)
- self.margins[2] = int(self._stroke_width*self._scale)
- self.margins[3] = int(self._stroke_width*self._scale)
+ self.margins[0] = int((self._radius + self._stroke_width + 0.5) * \
+ self._scale)
+ self.margins[1] = int(self._stroke_width * self._scale)
+ self.margins[2] = int(self._stroke_width * self._scale)
+ self.margins[3] = int(self._stroke_width * self._scale)
return self.header() + svg
def boolean_not(self):
self.reset_min_max()
- svg = self._start_boolean(self._stroke_width/2.0,
- self._radius*2.0+self._stroke_width/2.0)
- svg += self._rline_to(0,-self._stroke_width)
+ svg = self._start_boolean(self._stroke_width / 2.0, self._radius * \
+ 2.0 + self._stroke_width / 2.0)
+ svg += self._rline_to(0, -self._stroke_width)
svg += self._rarc_to(1, -1)
- svg += self._rline_to(self._radius/2.0+self._expand_x, 0)
+ svg += self._rline_to(self._radius / 2.0 + self._expand_x, 0)
xx = self._x
- svg += self._rline_to(0,self._radius/2.0)
+ svg += self._rline_to(0, self._radius / 2.0)
svg += self._do_boolean()
- svg += self._rline_to(0,self._radius/2.0)
+ svg += self._rline_to(0, self._radius / 2.0)
svg += self.line_to(xx, self._y)
svg += self._rline_to(-self._expand_x, 0)
svg += self._end_boolean()
- self.margins[0] = int((self._radius+self._stroke_width+0.5)*self._scale)
- self.margins[1] = int(self._stroke_width*self._scale)
- self.margins[2] = int((self._radius+self._stroke_width+0.5)*self._scale)
- self.margins[3] = int(self._stroke_width*self._scale)
+ self.margins[0] = int((self._radius + self._stroke_width + 0.5) * \
+ self._scale)
+ self.margins[1] = int(self._stroke_width * self._scale)
+ self.margins[2] = int((self._radius + self._stroke_width + 0.5) * \
+ self._scale)
+ self.margins[3] = int(self._stroke_width * self._scale)
return self.header() + svg
def boolean_compare(self):
self.reset_min_max()
- yoffset = self._radius*2+2*self._innie_y2+\
- self._innie_spacer+self._stroke_width/2.0 + self._expand_y
+ yoffset = self._radius * 2 + 2 * self._innie_y2 + \
+ self._innie_spacer + self._stroke_width / 2.0 + \
+ self._expand_y
if self._porch is True:
yoffset += self._porch_y
- svg = self._start_boolean(self._stroke_width/2.0, yoffset)
- yoffset = -2*self._innie_y2-self._innie_spacer-self._stroke_width
+ svg = self._start_boolean(self._stroke_width / 2.0, yoffset)
+ yoffset = -2 * self._innie_y2 - self._innie_spacer - self._stroke_width
if self._porch is True:
yoffset -= self._porch_y
svg += self._rline_to(0, yoffset)
- self._hide_x = self._x + self._radius/2 + self._stroke_width
- self._hide_y = self._y - self._radius/2 + self._stroke_width
- self._show_x = self._x + self._radius/2 + self._stroke_width
+ self._hide_x = self._x + self._radius / 2 + self._stroke_width
+ self._hide_y = self._y - self._radius / 2 + self._stroke_width
+ self._show_x = self._x + self._radius / 2 + self._stroke_width
svg += self._rarc_to(1, -1)
- svg += self._rline_to(self._radius/2.0+self._expand_x, 0)
- svg += self._rline_to(0,self._radius)
+ svg += self._rline_to(self._radius / 2.0 + self._expand_x, 0)
+ svg += self._rline_to(0, self._radius)
xx = self._x
svg += self._do_innie()
svg += self._rline_to(0, self._expand_y)
if self._porch is True:
- svg += self._do_porch()
+ svg += self._do_porch()
else:
- svg += self._rline_to(0, 2*self._innie_y2+self._innie_spacer)
+ svg += self._rline_to(0, 2 * self._innie_y2 + self._innie_spacer)
svg += self._do_innie()
svg += self._rline_to(0, self._radius)
svg += self.line_to(xx, self._y)
svg += self._rline_to(-self._expand_x, 0)
- self._show_y = self._y + self._radius/2
- self._show_y -= (self._innie_y1+self._innie_y2+self._stroke_width)
+ self._show_y = self._y + self._radius / 2
+ self._show_y -= (self._innie_y1 + self._innie_y2 + self._stroke_width)
svg += self._end_boolean()
- self.margins[0] = int((self._radius+self._stroke_width)*self._scale)
- self.margins[1] = int(self._stroke_width*self._scale)
- self.margins[2] = int(self._stroke_width*self._scale)
- self.margins[3] = int(self._stroke_width*self._scale)
+ self.margins[0] = int((self._radius + self._stroke_width) * \
+ self._scale)
+ self.margins[1] = int(self._stroke_width * self._scale)
+ self.margins[2] = int(self._stroke_width * self._scale)
+ self.margins[3] = int(self._stroke_width * self._scale)
return self.header() + svg
def turtle(self, colors):
self.reset_min_max()
self._fill, self._stroke = colors[0], colors[1]
-
+
svg = "%s%s%s%s%s%s%s%s" % (" <path d=\"M 27.5 48.3 ",
"C 26.9 48.3 26.4 48.2 25.9 48.2 L 27.2 50.5 L 28.6 48.2 ",
"C 28.2 48.2 27.9 48.3 27.5 48.3 Z\" stroke_width=\"3.5\" ",
- "fill=\"", self._fill, ";\" stroke=\"", self._stroke,
+ "fill=\"", self._fill, ";\" stroke=\"", self._stroke,
"\" />\n")
- svg +="%s%s%s%s%s%s%s%s%s%s" % (" <path d=\"M 40.2 11.7 ",
+ svg += "%s%s%s%s%s%s%s%s%s%s" % (" <path d=\"M 40.2 11.7 ",
"C 38.0 11.7 36.2 13.3 35.8 15.3 ",
"C 37.7 16.7 39.3 18.4 40.5 20.5 ",
"C 42.8 20.4 44.6 18.5 44.6 16.2 ",
"C 44.6 13.7 42.6 11.7 40.2 11.7 Z\" stroke_width=\"3.5\" ",
- "fill=\"", self._fill, ";\" stroke=\"", self._stroke, "\" />\n")
- svg +="%s%s%s%s%s%s%s%s%s%s" % (" <path d=\"M 40.7 39.9 ",
+ "fill=\"", self._fill, ";\" stroke=\"", self._stroke, "\" />\n")
+ svg += "%s%s%s%s%s%s%s%s%s%s" % (" <path d=\"M 40.7 39.9 ",
"C 39.5 42.1 37.9 44.0 35.9 45.4 ",
"C 36.4 47.3 38.1 48.7 40.2 48.7 ",
"C 42.6 48.7 44.6 46.7 44.6 44.3 ",
"C 44.6 42.0 42.9 40.2 40.7 39.9 Z\" stroke_width=\"3.5\" ",
"fill=\"", self._fill, ";\" stroke=\"", self._stroke, "\" />\n")
- svg +="%s%s%s%s%s%s%s%s%s%s" % (" <path d=\"M 14.3 39.9 ",
+ svg += "%s%s%s%s%s%s%s%s%s%s" % (" <path d=\"M 14.3 39.9 ",
"C 12.0 40.1 10.2 42.0 10.2 44.3 ",
"C 10.2 46.7 12.2 48.7 14.7 48.7 ",
"C 16.7 48.7 18.5 47.3 18.9 45.4 ",
"C 17.1 43.9 15.5 42.1 14.3 39.9 Z\" stroke_width=\"3.5\" ",
"fill=\"", self._fill, ";\" stroke=\"", self._stroke, "\" />\n")
- svg +="%s%s%s%s%s%s%s%s%s%s" % (" <path d=\"M 19.0 15.4 ",
+ svg += "%s%s%s%s%s%s%s%s%s%s" % (" <path d=\"M 19.0 15.4 ",
"C 18.7 13.3 16.9 11.7 14.7 11.7 ",
"C 12.2 11.7 10.2 13.7 10.2 16.2 ",
- "C 10.2 18.5 12.1 20.5 14.5 20.6 ",
+ "C 10.2 18.5 12.1 20.5 14.5 20.6 ",
"C 15.7 18.5 17.2 16.8 19.0 15.4 Z\" stroke_width=\"3.5\" ",
"fill=\"", self._fill, ";\" stroke=\"", self._stroke, "\" />\n")
- svg +="%s%s%s%s%s%s%s%s%s%s%s%s" % (" <path d=\"M 27.5 12.6 ",
+ svg += "%s%s%s%s%s%s%s%s%s%s%s%s" % (" <path d=\"M 27.5 12.6 ",
"C 29.4 12.6 31.2 13.0 32.9 13.7 ",
"C 33.7 12.6 34.1 11.3 34.1 9.9 ",
"C 34.1 6.2 31.1 3.2 27.4 3.2 ",
@@ -378,7 +394,7 @@ class SVG:
"C 20.7 11.3 21.2 12.7 22.0 13.7 ",
"C 23.7 13.0 25.5 12.6 27.5 12.6 Z\" stroke_width=\"3.5\" ",
"fill=\"", self._fill, ";\" stroke=\"", self._stroke, "\" />\n")
- svg +="%s%s%s%s%s%s%s%s%s%s%s%s" % (" <path d=\"M 43.1 30.4 ",
+ svg += "%s%s%s%s%s%s%s%s%s%s%s%s" % (" <path d=\"M 43.1 30.4 ",
"C 43.1 35.2 41.5 39.7 38.5 43.0 ",
"C 35.6 46.4 31.6 48.3 27.5 48.3 ",
"C 23.4 48.3 19.4 46.4 16.5 43.0 ",
@@ -386,30 +402,30 @@ class SVG:
"C 11.9 20.6 18.9 12.6 27.5 12.6 ",
"C 36.1 12.6 43.1 20.6 43.1 30.4 Z\" stroke_width=\"3.5\" ",
"fill=\"", self._fill, ";\" stroke=\"", self._stroke, "\" />\n")
- svg +="%s%s%s%s%s" % (" <path d=\"M 25.9 33.8 L 24.3 29.1 ",
+ svg += "%s%s%s%s%s" % (" <path d=\"M 25.9 33.8 L 24.3 29.1 ",
"L 27.5 26.5 L 31.1 29.2 L 29.6 33.8 Z\" stroke_width=\"3.5\" ",
"fill=\"", self._stroke, ";\" stroke=\"none\" />\n")
- svg +="%s%s%s%s%s%s" % (" <path d=\"M 27.5 41.6 ",
+ svg += "%s%s%s%s%s%s" % (" <path d=\"M 27.5 41.6 ",
"C 23.5 41.4 22.0 39.5 22.0 39.5 L 25.5 35.4 L 30.0 35.5 ",
"L 33.1 39.7 C 33.1 39.7 30.2 41.7 27.5 41.6 Z\" ",
"stroke_width=\"3.5\" fill=\"", self._stroke,
";\" stroke=\"none\" />\n")
- svg +="%s%s%s%s%s%s" % (" <path d=\"M 18.5 33.8 ",
+ svg += "%s%s%s%s%s%s" % (" <path d=\"M 18.5 33.8 ",
"C 17.6 30.9 18.6 27.0 18.6 27.0 L 22.6 29.1 L 24.1 33.8 ",
"L 20.5 38.0 C 20.5 38.0 19.1 36.0 18.4 33.8 Z\" ",
- "stroke_width=\"3.5\" fill=\"", self._stroke,
+ "stroke_width=\"3.5\" fill=\"", self._stroke,
";\" stroke=\"none\" />\n")
- svg +="%s%s%s%s%s%s" % (" <path d=\"M 19.5 25.1 ",
+ svg += "%s%s%s%s%s%s" % (" <path d=\"M 19.5 25.1 ",
"C 19.5 25.1 20.0 23.2 22.5 21.3 ",
"C 24.7 19.7 27.0 19.6 27.0 19.6 L 26.9 24.6 L 23.4 27.3 ",
"L 19.5 25.1 Z\" stroke_width=\"3.5\" fill=\"", self._stroke,
";\" stroke=\"none\" />\n")
- svg +="%s%s%s%s%s%s" % (" <path d=\"M 32.1 27.8 L 28.6 25.0 ",
+ svg += "%s%s%s%s%s%s" % (" <path d=\"M 32.1 27.8 L 28.6 25.0 ",
"L 29 19.8 C 29 19.8 30.8 19.7 33.0 21.4 ",
"C 35.2 23.2 36.3 26.4 36.3 26.4 L 32.1 27.8 Z\" ",
"stroke_width=\"3.5\" fill=\"", self._stroke,
";\" stroke=\"none\" />\n")
- svg +="%s%s%s%s%s%s" % (" <path d=\"M 31.3 34.0 L 32.6 29.6 ",
+ svg += "%s%s%s%s%s%s" % (" <path d=\"M 31.3 34.0 L 32.6 29.6 ",
"L 36.8 28.0 C 36.8 28.0 37.5 30.7 36.8 33.7 ",
"C 36.2 36.0 34.7 38.1 34.7 38.1 L 31.3 34.0 Z\" ",
"stroke_width=\"3.5\" fill=\"", self._stroke,
@@ -423,8 +439,8 @@ class SVG:
self._width, self._height = width, height
self._fill, self._stroke = "#FFD000", "none"
svg = self._rect(width, height, 0, 0)
- self._hide_x = (width-self._radius*1.5)/2
- self._hide_y = (height-self._radius*1.5)/2
+ self._hide_x = (width - self._radius * 1.5) / 2
+ self._hide_y = (height - self._radius * 1.5) / 2
svg += self._hide_dot(True)
svg += self.footer()
return self.header() + svg
@@ -439,15 +455,15 @@ class SVG:
def sandwich_top(self, innie_flag=True):
self.reset_min_max()
- x = self._stroke_width/2.0
- y = self._stroke_width/2.0+self._radius
- self.margins[0] = int((x+self._stroke_width+0.5)*self._scale)
- self.margins[1] = int((self._stroke_width+0.5)*self._scale)
+ x = self._stroke_width / 2.0
+ y = self._stroke_width / 2.0 + self._radius
+ self.margins[0] = int((x + self._stroke_width + 0.5) * self._scale)
+ self.margins[1] = int((self._stroke_width + 0.5) * self._scale)
self.margins[2] = 0
self.margins[3] = 0
svg = self.new_path(x, y)
svg += self._corner(1, -1)
- svg += self._rline_to(self._radius+self._stroke_width, 0)
+ svg += self._rline_to(self._radius + self._stroke_width, 0)
svg += self._do_slot()
svg += self._rline_to(self._expand_x, 0)
xx = self._x
@@ -463,7 +479,7 @@ class SVG:
svg += self._rline_to(0, self._expand_y)
svg += self._rline_to(-self._radius, 0)
else:
- svg += self._rline_to(-self._radius-self._stroke_width, 0)
+ svg += self._rline_to(-self._radius - self._stroke_width, 0)
svg += self._corner(-1, -1)
svg += self._close_path()
self.calc_w_h()
@@ -473,10 +489,10 @@ class SVG:
def sandwich_bottom(self):
self.reset_min_max()
- x = self._stroke_width/2.0
- y = self._stroke_width/2.0
- self.margins[0] = int((x+self._stroke_width+0.5)*self._scale)
- self.margins[1] = int((self._stroke_width+0.5)*self._scale)
+ x = self._stroke_width / 2.0
+ y = self._stroke_width / 2.0
+ self.margins[0] = int((x + self._stroke_width + 0.5) * self._scale)
+ self.margins[1] = int((self._stroke_width + 0.5) * self._scale)
self.margins[2] = 0
self.margins[3] = 0
svg = self.new_path(x, y)
@@ -487,13 +503,13 @@ class SVG:
svg += self._rline_to(self._radius, 0)
svg += self._corner(-1, 1)
svg += self._do_tab()
- svg += self._rline_to(-self._radius-self._stroke_width,0)
+ svg += self._rline_to(-self._radius - self._stroke_width, 0)
svg += self._corner(-1, -1)
svg += self._close_path()
self.calc_w_h()
svg += self.style()
- self._hide_x = x + self._radius/2
- self._hide_y = y + self._radius/2
+ self._hide_x = x + self._radius / 2
+ self._hide_y = y + self._radius / 2
if self._hide is True:
svg += self._hide_dot()
if self._show is True:
@@ -520,10 +536,10 @@ class SVG:
return self._height
def get_innie_width(self):
- return (self._innie_x1+self._innie_x2)*self._scale
+ return (self._innie_x1 + self._innie_x2) * self._scale
def get_slot_depth(self):
- return self._slot_y*self._scale
+ return self._slot_y * self._scale
def clear_docks(self):
self.docks = []
@@ -542,7 +558,7 @@ class SVG:
self._stroke_width = stroke_width
self._calc_porch_params()
- def set_colors(self, colors=["#00FF00","#00A000"]):
+ def set_colors(self, colors=["#00FF00", "#00A000"]):
self._fill = colors[0]
self._stroke = colors[1]
@@ -606,7 +622,7 @@ class SVG:
self._innie_y2 = y2
self._calc_porch_params()
- def set_innie_spacer(self, innie_spacer = 0):
+ def set_innie_spacer(self, innie_spacer=0):
self._innie_spacer = innie_spacer
def set_slot_params(self, x=12, y=4):
@@ -614,8 +630,10 @@ class SVG:
self._slot_y = y
def _calc_porch_params(self):
- self._porch_x = self._innie_x1+self._innie_x2+4*self._stroke_width
- self._porch_y = self._innie_y1+self._innie_y2+4*self._stroke_width
+ self._porch_x = self._innie_x1 + self._innie_x2 + \
+ 4 * self._stroke_width
+ self._porch_y = self._innie_y1 + self._innie_y2 + \
+ 4 * self._stroke_width
#
# SVG helper methods
@@ -645,9 +663,9 @@ class SVG:
" <linearGradient\n xlink:href=\"#linearGradient1234\"\n",
" id=\"linearGradient5678\"\n",
" x1=\"0\"\n",
- " y1=\"", self._height/2.0, "\"\n",
- " x2=\"", self._width/self._scale, "\"\n",
- " y2=\"", self._height/2.0, "\"\n",
+ " y1=\"", self._height / 2.0, "\"\n",
+ " x2=\"", self._width / self._scale, "\"\n",
+ " y2=\"", self._height / 2.0, "\"\n",
" gradientUnits=\"userSpaceOnUse\" />\n </defs>\n")
else:
return ""
@@ -655,7 +673,7 @@ class SVG:
def _transform(self, center):
if self._orientation != 0:
orientation = "<g\ntransform = \"rotate(%.1f %.1f %.1f)\">\n" % (
- self._orientation, self._width/2.0, self._height/2.0)
+ self._orientation, self._width / 2.0, self._height / 2.0)
else:
orientation = ""
if center:
@@ -663,7 +681,7 @@ class SVG:
-self._min_x, -self._min_y)
else:
return "<g\ntransform=\"scale(%.1f, %.1f)\">\n%s" % (
- self._scale, self._scale, orientation )
+ self._scale, self._scale, orientation)
def footer(self):
if self._orientation != 0:
@@ -677,9 +695,9 @@ class SVG:
else:
fill = self._fill
return "%s%s;%s%s;%s%.1f;%s%s" % (
- " style=\"fill:",fill,
- "fill-opacity:1;stroke:",self._stroke,
- "stroke-width:",self._stroke_width,
+ " style=\"fill:", fill,
+ "fill-opacity:1;stroke:", self._stroke,
+ "stroke-width:", self._stroke_width,
"stroke-linecap:round;",
"stroke-opacity:1;\" />\n")
@@ -687,8 +705,8 @@ class SVG:
self._x = x
self._y = y
self._check_min_max()
- self._x = x+width
- self._y = y-size
+ self._x = x + width
+ self._y = y - size
self._check_min_max()
return " %s%.1f%s%s%s%.1f%s%.1f%s%.1f%s%s%s%s%s" % (
"<text style=\"font-size:", size, "px;fill:", self._stroke,
@@ -700,20 +718,20 @@ class SVG:
self._x = x
self._y = y
self._check_min_max()
- self._x = x+w
- self._y = y+h
+ self._x = x + w
+ self._y = y + h
self._check_min_max()
if image_data == None:
return " %s%.1f%s%.1f%s%.1f%s%.1f%s%s%s" % (
"<image x=\"", x, "\" y=\"", y,
- "\" width=\"", w, "\" height=\"", h,
+ "\" width=\"", w, "\" height=\"", h,
"\" xlink:href=\"file://", path, "\"/>\n")
else:
return " %s%.1f%s%.1f%s%.1f%s%.1f%s%s%s" % (
"<image x=\"", x, "\" y=\"", y,
- "\" width=\"", w, "\" height=\"", h,
- "\" xlink:href=\"data:image/png;base64,", image_data, "\"/>\n")
-
+ "\" width=\"", w, "\" height=\"", h,
+ "\" xlink:href=\"data:image/png;base64,", image_data,
+ "\"/>\n")
def _circle(self, r, cx, cy):
return "%s%s%s%s%s%f%s%f%s%f%s" % ("<circle style=\"fill:",
@@ -723,12 +741,13 @@ class SVG:
def _rect(self, w, h, x, y):
return "%s%s%s%s%s%f%s%f%s%f%s%f%s" % ("<rect style=\"fill:",
self._fill, ";stroke:", self._stroke, ";\" width=\"", w,
- "\" height=\"", h,"\" x=\"", x, "\" y=\"", y, "\" />\n")
+ "\" height=\"", h, "\" x=\"", x, "\" y=\"", y, "\" />\n")
def background(self, fill):
return "%s%s%s%s%s%f%s%f%s%f%s%f%s" % ("<rect style=\"fill:",
- fill, ";stroke:", fill, ";\" width=\"", self._max_x-self._min_x,
- "\" height=\"", self._max_y-self._min_y,"\" x=\"",
+ fill, ";stroke:", fill, ";\" width=\"",
+ self._max_x - self._min_x,
+ "\" height=\"", self._max_y - self._min_y, "\" x=\"",
self._min_x, "\" y=\"", self._min_y, "\" />\n")
def _check_min_max(self):
@@ -749,13 +768,13 @@ class SVG:
self._x = x
self._y = y
self._check_min_max()
- return "L %.1f %.1f " % (x, y)
+ return "L %.1f %.1f " % (x, y)
def _rline_to(self, dx, dy):
if dx == 0 and dy == 0:
return ""
else:
- return self.line_to(self._x+dx, self._y+dy)
+ return self.line_to(self._x + dx, self._y + dy)
def arc_to(self, x, y, r, a=90, l=0, s=1):
self._check_min_max()
@@ -772,51 +791,53 @@ class SVG:
if self._radius == 0:
return ""
else:
- x = self._x + sign_x*self._radius
- y = self._y + sign_y*self._radius
+ x = self._x + sign_x * self._radius
+ y = self._y + sign_y * self._radius
return self.arc_to(x, y, self._radius, a, l, s)
def _inverse_corner(self, sign_x, sign_y, a=90, l=0, s=1, start=True,
end=True):
- r2 = self._stroke_width+self._radius/2.0
+ r2 = self._stroke_width + self._radius / 2.0
if start:
- if sign_x*sign_y == -1:
- svg_str =self._rline_to(sign_x*(r2-self._stroke_width), 0)
+ if sign_x * sign_y == -1:
+ svg_str = self._rline_to(sign_x * (r2 - self._stroke_width), 0)
else:
- svg_str =self._rline_to(0, sign_y*+(r2-self._stroke_width))
- x = self._x + sign_x*r2
- y = self._y + sign_y*r2
+ svg_str = self._rline_to(0, sign_y * (r2 - self._stroke_width))
+ x = self._x + sign_x * r2
+ y = self._y + sign_y * r2
svg_str += self.arc_to(x, y, r2, a, l, s)
if end:
- if sign_x*sign_y == -1:
- svg_str +=self._rline_to(0, sign_y*(r2-self._stroke_width))
+ if sign_x * sign_y == -1:
+ svg_str += self._rline_to(0,
+ sign_y * (r2 - self._stroke_width))
else:
- svg_str +=self._rline_to(sign_x*(r2-self._stroke_width), 0)
+ svg_str += self._rline_to(sign_x * (r2 - self._stroke_width),
+ 0)
return svg_str
def _corner(self, sign_x, sign_y, a=90, l=0, s=1, start=True, end=True):
svg_str = ""
if sign_x == 1 and sign_y == -1:
- self._hide_x = self._x + self._radius/2 + self._stroke_width
- self._hide_y = self._y - self._radius/2 + self._stroke_width
- self._show_x = self._x + self._radius/2 + self._stroke_width
+ self._hide_x = self._x + self._radius / 2 + self._stroke_width
+ self._hide_y = self._y - self._radius / 2 + self._stroke_width
+ self._show_x = self._x + self._radius / 2 + self._stroke_width
if sign_x == -1 and sign_y == 1:
- self._show_y = self._y + self._radius/2 - self._stroke_width
+ self._show_y = self._y + self._radius / 2 - self._stroke_width
if self._radius > 0:
- r2 = self._radius/2.0
+ r2 = self._radius / 2.0
if start:
- if sign_x*sign_y == 1:
- svg_str +=self._rline_to(sign_x*r2, 0)
+ if sign_x * sign_y == 1:
+ svg_str += self._rline_to(sign_x * r2, 0)
else:
- svg_str +=self._rline_to(0, sign_y*r2)
- x = self._x + sign_x*r2
- y = self._y + sign_y*r2
+ svg_str += self._rline_to(0, sign_y * r2)
+ x = self._x + sign_x * r2
+ y = self._y + sign_y * r2
svg_str += self.arc_to(x, y, r2, a, l, s)
if end:
- if sign_x*sign_y == 1:
- svg_str +=self._rline_to(0, sign_y*r2)
+ if sign_x * sign_y == 1:
+ svg_str += self._rline_to(0, sign_y * r2)
else:
- svg_str +=self._rline_to(sign_x*r2, 0)
+ svg_str += self._rline_to(sign_x * r2, 0)
return svg_str
def new_path(self, x, y):
@@ -841,12 +862,13 @@ class SVG:
scale = 2.0
else:
scale = self._scale
- scale2 = scale/2
- svg += self._circle(self._dot_radius*scale2, self._hide_x*scale,
- self._hide_y*scale)
+ scale2 = scale / 2
+ svg += self._circle(self._dot_radius * scale2, self._hide_x * scale,
+ self._hide_y * scale)
self._fill, self._stroke = HIDE_WHITE, HIDE_WHITE
- svg += self._rect(10*scale2, 2*scale2, self._hide_x*scale-5*scale2,
- self._hide_y*scale-scale+scale2)
+ svg += self._rect(10 * scale2, 2 * scale2,
+ self._hide_x * scale - 5 * scale2,
+ self._hide_y * scale - scale + scale2)
self._fill, self._stroke = _saved_fill, _saved_stroke
return svg
@@ -858,29 +880,31 @@ class SVG:
scale = 2.0
else:
scale = self._scale
- scale2 = scale/2
- svg += self._circle(self._dot_radius*scale2, self._show_x*scale,
- self._show_y*scale)
+ scale2 = scale / 2
+ svg += self._circle(self._dot_radius * scale2, self._show_x * scale,
+ self._show_y * scale)
self._fill, self._stroke = SHOW_WHITE, SHOW_WHITE
- svg += self._rect(10*scale2, 2*scale2, self._show_x*scale-5*scale2,
- self._show_y*scale-scale+scale2)
- svg += self._rect(2*scale2, 10*scale2, self._show_x*scale-scale+scale2,
- self._show_y*scale-5*scale2)
+ svg += self._rect(10 * scale2,
+ 2 * scale2, self._show_x * scale - 5 * scale2,
+ self._show_y * scale - scale + scale2)
+ svg += self._rect(2 * scale2, 10 * scale2,
+ self._show_x * scale - scale + scale2,
+ self._show_y * scale - 5 * scale2)
self._fill, self._stroke = _saved_fill, _saved_stroke
return svg
def _do_slot(self):
if self._slot is True:
- self.docks.append((int(self._x*self._scale),
- int(self._y*self._scale)))
+ self.docks.append((int(self._x * self._scale),
+ int(self._y * self._scale)))
return "%s%s%s" % (
self._rline_to(0, self._slot_y),
self._rline_to(self._slot_x, 0),
self._rline_to(0, -self._slot_y))
elif self._cap is True:
return "%s%s" % (
- self._rline_to(self._slot_x/2.0, -self._slot_y*2.0),
- self._rline_to(self._slot_x/2.0, self._slot_y*2.0))
+ self._rline_to(self._slot_x / 2.0, -self._slot_y * 2.0),
+ self._rline_to(self._slot_x / 2.0, self._slot_y * 2.0))
else:
return self._rline_to(self._slot_x, 0)
@@ -889,83 +913,85 @@ class SVG:
return self._rline_to(-self._slot_x, 0)
else:
return "%s%s" % (
- self._rline_to(-self._slot_x/2.0, self._slot_y*2.0),
- self._rline_to(-self._slot_x/2.0, -self._slot_y*2.0))
+ self._rline_to(-self._slot_x / 2.0, self._slot_y * 2.0),
+ self._rline_to(-self._slot_x / 2.0, -self._slot_y * 2.0))
def _do_tab(self):
s = "%s%s%s%s%s" % (
self._rline_to(-self._stroke_width, 0),
self._rline_to(0, self._slot_y),
- self._rline_to(-self._slot_x+2*self._stroke_width, 0),
+ self._rline_to(-self._slot_x + 2 * self._stroke_width, 0),
self._rline_to(0, -self._slot_y),
self._rline_to(-self._stroke_width, 0))
- self.docks.append((int(self._x*self._scale),
- int((self._y+self._stroke_width)*self._scale)))
+ self.docks.append((int(self._x * self._scale),
+ int((self._y + self._stroke_width) * self._scale)))
return s
def _do_innie(self):
- self.docks.append((int((self._x+self._stroke_width)*self._scale),
- int((self._y+self._innie_y2)*self._scale)))
+ self.docks.append((int((self._x + self._stroke_width) * self._scale),
+ int((self._y + self._innie_y2) * self._scale)))
if self.margins[2] == 0:
- self.margins[1] = int((self._y-self._innie_y1)*self._scale)
- self.margins[2] = int((self._x-self._innie_x1-self._innie_x2-\
- self._stroke_width*2)*self._scale)
+ self.margins[1] = int((self._y - self._innie_y1) * self._scale)
+ self.margins[2] = int((self._x - self._innie_x1 - \
+ self._innie_x2 - self._stroke_width * 2) * self._scale)
self.margins[3] =\
- int((self._y+self._innie_y2+self._innie_y1)*self._scale)
+ int((self._y + self._innie_y2 + self._innie_y1) * self._scale)
return "%s%s%s%s%s%s%s" % (
self._rline_to(-self._innie_x1, 0),
self._rline_to(0, -self._innie_y1),
self._rline_to(-self._innie_x2, 0),
- self._rline_to(0, self._innie_y2+2*self._innie_y1),
+ self._rline_to(0, self._innie_y2 + 2 * self._innie_y1),
self._rline_to(self._innie_x2, 0),
- self._rline_to(0, -self._innie_y1),
+ self._rline_to(0, -self._innie_y1),
self._rline_to(self._innie_x1, 0))
def _do_reverse_innie(self):
- self.docks.append((int((self._x+self._stroke_width)*self._scale),
- int((self._y)*self._scale)))
+ self.docks.append((int((self._x + self._stroke_width) * self._scale),
+ int((self._y) * self._scale)))
return "%s%s%s%s%s%s%s" % (
self._rline_to(-self._innie_x1, 0),
self._rline_to(0, self._innie_y1),
self._rline_to(-self._innie_x2, 0),
- self._rline_to(0, -self._innie_y2-2*self._innie_y1),
+ self._rline_to(0, -self._innie_y2 - 2 * self._innie_y1),
self._rline_to(self._innie_x2, 0),
- self._rline_to(0, self._innie_y1),
+ self._rline_to(0, self._innie_y1),
self._rline_to(self._innie_x1, 0))
def _do_outie(self):
if self._outie is not True:
return self._rline_to(0, -self._innie_y2)
- self.docks.append((int(self._x*self._scale), int(self._y*self._scale)))
+ self.docks.append((int(self._x * self._scale),
+ int(self._y * self._scale)))
return "%s%s%s%s%s%s%s%s%s" % (
self._rline_to(0, -self._stroke_width),
- self._rline_to(-self._innie_x1-2*self._stroke_width, 0),
+ self._rline_to(-self._innie_x1 - 2 * self._stroke_width, 0),
self._rline_to(0, self._innie_y1),
- self._rline_to(-self._innie_x2+2*self._stroke_width, 0),
+ self._rline_to(-self._innie_x2 + 2 * self._stroke_width, 0),
self._rline_to(0,
- -self._innie_y2-2*self._innie_y1+2*self._stroke_width),
- self._rline_to(self._innie_x2-2*self._stroke_width, 0),
+ -self._innie_y2 - 2 * self._innie_y1 + 2 * self._stroke_width),
+ self._rline_to(self._innie_x2 - 2 * self._stroke_width, 0),
self._rline_to(0, self._innie_y1),
- self._rline_to(self._innie_x1+2*self._stroke_width, 0),
+ self._rline_to(self._innie_x1 + 2 * self._stroke_width, 0),
self._rline_to(0, -self._stroke_width))
def _do_porch(self, flag=True):
if flag:
return "%s%s%s" % (
- self._rline_to(0, self._porch_y+self._innie_y1),
- self._rline_to(self._porch_x-self._radius, 0),
+ self._rline_to(0, self._porch_y + self._innie_y1),
+ self._rline_to(self._porch_x - self._radius, 0),
self._corner(1, 1))
else:
return "%s%s%s" % (
- self._rline_to(0,
- self._porch_y-self._innie_y1+self._stroke_width),
- self._rline_to(self._porch_x-self._radius, 0),
+ self._rline_to(0, self._porch_y - self._innie_y1 + \
+ self._stroke_width),
+ self._rline_to(self._porch_x - self._radius, 0),
self._corner(1, 1))
def _start_boolean(self, xoffset, yoffset):
svg = self.new_path(xoffset, yoffset)
self._radius -= self._stroke_width
- self.docks.append((int(self._x*self._scale), int(self._y*self._scale)))
+ self.docks.append((int(self._x * self._scale),
+ int(self._y * self._scale)))
svg += self._rarc_to(1, -1)
self._radius += self._stroke_width
svg += self._rline_to(self._stroke_width, 0)
@@ -974,15 +1000,15 @@ class SVG:
def _do_boolean(self):
self.docks.append(
- (int((self._x-self._radius+self._stroke_width)*self._scale),
- int((self._y+self._radius)*self._scale)))
+ (int((self._x - self._radius + self._stroke_width) * self._scale),
+ int((self._y + self._radius) * self._scale)))
self.margins[2] =\
- int((self._x-self._radius-self._stroke_width)*self._scale)
+ int((self._x - self._radius - self._stroke_width) * self._scale)
svg = self._rarc_to(-1, 1, 90, 0, 0) + self._rarc_to(1, 1, 90, 0, 0)
return svg
def _end_boolean(self):
- svg = self._rline_to(-self._radius*1.5,0)
+ svg = self._rline_to(-self._radius * 1.5, 0)
svg += self._rline_to(0, -self._stroke_width)
svg += self._rline_to(-self._stroke_width, 0)
self._radius -= self._stroke_width
@@ -999,40 +1025,40 @@ class SVG:
def calc_w_h(self, add_stroke_width=True):
if add_stroke_width:
- self._width = (self._max_x-self._min_x+self._stroke_width)*\
+ self._width = (self._max_x - self._min_x + self._stroke_width) * \
self._scale
else:
- self._width = (self._max_x-self._min_x)*self._scale
+ self._width = (self._max_x - self._min_x) * self._scale
if self.margins[2] == 0:
- self.margins[2] = int((self._stroke_width+0.5)*self._scale)
+ self.margins[2] = int((self._stroke_width + 0.5) * self._scale)
else:
self.margins[2] = int(self._width - self.margins[2])
if add_stroke_width:
- self._height = (self._max_y-self._min_y+self._stroke_width)*\
+ self._height = (self._max_y - self._min_y + self._stroke_width) * \
self._scale
else:
- self._height = (self._max_y-self._min_y)*self._scale
+ self._height = (self._max_y - self._min_y) * self._scale
if self.margins[3] == 0:
if self._tab:
- self.margins[3] =\
- int((self._slot_y+self._stroke_width+0.5)*self._scale)
+ self.margins[3] = int((self._slot_y + self._stroke_width + \
+ 0.5) * self._scale)
else:
- self.margins[3] =\
- int((self._slot_y*2+self._stroke_width+0.5)*self._scale)
+ self.margins[3] = int((self._slot_y * 2 + \
+ self._stroke_width + 0.5) * self._scale)
else:
self.margins[3] = int(self._height - self.margins[3])
def _calculate_x_y(self):
- x = self._stroke_width/2.0
- y = self._stroke_width/2.0+self._radius
- self.margins[0] = int(x+self._stroke_width+0.5)
- self.margins[1] = int(self._stroke_width+0.5)
+ x = self._stroke_width / 2.0
+ y = self._stroke_width / 2.0 + self._radius
+ self.margins[0] = int(x + self._stroke_width + 0.5)
+ self.margins[1] = int(self._stroke_width + 0.5)
if self._outie is True:
- x += self._innie_x1+self._innie_x2
- self.margins[0] += self._innie_x1+self._innie_x2
+ x += self._innie_x1 + self._innie_x2
+ self.margins[0] += self._innie_x1 + self._innie_x2
if self._cap is True:
- y += self._slot_y*2.0
- self.margins[1] += self._slot_y*2.0
+ y += self._slot_y * 2.0
+ self.margins[1] += self._slot_y * 2.0
elif self._slot is True:
self.margins[1] += self._slot_y
self.margins[0] *= self._scale
@@ -1043,17 +1069,19 @@ class SVG:
# Command-line tools for testing
#
+
def open_file(datapath, filename):
return file(os.path.join(datapath, filename), "w")
+
def close_file(f):
f.close()
-def generator(datapath):
+def generator(datapath):
svg0 = SVG()
f = open_file(datapath, "basic.svg")
- svg0.set_innie([True,True])
+ svg0.set_innie([True, True])
svg0.set_scale(2)
svg0.set_tab(True)
svg0.set_slot(True)
@@ -1062,37 +1090,34 @@ def generator(datapath):
f.write(svg_str)
close_file(f)
+
def main():
return 0
+
if __name__ == "__main__":
generator(os.path.abspath('.'))
main()
-#
-# Load pixbuf from SVG string
-#
def svg_str_to_pixbuf(svg_string):
+ """ Load pixbuf from SVG string """
pl = gtk.gdk.PixbufLoader('svg')
pl.write(svg_string)
pl.close()
pixbuf = pl.get_pixbuf()
return pixbuf
-#
-# Load pixmap from SVG string
-#
+
def svg_str_to_pixmap(svg_string):
+ """ Load pixmap from SVG string """
(pixmap, mask) = svg_str_to_pixbuf(svg_string).render_pixmap_and_mask()
return pixmap
-#
-# Read SVG string from a file
-#
+
def svg_from_file(pathname):
+ """ Read SVG string from a file """
f = file(pathname, 'r')
svg = f.read()
f.close()
return(svg)
-