为了制作图像过滤器,软件会更改图像中的像素值。
当我尝试这段代码时
file = open("hey.jpg" , "rb") #opening file
x = file.read() #reading from file
for i in range(len(x)):
print(x[i]) #cordinate of each pixel
file.close() #closing file
我知道它正在通过输出输出每个像素的信息,因为没有值高于 255 或低于 0 。
我的图像的输出示例:
240 -> R
255 -> G
0 -> B
我想更改每个值并将其保存在新图像中
我尝试了以下代码,但它不起作用
file = open("hey.jpg" , "rb") #opening file
x = file.read() #reading from file
file.close() #closing file
file = open("new.jpg" , "wb") #the new image
for i in range(len(x)): #writing the new data with filter
if x[i] !=255: #pixels RGB cant be 256
file.write(bytes(x[i] + 1)) #bytes because when doig write(x[i]+1) it gives mes an error that a bytee object is required not int
else: #if it is 255 then do nothing
file.write(bytes(x[i]))
file.close()#closing the new image
无需阅读此内容:
PS:Windows 10,Python3.8。我试图让一切变得简单。
不起作用我的意思是没有错误,但操作系统无法解码它并输出图像我不想使用任何第三方库,如 PIL 。
此代码复制图像的二进制数据并成功创建一个新图像。
file = open("hey.jpg" , "rb") #opening file
x = file.read() #reading from file
file.close() #closing file
file = open("new.jpg" , "wb")
file.write(x)
file.close()
慕神8447489
不负相思意
相关分类