我似乎在使用Blender(使用python)从PNG图像中读取像素RGBA值(特别是alpha值)时遇到问题。
我执行以下操作:
for i in range(0, len(bpy.data.images["name_of_my_png"].pixels), 4):
print(bpy.data.images["name_of_my_png"].pixels[i:i+4]);
但是我从来没有真正得到它打印出相同输出的每个像素的任何预期结果 - 1.0, 1.0, 1.0, 0.0
(我假设它们分别是R,G,B和A的值)。
我很确定png是在blender的缓存中加载的,而且它只是一个常规的RGBA png图像,它有可见和不可见的部分,所以逻辑上我的打印输出应该包含一些变化而不仅仅是{{1不断为每个像素......?
有人能指出我到底做错了什么吗?如何通过Blender-python读取图像的像素数据?也许我使用的是完全错误的方法?
答案 0 :(得分:2)
您的代码运行正常(使用blender 2.71测试)。
有多种可能的解释,为什么输出看起来不像预期:
Save color values from transparent pixels
复选框。r,g,b,a
频道,而是通过将每个颜色通道与Alpha通道r*a, g*a, b*a, a
相乘来存储图像。