[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [pygame] set_clip
Rene Dudfield wrote:
> im.set_clip((0, 0, 94, 103))
> im.blit(im2, (0,0))
>
> im.set_clip((0, 103, 94, 153))
> im.blit(im3, (0,103))
>
> im, im2, and im3 are the same size (95,154).
>
> Utimately what I need to do is darken part of an
> image(or lighten the other part). I was trying to
> blit the darkened part to the top, and the lighter
> part to the bottom.
you've nearly got it. but you'll want to blit each image to the same
location. change the last blit to this:
im.blit(im3, (0,0))
you can also achieve this effect by not using the clipping and passing the
third rectangle argument to blit (which controls which area of the source
image to use). i believe both ways of doing it will be the same speed. but
just in case you are curious, here is code that would do it.
def darklightblit(dest, litesrc, darksrc, pos, splitrows):
"""assume litesrc and darksrc are the same size, and
splitrows is between 0 and height"""
width, height = litesrc.get_size()
r1=dest.blit(litesrc, pos, (0, 0, width, height-splitrows))
r2=dest.blit(darksrc, pos, (0, splitrows, width, splitrows-height))
return r1.union(r2) #return dirty rect
____________________________________
pygame mailing list
pygame-users@seul.org
http://pygame.seul.org