[lnkForumImage]
TotalShareware - Download Free Software

Confronta i prezzi di migliaia di prodotti.
Asp Forum
 Home | Login | Register | Search 


 

Forums >

comp.lang.python

Image to browser

danielatdaveschool

1/16/2008 5:16:00 AM

Hi, noob here

Im using mod_python and apache2 using psp for output of page, i open a
file and resize it with the following code

<%
import Image, util

fields = util.FieldStorage(req)
filename = fields.getlist('src')[0]

path = '/var/www/content/' + filename
size = 128, 128

im = Image.open(path)
print im.resize(size, Image.ANTIALIAS)
%>

so for one, I dont think print does much with psp as far as i can
tell, i cant even do a print 'hello world', it has to be a
req.write('hello world'), but i cant req.write the im.resize. The
manual for im.resize states that its return can go ahead and be
streamed via http but I get a blank page when im expecting to see
image characters dumped to my screen. Python doesn't throw up any
errors. Im not sure where else to look or what to do.

Thanks for any help,
Daniel
3 Answers

danielatdaveschool

1/16/2008 5:19:00 AM

0

On Jan 16, 12:16 am, danielatdavesch...@gmail.com wrote:
> Hi, noob here
>
> Im using mod_python and apache2 using psp for output of page, i open a
> file and resize it with the following code
>
> <%
> import Image, util
>
> fields = util.FieldStorage(req)
> filename = fields.getlist('src')[0]
>
> path = '/var/www/content/' + filename
> size = 128, 128
>
> im = Image.open(path)
> print im.resize(size, Image.ANTIALIAS)
> %>
>
> so for one, I dont think print does much with psp as far as i can
> tell, i cant even do a print 'hello world', it has to be a
> req.write('hello world'), but i cant req.write the im.resize. The
> manual for im.resize states that its return can go ahead and be
> streamed via http but I get a blank page when im expecting to see
> image characters dumped to my screen. Python doesn't throw up any
> errors. Im not sure where else to look or what to do.
>
> Thanks for any help,
> Daniel

its worth noting that ive tried using
print "Content-Type: image/jpeg\n"
before the print im.resize and still no luck

Justin Ezequiel

1/16/2008 5:39:00 AM

0

On Jan 16, 1:19 pm, danielatdavesch...@gmail.com wrote:
> On Jan 16, 12:16 am, danielatdavesch...@gmail.com wrote:
>
> > Im using mod_python and apache2 using psp for output of page, i open a
> > file and resize it with the following code
>
> > <%
> > import Image, util
>
> > fields = util.FieldStorage(req)
> > filename = fields.getlist('src')[0]
>
> > path = '/var/www/content/' + filename
> > size = 128, 128
>
> > im = Image.open(path)
> > print im.resize(size, Image.ANTIALIAS)
> > %>
>
> > so for one, I dont think print does much with psp as far as i can
> > tell, i cant even do a print 'hello world', it has to be a
> > req.write('hello world'), but i cant req.write the im.resize. The
> > manual for im.resize states that its return can go ahead and be
> > streamed via http but I get a blank page when im expecting to see
> > image characters dumped to my screen. Python doesn't throw up any
> > errors. Im not sure where else to look or what to do.
>
> > Thanks for any help,
> > Daniel
>
> its worth noting that ive tried using
> print "Content-Type: image/jpeg\n"
> before the print im.resize and still no luck

If you're using the Image module from PIL then im.resize(...) returns
an Image instance.
I have not used mod_python and psp, but try the following:

>>> import Image
>>> i = Image.open('server.JPG')
>>> r = i.resize((32,32))
>>> from StringIO import StringIO
>>> b = StringIO()
>>> r.save(b, 'JPEG')
>>> b.seek(0)
>>> req.write("Content-Type: image/jpeg\r\n\r\n")
>>> req.write(b.read())


There's a r.tostring(...) method but I don't see how to make that
return a JPEG stream.

danielatdaveschool

1/16/2008 5:53:00 AM

0

On Jan 16, 12:38 am, Justin Ezequiel <justin.mailingli...@gmail.com>
wrote:
> On Jan 16, 1:19 pm, danielatdavesch...@gmail.com wrote:
>
>
>
> > On Jan 16, 12:16 am, danielatdavesch...@gmail.com wrote:
>
> > > Im using mod_python and apache2 using psp for output of page, i open a
> > > file and resize it with the following code
>
> > > <%
> > > import Image, util
>
> > > fields = util.FieldStorage(req)
> > > filename = fields.getlist('src')[0]
>
> > > path = '/var/www/content/' + filename
> > > size = 128, 128
>
> > > im = Image.open(path)
> > > print im.resize(size, Image.ANTIALIAS)
> > > %>
>
> > > so for one, I dont think print does much with psp as far as i can
> > > tell, i cant even do a print 'hello world', it has to be a
> > > req.write('hello world'), but i cant req.write the im.resize. The
> > > manual for im.resize states that its return can go ahead and be
> > > streamed via http but I get a blank page when im expecting to see
> > > image characters dumped to my screen. Python doesn't throw up any
> > > errors. Im not sure where else to look or what to do.
>
> > > Thanks for any help,
> > > Daniel
>
> > its worth noting that ive tried using
> > print "Content-Type: image/jpeg\n"
> > before the print im.resize and still no luck
>
> If you're using the Image module from PIL then im.resize(...) returns
> an Image instance.
> I have not used mod_python and psp, but try the following:
>
> >>> import Image
> >>> i = Image.open('server.JPG')
> >>> r = i.resize((32,32))
> >>> from StringIO import StringIO
> >>> b = StringIO()
> >>> r.save(b, 'JPEG')
> >>> b.seek(0)
> >>> req.write("Content-Type: image/jpeg\r\n\r\n")
> >>> req.write(b.read())
>
> There's a r.tostring(...) method but I don't see how to make that
> return a JPEG stream.

brilliant, at least to me anyway, it works as long as i remove the
req.write("content-type...

now i have a lot to look up, i tried something similar to this before
that i found on the web but no luck. i guess whats going on is it gets
saved to this pseudo file thats just a string existing in memory, and
then the pointer gets set to the begining of the string for the
upcoming read() ? i dunno, but something else to learn about. I must
admit i was hoping for something a little more elegant.

Thanks for your help!