Initial release
This commit is contained in:
45
RO Plan chiffré de l'étoile de la mort.py
Normal file
45
RO Plan chiffré de l'étoile de la mort.py
Normal file
@@ -0,0 +1,45 @@
|
||||
from PIL import Image, ImageOps
|
||||
|
||||
image = Image.open("fragment_chiffre.png")
|
||||
|
||||
key = [0, ]
|
||||
|
||||
image = ImageOps.grayscale(image)
|
||||
width, height = image.size
|
||||
|
||||
img = list()
|
||||
|
||||
#convert image to list of lists
|
||||
for y in range(height):
|
||||
row = list()
|
||||
for x in range(width):
|
||||
row.append(image.getpixel((x,y)))
|
||||
img.append(row)
|
||||
|
||||
for i in range(0, height-1):
|
||||
min_delta = (width*255*4, width*2)
|
||||
for d in range(width):
|
||||
delta = 0
|
||||
for x in range(width):
|
||||
delta += abs(img[i][x] - img[i+1][(x+d)%width])
|
||||
if delta < min_delta[0]:
|
||||
min_delta = (delta, d)
|
||||
print(i, min_delta)
|
||||
d = min_delta[1]
|
||||
img[i+1] = img[i+1][d:] + img[i+1][:d]
|
||||
|
||||
# key = key + [758, 757, 755, 751, 743, 727, 695, 631, 503, 247, 494, 229, 458, 157, 314, 628, 497, 235, 470, 181, 362, 724, 689, 619, 479, 199, 398, 37, 74, 148, 296, 592, 425, 91, 182, 364, 728, 697, 635, 511, 263, 526, 293, 586, 413, 67, 134, 268, 536, 313, 626, 493, 227, 454, 149, 298, 596, 433, 107, 214, 428, 97, 194, 388, 17, 34, 68, 136, 272, 544, 329, 658, 557, 355, 710, 661, 563, 367, 734, 709, 659, 559, 359, 718, 677, 595, 431, 103, 206, 412, 65, 130, 260, 520, 281, 562, 365, 730, 701, 643, 527, 295, 590, 421, 83, 166, 332, 664, 569, 379, 758, 757, 755, 751, 743, 727, 695, 631, 503, 247, 494, 229, 458, 157, 314, 628, 497, 235, 470, 181, 362, 724, 689, 619, 479, 199, 398, 37, 74, 148, 296, 592, 425, 91, 182, 364, 728, 697, 635, 511, 263, 526, 293, 586, 413, 67, 134, 268, 536, 313, 626, 493, 227, 454, 149, 298, 596, 433, 107, 214, 428, 97, 194, 388, 17, 34, 68, 136, 272, 544, 329, 658, 557, 355, 710, 661, 563, 367, 734, 709, 659, 559, 359, 718, 677, 595, 431, 103, 206, 412, 65, 130, 260, 520, 281, 562, 365, 730, 701, 643, 527, 295, 590, 421, 83, 166, 332, 664, 569, 379, 758, 757, 755, 751, 743, 727, 695, 631, 503, 247, 494, 229, 458, 157, 314, 628, 497, 235, 470, 181, 362, 724, 689, 619, 479, 199, 398, 37, 74, 148, 296, 592, 425, 91, 182, 364, 728, 697, 635, 511, 263, 526, 293, 586, 413, 67, 134, 268, 536, 313, 626, 493, 227, 454, 149, 298, 596, 433, 107, 214, 428, 97, 194, 388, 17, 34, 68, 136, 272, 544, 329, 658, 557, 355, 710, 661, 563, 367, 734, 709, 659, 559, 359, 718, 677, 595, 431, 103, 206, 412, 65, 130, 260, 520, 281, 562, 365, 730, 701, 643, 527, 295, 590, 421, 83, 166, 332, 664, 569, 379, 758, 757, 755, 751, 743]
|
||||
|
||||
# for i in range(len(key)):
|
||||
# d = width - key[i]
|
||||
# img[i] = img[i][d:] + img[i][:d]
|
||||
|
||||
#Rebuild image
|
||||
for y in range(height):
|
||||
for x in range(width):
|
||||
image.putpixel((x, y), img[y][x])
|
||||
|
||||
image.save("fragment_dechiffre.png")
|
||||
image.show()
|
||||
|
||||
|
||||
Reference in New Issue
Block a user