-
Notifications
You must be signed in to change notification settings - Fork 1
/
colors-counter.py
29 lines (27 loc) · 1.38 KB
/
colors-counter.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
import sys
from PIL import Image, ImageDraw
if len (sys.argv) > 1:
im1 = Image.open(sys.argv[-1])
im = im1.convert('RGB').convert('P', palette=Image.ADAPTIVE, colors=256)
FileName = "count.txt"
PictPal = im.getpalette()
ColorsNum = im.getcolors()
with open(FileName, "w") as file:
file.write('Number of colors in image = ' + str(len(ColorsNum))+"\n\n"+"Pixel count by color:\n\n" )
n=0
for i in range (len(ColorsNum)):
text = ColorsNum[i]
color = (PictPal[n+0], PictPal[n+1], PictPal[n+2])
with open(FileName, "a") as file:
file.write(str(text[0])+" ")
file.write(str(color)+"\n")
img = Image.new('RGB', (130, 50), color)
imgDrawer = ImageDraw.Draw(img)
imgDrawer.text((20, 20), 'color '+str(i)+' - '+str(text[0]), fill=(120,120,120))
img.save("color_0"+str(i)+".png")
n+=3
with open(FileName, "a") as file:
file.write("\n---------------------------------------------\n")
file.write("image colors counter by nodeus ©2018-2020")
else:
print ("Аргументы отсутствуют. Вызов должен быть в формате: color-conter.exe image.png")