thonypythony's picture
my helping scripts
19d4ffb verified
from PIL import Image
def diffimage(name1, name2, colour="RGB"):
img1 = Image.open(name1).convert(colour)
img2 = Image.open(name2).convert(colour)
new_image = Image.new(colour, (img1.size[0], img1.size[1]), color=(255,255,255))
color_image = Image.new(colour, (img1.size[0], img1.size[1]), color=(255,255,255))
for i in range(img1.size[0]):
for j in range(img1.size[1]):
if (img1.getpixel((i,j)) != img2.getpixel((i,j))):
i1 = img1.getpixel((i,j))
i2 = img2.getpixel((i,j))
new_image.putpixel((i, j), tuple([i1[0]-i2[0],i1[1]-i2[1],i1[2]-i2[2]]))
if 0 <= i1[0]-i2[0] < 0:
color_image.putpixel((i, j), (0,255,255))
if 1 <= i1[0]-i2[0] < 2:
color_image.putpixel((i, j), (255,50,0))
if 2 <= i1[0]-i2[0] < 3:
color_image.putpixel((i, j), (255,100,0))
if i1[0]-i2[0] > 3:
color_image.putpixel((i, j), (255,0,0))
if 0 <= i1[1]-i2[1] < 1:
color_image.putpixel((i, j), (0,255,0))
if 1 <= i1[1]-i2[1] < 2:
color_image.putpixel((i, j), (0,255,50))
if 2 <= i1[1]-i2[1] < 3:
color_image.putpixel((i, j), (0,255,100))
if i1[1]-i2[1] > 3:
color_image.putpixel((i, j), (255,51,255))
if 0 <= i1[2]-i2[2] < 1:
color_image.putpixel((i, j), (0,0,255))
if 1 <= i1[2]-i2[2] < 2:
color_image.putpixel((i, j), (50,0,255)) # синий
if 2 <= i1[2]-i2[2] < 3:
color_image.putpixel((i, j), (100,0,255)) # фиолетовый
if i1[2]-i2[2] > 3:
color_image.putpixel((i, j), (51,255,51))
# color_image.show()
# new_image.show()
new_image.save(f"diff_for_{name1[7:-4]}_and_{name2[12:-4]}.png")
color_image.save(f"colordiff_for_{name1[7:-4]}_and_{name2[12:-4]}.png")
name1 = "60.jpg"
name2 = "60wm.jpg"
diffimage(name1, name2)