我正在做一个密写程序。我让它在没有PIL的情况下工作,但它只适用于位图,所以我做了一些研究,发现并学习了通用的PIL。我将我的算法转换为与PIL兼容,它看起来很有效,但当我去解码时,它似乎不知从哪里提取数字。经过一些调试后,我相信会有一个排序模式,因为它只差几个值。你知道吗
为了进一步调试,我创建了一个类似的程序,使图像完全变红,然后重新打开并读取其像素值,然而,我似乎遇到了同样的错误。奇怪的是,我的计算机科学老师,使用python2,没有遇到这个错误。我想知道是否有更多有经验的PIL用户知道这是为什么和任何修复。我在windows10上使用python3。你知道吗
这是我的代码(这是我为调试而编写的程序):
from PIL import Image
def redify(file_name): #Function that turns the whole image red
image = Image.open(file_name)
image = image.convert("RGB")
pixels = list(image.getdata())
fileTypeIndex = 0
for i in range(0,len(file_name)):
if file_name[-i] == ".":
fileTypeIndex = i
break
for x in range(0,len(pixels)):
pixels[x] = 255,0,0
final = Image.new(image.mode,image.size)
final.putdata(pixels)
final.save(file_name[:-fileTypeIndex] + "_redified" + file_name[-fileTypeIndex:])
def readImage(file_name): #Fucntion that opens an image and reads its data
image = Image.open(file_name)
image = image.convert("RGB")
rgbList = list(image.getdata())
print(rgbList) # This returns every pixel as (254,0,0)
# When I set each pixel to 0,255,0 it returns (0,255,1)
# When I set each pixel to 0,0,255 it returns (0,0,254)
# All of these shouldn't be occuring
redify("moon.jpg")
readImage("moon_redified.jpg")
目前没有回答
相关问题 更多 >
编程相关推荐