File: pngcanvas.py

package info (click to toggle)
python-pychart 1.39-7
  • links: PTS, VCS
  • area: main
  • in suites: jessie, jessie-kfreebsd, squeeze, wheezy
  • size: 1,844 kB
  • ctags: 1,837
  • sloc: python: 6,899; makefile: 82; sh: 30
file content (55 lines) | stat: -rw-r--r-- 1,826 bytes parent folder | download | duplicates (6)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
#
# Copyright (C) 2000-2005 by Yasushi Saito (yasushi.saito@gmail.com)
# 
# Jockey is free software; you can redistribute it and/or modify it
# under the terms of the GNU General Public License as published by the
# Free Software Foundation; either version 2, or (at your option) any
# later version.
#
# Jockey 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 General Public License
# for more details.
#
import sys
import os
import gs_frontend
import theme

class T(gs_frontend.T):
    def close(self):
        gs_frontend.T.close(self)
	if self.__output_lines == []:
	    return

        if theme.use_color:
            gs_args = "-sDEVICE=png256 -dTextAlphaBits=4 -q -dNOPAUSE" #PDS
        else:
            gs_args = "-sDEVICE=pnggray -dTextAlphaBits=4 -q -dNOPAUSE" #PDS

            
        temp_fname = None # the temporary file desc.
        out_fd = None  # the final destination. 
        
        if self.__out_fname and isinstance(self.__out_fname, str):
            gs_args += " -sOutputFile=%s" % self.__out_fname
        else:
            if not self.__out_fname:
                out_fd = sys.stdout
            else:
                if not hasattr(self.__out_fname, "write"):
                    raise Exception, "Expecting either a filename or a file-like object, but got %s" % self.__out_fname
                out_fd = self.__out_fname
            import tempfile
            temp_fname = tempfile.mktemp()
            gs_args += " -sOutputFile=%s" % temp_fname
        self.start_gs(gs_args)
        self.close_gs()

        if temp_fname:
            temp_fd = file(temp_fname, 'rb')
            out_fd.write(temp_fd.read())
            temp_fd.close()