Re: load Image() from embedded python

Michael Hipp <[email protected]>
Newsgroups gmane.comp.python.reportlab.user
Message-ID <[email protected]>
I'm using Python 2.7.6 on windows. I tried both cStringIO and StringIO 
with no luck. But the combo of ImageReader and getBytesIO works great. 
Thank you.

Michael


On 2/9/2014 4:12 AM, Robin Becker wrote:
> Not sure if this is with python 2.7 or 3.3, but there are differences
> in the way StringIO works in the two dialects. In practice I think for
> any kind of image object we ought to be reading in binary so StringIO
> is off the table. Can you try passing an ImageReader instance to the
> canvas. That would look like
>
>
> from reportlab.lib.utils import ImageReader, getBytesIO
>
> .......
>
>
> canvas.drawImage(ImageReader(getBytesIO('embedded stuff')))
>
>
>
> ......
>
> ImageReader is acceptable to drawImage & a bytes io object is
> acceptable to ImageReader (I think).
>
> On 8 February 2014 17:54, Michael Hipp <[email protected]> wrote:
>> As noted in my previous reply I was able to make this work great with the
>> flowable Image().
>>
>> Now I'm doing something like this, and getting the exception below. Any
>> suggestions?
>>
>>      canvas.drawImage(StringIO('embedded stuff'), ...)
>>
>> I would be really helpful to be able to embed these things.
>>
>> I'm using reportlab 3.0a1 BTW.
>>
>> Thanks,
>> Michael
>>
>>    File
>> "c:\dev\virtenvs\oldworldblack\lib\site-packages\reportlab\pdfgen\canvas.py",
>> line 920, in drawImage
>>      imgObj = pdfdoc.PDFImageXObject(name, image, mask=mask)
>>    File
>> "c:\dev\virtenvs\oldworldblack\lib\site-packages\reportlab\pdfbase\pdfdoc.py",
>> line 2086, in __init__
>>      ext = os.path.splitext(source)[1].lower()
>>    File "c:\dev\virtenvs\oldworldblack\lib\ntpath.py", line 190, in splitext
>>      return genericpath._splitext(p, sep, altsep, extsep)
>>    File "c:\dev\virtenvs\oldworldblack\lib\genericpath.py", line 91, in
>> _splitext
>>      sepIndex = p.rfind(sep)
>> AttributeError: StringIO instance has no attribute 'rfind'
>>
>>
>>
>>
>> On 1/29/2014 1:47 AM, Andy Robinson wrote:
>>>
>>> I think that everywhere we accept a filename, we also accept a
>>> file-like object.  So you could store it as some kind of escaped
>>> binary string in your source code, then wrap it in a StringIO and pass
>>> that to the platypus Image.
>>>
>>> I'm not in a programming environment now but if this is not clear we
>>> can post a code snippet later in the day...
>>>
>>> - Andy
>>>
>>>
>>>
>>> On 29 January 2014 00:50, Michael Hipp <[email protected]> wrote:
>>>>
>>>> In the reportlab.platypus Image flowable, is it possible to load the
>>>> image
>>>> from an image embedded as binary in the python code? The only api for
>>>> Image
>>>> seems to depend on a filename.
>>>>
>>>> I'd prefer not to have to lug around things like logos and icons with my
>>>> program.
>>>>
>>>> Thanks,
>>>> Michael
>>>> _______________________________________________
>>>> reportlab-users mailing list
>>>> [email protected]
>>>> http://two.pairlist.net/mailman/listinfo/reportlab-users
>>>
>>>
>>>
>>
>> _______________________________________________
>> reportlab-users mailing list
>> [email protected]
>> http://two.pairlist.net/mailman/listinfo/reportlab-users
>
>
>
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.