#! /usr/bin/env python
# Sketch - A Python-based interactive drawing program
# Copyright (C) 1998, 1999, 2001, 2002, 2003 by Bernhard Herzog
#
# This library is free software; you can redistribute it and/or
# modify it under the terms of the GNU Library General Public
# License as published by the Free Software Foundation; either
# version 2 of the License, or (at your option) any later version.
#
# This library is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
# Library General Public License for more details.
#
# You should have received a copy of the GNU Library General Public
# License along with this library; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
# Convert a Sketch-file into a PPM file
"""usage: sk2ppm [Options] infile [outfile]
Convert the Skencil/Sketch SK-file infile into a PPM file. Output is
written to outfile or to stdout.
sk2ppm accepts these options:
-h --help Print this help message and exit
-b --bbox Use the document's bounding box to determine the
size of the raster image
-r --resolution=N Resolution of the raster image in pixels per inch
Default: 72
-s --gradient-steps=N Number of interpolated colors used in a gradient
-A --alpha-bits=N Alpha bits for anti-aliasing (1, 2, or 4)
"""
import sys, os
for dir in ('Lib', 'Filter', 'Pax'):
dir = os.path.join(sys.path[0], dir)
if os.path.isdir(dir):
sys.path.insert(1, dir)
from Sketch import load
from Script.export_raster import export_raster
def print_usage():
print __doc__
class Context:
pass
def main():
import Sketch, Sketch.config
Sketch.Issue(None, Sketch.const.INITIALIZE)
#plugins.load_plugin_configuration(config.plugin_path)
use_bbox = 0
resolution = 72.0
steps = alpha = None
import getopt
opts, args = getopt.getopt(sys.argv[1:], 'bhr:s:A:',
['help', 'bbox', 'resolution=',
'gradient-steps=', 'alpha-bits='])
for optchar, value in opts:
if optchar == '-h' or optchar == '--help':
print_usage()
return -1
elif optchar == '-b' or optchar == '--bbox':
use_bbox = 1
elif optchar == '-r' or optchar == '--resolution':
resolution = float(value)
elif optchar == '-s' or optchar == '--gradient-steps':
steps = float(value)
elif optchar == '-A' or optchar == '--alpha-bits':
alpha = int(value)
if alpha not in (1, 2, 4):
sys.stderr.write("sk2ppm: alpha-bits value must be one of"
" 1, 2 or 4\n")
return -1
if len(args) not in (1, 2):
print_usage()
return -1
if steps is not None:
Sketch.config.preferences.gradient_steps_print = steps
filename = args[0]
if len(args) > 1:
ppmfile = args[1]
else:
ppmfile = sys.stdout
doc = load.load_drawing(filename)
context = Context()
context.document = doc
export_raster(context, ppmfile, resolution, use_bbox, format = "ppm",
antialias = alpha)
if __name__ == '__main__':
result = main()
if result:
sys.exit(result)
|