[pygame] image conversion in memory

2014-08-08 Thread diliup gabadamudalige
Hi all!

Is there a way to convert a pygame surface to a png or jpeg IN MEMORY
instead of saving to disk and loading again?
something like
get_screen = SCREEN.subsurface(0, 0, SCREENW, SCREENH) # grab the screen

my_image = get_screen.convert(jpeg) # now convert the image to jpeg

and now my_image is a jpeg image of get_screen

I searched the net but couldn't find any other way other than save to disk
as jpeg and reload.

Any positive OR negative help is very much appreciated.

Thanks in advance
Diliup Gabadamudalige

http://www.diliupg.com
http://soft.diliupg.com/

**
This e-mail is confidential. It may also be legally privileged. If you are
not the intended recipient or have received it in error, please delete it
and all copies from your system and notify the sender immediately by return
e-mail. Any unauthorized reading, reproducing, printing or further
dissemination of this e-mail or its contents is strictly prohibited and may
be unlawful. Internet communications cannot be guaranteed to be timely,
secure, error or virus-free. The sender does not accept liability for any
errors or omissions.
**


Re: [pygame] image conversion in memory

2014-08-08 Thread Christopher Night
It depends on what precisely you mean when you say that a python variable
is a jpeg image. Do you mean that it's a string containing the contents of
a jpeg image file? So if you wrote it to disk you'd get a jpeg image file?

If that's what you mean, you can do it with PIL and StringIO. (There might
be an easier way.)

import pygame
from PIL import Image
from cStringIO import StringIO

# create an example pygame image
img = pygame.Surface((100, 100))
pygame.draw.circle(img, (255, 0, 0), (50, 50), 40)
# convert to PIL format
imgstr = pygame.image.tostring(img, RGB, False)
pimg = Image.fromstring(RGB, img.get_size(), imgstr)
# save to string
s = StringIO()
pimg.save(s, JPEG)
r = s.getvalue()
s.close()

# r is a string with the contents of a jpeg file. to confirm:
open(img.jpg, wb).write(r)

However, this doesn't seem like a very useful thing to have (and if I
needed it so badly I would just write it to disk and read it back) so I may
be misunderstanding you.


On Fri, Aug 8, 2014 at 5:16 AM, diliup gabadamudalige dili...@gmail.com
wrote:

 Hi all!

 Is there a way to convert a pygame surface to a png or jpeg IN MEMORY
 instead of saving to disk and loading again?
 something like
 get_screen = SCREEN.subsurface(0, 0, SCREENW, SCREENH) # grab the screen

 my_image = get_screen.convert(jpeg) # now convert the image to jpeg

 and now my_image is a jpeg image of get_screen

 I searched the net but couldn't find any other way other than save to disk
 as jpeg and reload.

 Any positive OR negative help is very much appreciated.

 Thanks in advance
 Diliup Gabadamudalige

 http://www.diliupg.com
 http://soft.diliupg.com/


 **
 This e-mail is confidential. It may also be legally privileged. If you are
 not the intended recipient or have received it in error, please delete it
 and all copies from your system and notify the sender immediately by return
 e-mail. Any unauthorized reading, reproducing, printing or further
 dissemination of this e-mail or its contents is strictly prohibited and may
 be unlawful. Internet communications cannot be guaranteed to be timely,
 secure, error or virus-free. The sender does not accept liability for any
 errors or omissions.

 **