Skip to content

Instantly share code, notes, and snippets.

@james4388
Forked from zollinger/getcolor.py
Created August 8, 2018 01:10
Show Gist options
  • Save james4388/19199434d3daee4d28000531576bb0bf to your computer and use it in GitHub Desktop.
Save james4388/19199434d3daee4d28000531576bb0bf 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')
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment