我想读取二进制文件(如.bmp或.jpg),并将每个二进制数据转换为ascii并进行乘法(如ascii*2),然后转换回二进制格式并写入新文件。在
我写的程序如下
filename = input("enter file to read: ")
readfile = filename + ".bmp"
writefilebmp = filename + '1' + ".bmp"
fr = open(readfile,"rb");
fwbmp = open(writefilebmp,"wb");
bytes_read = fr.read(1024)
for b in bytes_read:
print(b,end='')
data = b*2;
fwbmp.write(data)
fr.close()
fwbmp.close()
但是我得到了下面的错误
类型错误:“int”不支持缓冲区接口
注意:一旦我的解决方案,我将修改代码跳过bmp或jpeg头
修改
^{pr2}$
你在字节上循环,这给了你整数。转换回字节以写入二进制文件:
这里需要使用模256将结果整型值限制为允许的值。您也可以用
^{pr2}$min()
将值限制在255:或者,如果加倍导致溢出,则可以写入两个字节:
或者总是生成2个字节,不管第一个字节是}:
0x01
或{你需要决定你的“翻番”在产出方面意味着什么。在
相关问题 更多 >
编程相关推荐