[Image-SIG] remove an image background using PIL

Fredrik Lundh fredrik at pythonware.com
Sun May 31 19:27:53 CEST 2009


On Thu, May 28, 2009 at 10:53 PM, Peter Yen <colorpyen at gmail.com> wrote:
> Hi Fredrik,
>
> Thanks for your quick response. The background is unknown at the time of
> processing. Actually I don't need a very accurate methodology to remove all
> background, removing partially is good enough.
>
> imagick has method like floodfill, curious how to do that with PIL.

There's a floodfill function in ImageDraw that might be good enough
for you.  I'm not sure it's documented, but here's the PythonDoc
markup:

##
# (experimental) Fills a bounded region with a given color.
#
# @def floodfill(image, xy, value, border=None)
# @param image Target image.
# @param xy Seed position (a 2-item coordinate tuple).
# @param value Fill color.
# @param border Optional border value.  If given, the region consists of
#     pixels with a color different from the border color.  If not given,
#     the region consists of pixels having the same color as the seed
#     pixel.

It's pure Python, so if you want more complex rules for determining
what's background and not, you can always grab a copy and tweak the
code.

</F>


More information about the Image-SIG mailing list