Also ich arbeitete an diesem Schulprojekt (ich kenne wirklich grundlegende Programmierung, und Python ist die einzige Sprache, die ich kenne), wo ich meine Pixelfarbe ändern muss, um eine Nachricht in einem Bild zu kodieren , aber PIL's putpixel scheint nicht zu funktionieren, hier ist mein Code.python's putpixel() funktioniert nicht
PS: Alle meine PIL Informationen sind Autodidakt und Englisch ist nicht meine Hauptsprache also, wenn Sie vereinfacht reden kann ich
from PIL import Image
e=input('file and location? ')
img=Image.open(e)
pmap=img.load()
imy=img.height
imx=img.width
if int(input('1 for encoding, 2 for decoding '))==1:
a=input('Your message? ')
for i in range(len(a)):
r , g , b=img.getpixel((i+10,imy//2))
img.putpixel((i+10,imy//2),(ord(a[i]),g,b))
r,g,b=img.getpixel((len(a)+10,imy//2))
img.putpixel((len(a)+10,imy//2),(999,g,b)) #999 is the stop code in decoding
else:
r=u=0
m=''
while r!=999:
r , g , b=img.getpixel((10+u,imy//2))
m+=chr(r)
u+=1
print(m[:len(a)-1])
img.save(e)
dankbar sein würde Sie bitte daran, entblößt, dass ich nicht auf der Suche nach mache einen visuellen Unterschied und ich habe bereits Debugging gemacht. Es gibt auch keine Fehler, putpixel funktioniert aber aus irgendeinem Grund nicht. Wie gesagt, ich bin neu im Programmieren, tut mir leid, wenn es dumme Fehler enthält.
Nun, ich würde sagen, es ist keine schlechte Frage Ihre erste ist . Versuchen Sie jedoch, ein wenig mehr zu erklären, was der Fehler ist. Wenn Sie keinen Fehler sehen, erzählen Sie uns, was Sie erhalten und was Sie erwarten. Denken Sie daran: Je mehr Mühe Sie haben, Ihre Probleme zu erklären, desto leichter kann die Gemeinschaft Ihnen helfen. –
Nun, ich bekomme keine Fehler, die Pixel verändern sich überhaupt nicht, so wie der Putpixel nichts tut und ich glaube nicht, dass ich irgendwas falsch gemacht habe. –
Ok, versuche ein paar Debug-Zeilen hinzuzufügen. Um zu verstehen, was vor sich geht. Sie könnten zum Beispiel 'print a' unter der Anweisung' a = input ('Ihre Nachricht?') Hinzufügen und sicherstellen, dass Sie tatsächlich den Wert speichern, den Sie erwarten. Auf die gleiche Weise fügen Sie ein paar weitere 'print' Anweisungen hinzu. –