Hallo Leute,
ich bin dabei bezüglich Stenografie ein Text in einer Bilddatei abzuspeichern. Bzw. eine Bilddatei zu "bearbeiten". Dabei Iteriere ich durch einen String. Dabei bekomme ich eine Fehlermeldung.
Der Code:
Bekomme jedoch folgende Fehlermeldung:
Ich hoffe ihr könnt mir helfen.
Lg
Tron36
ich bin dabei bezüglich Stenografie ein Text in einer Bilddatei abzuspeichern. Bzw. eine Bilddatei zu "bearbeiten". Dabei Iteriere ich durch einen String. Dabei bekomme ich eine Fehlermeldung.
Der Code:
Code:
from PIL import Image
import os
import sys
arguments = sys.argv
# overwrite arguments to test the program without arguments
arguments = ["Text.txt", "Bild.bmp"]
# text.txt
INPUT_TEXT = arguments[0]
# bild.bmp
INPUT_IMAGE = arguments[1]
# bild.bmp.ste
OUTPUT = arguments[1] + ".ste.bmp"
def encode_image(img, msg):
length = len(msg)
encoded = img.copy()
width, height = img.size
index = 0
for row in range(height):
for col in range(width):
r, g, b = img.getpixel((col, row))
if row == 0 and col == 0 and index < length:
asc = length
elif index <= length:
#c = msg[index -1]
asc = ord(msg[index -1])
else:
asc = r
encoded.putpixel((col, row), (asc, g , b))
index += 1
return encoded
def main():
#original_image_file = "Bild.bmp"
img = Image.open(INPUT_IMAGE)
#verstecktext_Datei = open("Text.txt", "rb")
verstecktext = INPUT_TEXT.read()
img_encoded = encode_image(img, verstecktext)
encoded_image_file = Image
thisFile = encoded_image_file
base = os.path.splitext(thisFile)[0]
os.rename(thisFile, base + ".bmp.ste")
img_encoded.save(thisFile)
if __name__ == "__main__":
main()
Bekomme jedoch folgende Fehlermeldung:
Code:
Traceback (most recent call last):
File "D:\Programme\eclipse\plugins\org.python.pydev_6.2.0.201711281614\pysrc\pydevd.py", line 1621, in <module>
main()
File "D:\Programme\eclipse\plugins\org.python.pydev_6.2.0.201711281614\pysrc\pydevd.py", line 1615, in main
globals = debugger.run(setup['file'], None, None, is_module)
File "D:\Programme\eclipse\plugins\org.python.pydev_6.2.0.201711281614\pysrc\pydevd.py", line 1022, in run
pydev_imports.execfile(file, globals, locals) # execute the script
File "D:\Programme\eclipse\plugins\org.python.pydev_6.2.0.201711281614\pysrc\_pydev_imps\_pydev_execfile.py", line 25, in execfile
exec(compile(contents+"\n", file, 'exec'), glob, loc)
File "E:\Uni\Master-Medieninformatik\Übung2\ersteAufgabe\steganohide.py", line 32, in <module>
img_encoded = encode_image(img, verstecktext)
File "E:\Uni\Master-Medieninformatik\Übung2\ersteAufgabe\steganohide.py", line 17, in encode_image
asc = ord(msg[index -1])
TypeError: ord() expected string of length 1, but int found
Ich hoffe ihr könnt mir helfen.
Lg
Tron36