所以我正在研究這個學校項目(我知道真正的基本編程,而python是我唯一知道的語言),在那裏我需要改變我的像素顏色來編碼圖片中的消息,但PIL的putpixel似乎沒有工作,這裏是我的代碼。python的putpixel()不起作用
PS:我所有的PIL信息是自學和英語不是我的主要語言,所以如果你會說話簡化我會很感激
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)
請裸記住,我不是在尋找到使視覺差異,我已經完成調試。也沒有錯誤,putpixel因爲某些原因不工作。正如我所說,我是編程新手,非常抱歉,如果它包含愚蠢的錯誤。
嗯,我會說這是不是一個壞的問題,是你的第一個。但是,試着多解釋一下錯誤是什麼。如果您沒有看到任何錯誤,請告訴我們您得到的是什麼與期望的結果。請記住,您解釋問題所付出的努力越多,社區越容易幫助您。 –
以及即時通訊沒有得到任何錯誤,像素只是根本不改變,就像putpixel沒有做什麼,我不認爲我做了什麼錯誤 –
好吧,嘗試添加一些調試線。瞭解發生了什麼。例如,您可以在'a = input('Your message?')'語句下面添加'print a',並確保您實際存儲了您期望的值。以同樣的方式,添加幾個'print'語句。 –