Skip to content

Instantly share code, notes, and snippets.

@ndrhzn
Forked from zollinger/getcolor.py
Last active December 10, 2017 22:16
Show Gist options
  • Save ndrhzn/fc9eca69defaae119ecd to your computer and use it in GitHub Desktop.
Save ndrhzn/fc9eca69defaae119ecd to your computer and use it in GitHub Desktop.
Simple way to get dominant colors from an image in Python
import Image, ImageDraw
def get_colors(infile, outfile, numcolors=10, swatchsize=20, resize=150):
image = Image.open(infile)
image = image.resize((resize, resize))
result = image.convert('P', palette=Image.ADAPTIVE, colors=numcolors)
result.putalpha(0)
colors = result.getcolors(resize*resize)
# Save colors to file
pal = Image.new('RGB', (swatchsize*numcolors, swatchsize))
draw = ImageDraw.Draw(pal)
posx = 0
for count, col in colors:
draw.rectangle([posx, 0, posx+swatchsize, swatchsize], fill=col)
posx = posx + swatchsize
del draw
pal.save(outfile, "PNG")
if __name__ == '__main__':
get_colors('infile.jpg', 'outfile.png')
@zakittur
Copy link

Can this code be modified to give dominant colors of image based on percentage of color ?
Refer to the link below for example.

001

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment