mirror of
https://github.com/KevinMidboe/knowit_julekalender-2018.git
synced 2025-12-07 20:08:45 +00:00
Submission for decoding steganography image
This commit is contained in:
55
luke_04/steganography.py
Normal file
55
luke_04/steganography.py
Normal file
@@ -0,0 +1,55 @@
|
||||
#!/usr/bin/env python3
|
||||
import os
|
||||
from PIL import Image
|
||||
import numpy as np
|
||||
import itertools
|
||||
|
||||
input_image = os.path.join(os.path.dirname(__file__), 'images/input-pokemon_jakt.png')
|
||||
output_image = os.path.join(os.path.dirname(__file__), 'images/output-pokemon_jakt.png')
|
||||
|
||||
def main():
|
||||
LSB = 4
|
||||
image = Image.open(input_image)
|
||||
pixels = np.array(image)
|
||||
width, height, channels = pixels.shape
|
||||
|
||||
for i,j,k in [(i,j,k) for i in range(width) for j in range(height) for k in range(channels)]:
|
||||
value = int(f'{pixels[i][j][k]:b}'[-LSB:], 2)
|
||||
pixels[i,j,k] = (255 // 2**LSB) * value
|
||||
|
||||
image = Image.fromarray(pixels)
|
||||
image.save(output_image)
|
||||
return output_image
|
||||
|
||||
if __name__ == '__main__':
|
||||
main()
|
||||
|
||||
|
||||
|
||||
'''
|
||||
_____
|
||||
tests
|
||||
|
||||
* compare the hash values of images
|
||||
* compare all bits in every channel
|
||||
calls = [hashCompare]
|
||||
'''
|
||||
|
||||
'''
|
||||
___
|
||||
previous attempts
|
||||
|
||||
for i, j, in itertools.product(width, height, channels):
|
||||
encoded_value = int(f'{pixels[i][j][k]:b}'[-LSB:], 2)
|
||||
rbg_lsb_ratio = 255 // 2**LSB
|
||||
pixels[i][j][k] = rbg_lsb_ratio * encoded_value
|
||||
|
||||
|
||||
for i in range(width):
|
||||
for j in range(height):
|
||||
for k in range(channels):
|
||||
encoded_value = int(f'{pixels[i][j][k]:b}'[-LSB:], 2)
|
||||
rbg_lsb_ratio = 255 // 2**LSB
|
||||
pixels[i][j][k] = rbg_lsb_ratio * encoded_value
|
||||
|
||||
'''
|
||||
Reference in New Issue
Block a user