【发布时间】:2013-10-05 05:52:04
【问题描述】:
我需要一个 python 脚本,它从给定的 URL 获取 动态创建的图像文件,并使用该图像文件创建一个材质。
然后我将该材质应用到我的搅拌机对象。
下面的python代码适用于本地图像文件
import bpy, os
def run(origin):
# Load image file from given path.
realpath = os.path.expanduser('D:/color.png')
try:
img = bpy.data.images.load(realpath)
except:
raise NameError("Cannot load image %s" % realpath)
# Create image texture from image
cTex = bpy.data.textures.new('ColorTex', type = 'IMAGE')
cTex.image = img
# Create material
mat = bpy.data.materials.new('TexMat')
# Add texture slot for color texture
mtex = mat.texture_slots.add()
mtex.texture = cTex
# Create new cube
bpy.ops.mesh.primitive_cube_add(location=origin)
# Add material to created cube
ob = bpy.context.object
me = ob.data
me.materials.append(mat)
return
run((0,0,0))
我试过了:
import urllib, cStringIO
file = cStringIO.StringIO(urllib.urlopen(URL).read())
img = Image.open(file)
但我没有运气。我得到的第一个错误是
ImportError: 没有名为“StringIO”的模块
Blender 中的 python 脚本 API 使用限制性模块还是什么?
感谢您的帮助。
【问题讨论】:
-
你能修正一下缩进吗?
-
你在windows上吗? -> 是的,你是。有 python 可能预装了搅拌机。使用什么 python 版本和二进制文件?
-
我在 Blender 2.68a 和 Blenders 控制台中使用该 python 脚本,它显示 PYTHON INTERACTIVE CONSOLE 3.3.0(默认,2012 年 11 月 26 日,17:23:29)[MSC v.1500 32 位(Intel)],但我不知道 Blender 的 python 版本。
-
您能从该脚本中执行“import sys”和“print(sys.version_info)”并像使用普通脚本一样运行它吗?
标签: python blender python-3.3