Yeah, that is the cause.

You'll have to look at those pixels and change them if you want to use color
keying.

You could manually edit them, or come up with an algorithm that changes the
color of those edge pixels.  I'd use an edge detection algo (eg,
pygame.transform.laplacian) and then replace those pixels that are whiteish
to black.  Since the sprite has a black outline already, maybe that will
work.  But I'm not sure it will look that great.

#untested...
def whitish(c):
    r,g,b,a = c
    return 255-r < 10 and 255-g < 10 and 255-b < 10
edges = pygame.transform.laplacian(s)
for y in edges.get_height():
    for x in edges.get_width():
        if whitish( edges.get_at((x,y)) ):
            s.set_at((x,y), (0,0,0))



Some manual editing will give best results, but obviously it will take
longer.


On Mon, Oct 10, 2011 at 8:24 PM, Sean Wolfe <ether....@gmail.com> wrote:

> Hey all,
>
> I am wondering if there's a fix for this. I'm using art is originally
> on a white background, so I used set_colorkey([255,255,255]) to remove
> the background, but I'm getting an imprecise outline. I'm thinking
> it's because of antialiasing?
>
> See attached picture ragged_outline.png .
>
> Thanks!
>
>
>
> --
> A musician must make music, an artist must paint, a poet must write,
> if he is to be ultimately at peace with himself.
> - Abraham Maslow
>

Reply via email to