试图使用本文中的一些python,出现了一个错误
我希望我能在上下文中问这个问题,但我没有足够的代表在那里评论和问我的问题,所以我不得不写一篇新的帖子。 我正在尝试使用此注释中的代码: 我在学校的Houdini使用Python,因此我只能使用他们安装的库,所以我打算使用纯Python实现将一些数据作为PNG映射输出,但我在这一行遇到了一个错误:试图使用本文中的一些python,出现了一个错误,python,python-3.x,png,bitwise-operators,Python,Python 3.x,Png,Bitwise Operators,我希望我能在上下文中问这个问题,但我没有足够的代表在那里评论和问我的问题,所以我不得不写一篇新的帖子。 我正在尝试使用此注释中的代码: 我在学校的Houdini使用Python,因此我只能使用他们安装的库,所以我打算使用纯Python实现将一些数据作为PNG映射输出,但我在这一行遇到了一个错误: def saveAsPNG(array, f): import struct if any([len(row) != len(array[0]) for row in array]):
def saveAsPNG(array, f):
import struct
if any([len(row) != len(array[0]) for row in array]):
raise ValueError, "Array should have elements of equal size"
#First row becomes top row of image.
flat = []; map(flat.extend, reversed(array))
#Big-endian, unsigned 32-byte integer.
buf = b''.join([struct.pack('>I', ((0xffFFff & i32)<<8)|(i32>>24) )
for i32 in flat]) #Rotate from ARGB to RGBA.
data = write_png(buf, len(array[0]), len(array))
#f = open(filename, 'wb')
f.write(data)
f.close()
def saveAsPNG(数组,f):
导入结构
如果有([len(行)!=len(数组中的行为数组[0])):
raise VALUERROR,“数组应具有大小相等的元素”
#第一行成为图像的第一行。
平面=[];映射(展开、反转(数组))
#Big-endian,无符号32字节整数。
buf=b“”。连接([struct.pack('>I',((0xffFFff&i32)24))
对于平面中的i32。)#从ARGB旋转到RGBA。
data=write_png(buf,len(数组[0]),len(数组))
#f=打开(文件名“wb”)
f、 写入(数据)
f、 关闭()
我得到以下错误:
TypeError:&:'int'和'str'的操作数类型不受支持
不幸的是,我不熟悉所有这些语法,因此我自己无法修复错误。有什么线索吗?看起来像是
i32
是一个str
,而不是一个数字。。。这意味着你的flat
iterable中有一些字符串,flat
看起来像什么?@mgilson好的,现在我正在查看代码,是的,它们被格式化为字符串,但是如何将它们转换成正确的格式呢?我能用hex()吗?@adalast--hex
会给你一个字符串。您可能需要int
@Adalast——我想您可以(将基数设置为16)。e、 g.int('0x555',16)