[Author Prev][Author Next][Thread Prev][Thread Next][Author Index][Thread Index]

Re: [pygame] convert() bug?



I load png and jpg on Linux mac and win with no problems so far. I
assume every distro of pygame has image_ext in it, and that it
provides a consistent level of format support across all platforms in
the load function. I would say if you experience something that isn't
consistent in that way, it should be reported as a bug.

On Jan 1, 2008 10:02 AM, hwg <hwg434@xxxxxxxxx> wrote:
>
> Thanks for the explanation.  I have another, related question...  What image
> formats are supported cross-platform (Windows, Linux, Mac) by default in
> Pygame, without using any other modules or external graphics aupport?
>
> Thanks,
> hwg
>
>
> ----- Original Message ----
> From: Brian Fisher <brian@xxxxxxxxxxxxxxxxxxx>
> To: pygame-users@xxxxxxxx
>
> Sent: Friday, December 28, 2007 12:10:01 PM
> Subject: Re: [pygame] convert() bug?
>
> thanks for sending the example and file - it looks like Ethan was
> correct about what's going on. Most places where the image is
> transparent, it is transparent-white. The bottom line is
> transparent-black. You didn't notice the transparency being removed
> anywhere but the black line because in your example the background is
> white. This modified simple example should make all this clearer
> (magic pink background, multiple versions of beach ball image drawn):
>
> import pygame, sys
> pygame.init()
> screen = pygame.display.set_mode([640,480])
> screen.fill([255, 0, 255])
> my_ball_original = pygame.image.load("beach_ball.png")
> my_ball_convert = my_ball_original.convert()
> my_ball_convert_alpha = my_ball_original.convert_alpha()
> screen.blit(my_ball_original,[50, 50, 90, 90])
> screen.blit(my_ball_convert,[150, 50, 90, 90])
> screen.blit(my_ball_convert_alpha,[250, 50, 90, 90])
>
> my_ball_remove_column_alpha = my_ball_original.convert_alpha()
> for y in xrange(my_ball_remove_column_alpha.get_height()):
>     pos = (0, y)
>     pixel = my_ball_remove_column_alpha.get_at(pos)
>     pixel = (pixel[0], pixel[1], pixel[2], 255)
>     my_ball_remove_column_alpha.set_at(pos, pixel)
> screen.blit(my_ball_remove_column_alpha,[350, 50, 90, 90])
>
> pygame.display.flip()
> while True:
>     for event in pygame.event.get():
>         if event.type == pygame.QUIT: sys.exit()
>
>
> On Dec 28, 2007 7:10 AM, hwg <hwg434@xxxxxxxxx> wrote:
> >
> > This displays a beach ball image.
> > Oddly, the black is only a line at the bottom. If it was related to
> > transparency, I would expect there to be black all around the ball
> > If I remove the line that uses convert(), the black line goes away.   I
> tried
> > convert_alpha, and that works as well, but the black line still puzzles
> me,
> >
> > hwg
> >
> >
> > ----- Original Message ----
> > From: Ethan Glasser-Camp <glasse@xxxxxxxxxx>
> > To: pygame-users@xxxxxxxx
> > Sent: Monday, December 17, 2007 4:50:02 PM
> > Subject: Re: [pygame] convert() bug?
> >
> > Can you send the image? It sounds like there's a one-pixel thick line
> > along the bottom of the image which is fully transparent. Since
> > convert() removes transparency, the line becomes visible. If that is
> > the case, you could consider using convert_alpha() to preserve alpha
> > (and thus transparency on that one-pixel-thick line).
> >
> > Ethan
> >
>
>
>
>  ________________________________
> Never miss a thing. Make Yahoo your homepage.