File size: 2,158 Bytes
19d4ffb
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
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)