~ubuntu-branches/ubuntu/saucy/python-imaging/saucy-proposed

« back to all changes in this revision

Viewing changes to PIL/PdfImagePlugin.py

  • Committer: Package Import Robot
  • Author(s): Matthias Klose
  • Date: 2013-01-31 20:49:20 UTC
  • mfrom: (27.1.1 raring-proposed)
  • Revision ID: package-import@ubuntu.com-20130131204920-b5zshy6vgfvdionl
Tags: 1.1.7+1.7.8-1ubuntu1
Rewrite build dependencies to allow cross builds.

Show diffs side-by-side

added added

removed removed

Lines of Context:
22
22
 
23
23
__version__ = "0.4"
24
24
 
25
 
import Image, ImageFile
26
 
import StringIO
 
25
from . import Image, ImageFile
 
26
from ._binary import i8
 
27
import io
27
28
 
28
29
 
29
30
#
60
61
 
61
62
    xref = [0]*(5+1) # placeholders
62
63
 
 
64
    class TextWriter:
 
65
        def __init__(self, fp):
 
66
            self.fp = fp
 
67
        def __getattr__(self, name):
 
68
            return getattr(self.fp, name)
 
69
        def write(self, value):
 
70
            self.fp.write(value.encode('latin-1'))
 
71
 
 
72
    fp = TextWriter(fp)
 
73
 
63
74
    fp.write("%PDF-1.2\n")
64
75
    fp.write("% created by PIL PDF driver " + __version__ + "\n")
65
76
 
90
101
        colorspace = "[ /Indexed /DeviceRGB 255 <"
91
102
        palette = im.im.getpalette("RGB")
92
103
        for i in range(256):
93
 
            r = ord(palette[i*3])
94
 
            g = ord(palette[i*3+1])
95
 
            b = ord(palette[i*3+2])
 
104
            r = i8(palette[i*3])
 
105
            g = i8(palette[i*3+1])
 
106
            b = i8(palette[i*3+2])
96
107
            colorspace = colorspace + "%02x%02x%02x " % (r, g, b)
97
 
        colorspace = colorspace + "> ]"
 
108
        colorspace = colorspace + b"> ]"
98
109
        procset = "/ImageI" # indexed color
99
110
    elif im.mode == "RGB":
100
111
        filter = "/DCTDecode"
127
138
    #
128
139
    # image
129
140
 
130
 
    op = StringIO.StringIO()
 
141
    op = io.BytesIO()
131
142
 
132
143
    if filter == "/ASCIIHexDecode":
133
144
        if bits == 1:
158
169
                ColorSpace = colorspace)
159
170
 
160
171
    fp.write("stream\n")
161
 
    fp.write(op.getvalue())
 
172
    fp.fp.write(op.getvalue())
162
173
    fp.write("\nendstream\n")
163
174
 
164
175
    _endobj(fp)
178
189
    #
179
190
    # page contents
180
191
 
181
 
    op = StringIO.StringIO()
 
192
    op = TextWriter(io.BytesIO())
182
193
 
183
194
    op.write("q %d 0 0 %d 0 0 cm /image Do Q\n" % (int(width * 72.0 / resolution), int(height * 72.0 / resolution)))
184
195
 
185
196
    xref[5] = fp.tell()
186
 
    _obj(fp, 5, Length = len(op.getvalue()))
 
197
    _obj(fp, 5, Length = len(op.fp.getvalue()))
187
198
 
188
199
    fp.write("stream\n")
189
 
    fp.write(op.getvalue())
 
200
    fp.fp.write(op.fp.getvalue())
190
201
    fp.write("\nendstream\n")
191
202
 
192
203
    _endobj(fp)