我有一个用户输入的二进制字符串和一个图像。我正在尝试通过稍微更改像素的红色值来对图像中的字符串进行编码。我想在图像中从上到下,从左到右对字符串进行编码,并在像素的每个红色部分中使用字符串的1个字符。如果字符为“ 1”,那么我想将红色像素增加1。如果字符为“ 0”,那么我要将红色分量减少1。这是到目前为止的代码:
from PIL import Image
x = input ("Enter a message to encode: ")
print("You entered: " + x)
z = bin(int.from_bytes(x.encode(), 'big'))
print(z)
z = z[2:]
im = Image.open('1.jpg')
pixelMap = im.load()
img = Image.new( im.mode, im.size)
pixelsNew = img.load()
for i in range(img.size[0]):
for j in range(img.size[1]):
for y in z:
if y == 1:
# set red component +1
if y == 0:
# set red component -1
img.show()
我知道我可以像这样编辑RGB像素:
pixelsNew[i, j] = (0, 0, 0)
但是如何编辑现有像素的红色分量而不是创建新像素?像这样:
pixelsNew[i, j] = (R+1, G, B)