Size: 312
Comment:
|
← Revision 6 as of 2015-05-23 05:37:03 ⇥
Size: 2254
Comment:
|
Deletions are marked like this. | Additions are marked like this. |
Line 1: | Line 1: |
Not much to say about me at all.<<BR>><<BR>> Great to be a member of this site.<<BR>><<BR>> I really wish I'm useful at all<<BR>><<BR>> <<BR>><<BR>> Feel free to visit my blog - summoners war hack ([[http://www.wattpad.com/113192113-summoners-war-hack-2015-summoners-war-online-hack|Recommended Web page]]) |
= The Problem = Using [[http://www.reportlab.org|repotlab]] and following the instructions from [[py2exeAndPIL]]. Still, when {{{ #!python from reportlab.lib.utils import ImageReader im=ImageReader(someCstringIOStream()) }}} raises "cannot identify image file" = Explanation = Reportlab does some different things when importing Image from PIL excerpt from reportlab.lib.utils {{{ #!python class ImageReader: "Wraps up either PIL or Java to get data from bitmaps" def __init__(self, fileName): if not haveImages: warnOnce('Imaging Library not available, unable to import bitmaps') return #start wih lots of null private fields, to be populated by #the relevant engine. self.fileName = fileName self._image = None self._width = None self._height = None self._transparent = None self._data = None #detect which library we are using and open the image if sys.platform[0:4] == 'java': from javax.imageio import ImageIO if type(fileName) is type(''): fp = open(fileName,'rb') else: fp = fileName self._image = ImageIO.read(fp) else: import PIL.Image self._image = PIL.Image.open(fileName) }}} = Solution = Make it dumb. We know: This is not Java, this is Windows. We have PIL, because we use py2exe and ARE responsible to put it into the package. So... {{{ #!python class MyImageReader(ImageReader): """ Kopie des Report-Lab Image Readers, kommt besser mit py2exeter PIL zurande""" def __init__(self, fileName): #start wih lots of null private fields, to be populated by #the relevant engine. self.fileName = fileName self._image = None self._width = None self._height = None self._transparent = None self._data = None #änderung: kein Detect oder so, DIES IST WINDOWS # PIL IST VORHANDEN self._image = Image.open(fileName) }}} Image has to be imported and "tuned" as described in [[py2exeAndPIL]] HAM2004-08-09 |
The Problem
Using repotlab and following the instructions from py2exeAndPIL.
Still, when
raises "cannot identify image file"
Explanation
Reportlab does some different things when importing Image from PIL
excerpt from reportlab.lib.utils
1 class ImageReader:
2 "Wraps up either PIL or Java to get data from bitmaps"
3 def __init__(self, fileName):
4 if not haveImages:
5 warnOnce('Imaging Library not available, unable to import bitmaps')
6 return
7 #start wih lots of null private fields, to be populated by
8 #the relevant engine.
9 self.fileName = fileName
10 self._image = None
11 self._width = None
12 self._height = None
13 self._transparent = None
14 self._data = None
15
16 #detect which library we are using and open the image
17 if sys.platform[0:4] == 'java':
18 from javax.imageio import ImageIO
19 if type(fileName) is type(''):
20 fp = open(fileName,'rb')
21 else:
22 fp = fileName
23 self._image = ImageIO.read(fp)
24 else:
25 import PIL.Image
26 self._image = PIL.Image.open(fileName)
Solution
Make it dumb. We know: This is not Java, this is Windows. We have PIL, because we use py2exe and ARE responsible to put it into the package. So...
1 class MyImageReader(ImageReader):
2 """ Kopie des Report-Lab Image Readers, kommt besser mit
3 py2exeter PIL zurande"""
4 def __init__(self, fileName):
5 #start wih lots of null private fields, to be populated by
6 #the relevant engine.
7 self.fileName = fileName
8 self._image = None
9 self._width = None
10 self._height = None
11 self._transparent = None
12 self._data = None
13
14 #änderung: kein Detect oder so, DIES IST WINDOWS
15 # PIL IST VORHANDEN
16
17 self._image = Image.open(fileName)
Image has to be imported and "tuned" as described in py2exeAndPIL
HAM2004-08-09