Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/323.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用python按字节修改图像_Python_Arrays - Fatal编程技术网

使用python按字节修改图像

使用python按字节修改图像,python,arrays,Python,Arrays,我正在开发一个程序,将对图像应用一些效果。要做到这一点,我想使用字节,这里我有一个问题 我需要选择一个图像文件,获得一个包含字节的整数列表,然后修改该列表,然后使用我的新列表保存新文件 我有此代码,但这样我无法设置整数值: in_file = open(input('Input image: '), "rb") data = in_file.read() in_file.close() for num in range(0, len(data), 4): b = int(data[nu

我正在开发一个程序,将对图像应用一些效果。要做到这一点,我想使用字节,这里我有一个问题

我需要选择一个图像文件,获得一个包含字节的整数列表,然后修改该列表,然后使用我的新列表保存新文件

我有此代码,但这样我无法设置整数值:

in_file = open(input('Input image: '), "rb")
data = in_file.read()
in_file.close()

for num in range(0, len(data), 4):
    b = int(data[num])
    print(b)
    g = int(data[num + 1])
    r = int(data[num + 2])
    a = int(data[num + 3])
    media = (b + g + r) / 3
    data[num] = media
    data[num + 1] = media
    data[num + 2] = media

out_file = open(input('Output image: '), "wb")
out_file.write(data)
out_file.close()
我不知道这段代码是否正确,它可以做我想做的事情,如果这段代码有错误,请纠正它,如果这段代码完全错误,你能给我另一种方法吗?


感谢在Python3中,当您读取二进制文件时,您会得到一个
字节
对象,它类似于整数值(0-255)的
列表
,但不可变

从做以下事情开始:

data = list(in_file.read())
现在您有了一个整数列表,可以在下面的循环中修改

更改值后,只需在写入时将其转换回
字节

out_file.write(bytes(data))

听起来很难。也许你应该用枕头,而不是手动翻转。