2017-03-03 44 views
0

经过我的代码一遍又一遍的挖掘,我非常渴望在线询问,希望有人能帮助我。我正在尝试开发一个python-fu脚本,其中一个重要部分就是将图像映射到一个对象。但是每当我尝试拨打pdb.plug_in_map_object()时,控制台都会显示 File "<input>", line 29, in <module> TypeError: wrong parameter type。 我当前的代码如下所示:python-fu/Map to Object:错误的参数类型

pdb.plug_in_map_object(
#image, drawable, maptype=sphere 
gimp.Image,gimp.Layer,1, 
#viewpoint x, y, z 
0.5,0.5,1, 
#position x, y, z 
0.5,0.5,0, 
#first-axis x, y, z 
1,0,0, 
#second-axis x, y, z 
0,1,0, 
#rotation-angle x, y, z 
0,0,0, 
#lighttype=none 
2, 
#light color (r,g,b) 
(0,0,0), 
#light position x, y, z 
-0.5,-0.5,2, 
#light direction x, y, z 
-1,-1,1, 
#ambientintesity, diffuseintesity, dissufereflectivity, specularreflectivity 
0.3,1,0.5,0.5, 
#highlight, antialiasing, tiled, newimage, traparentbackground, radius 
27,1,0,0,1,0.25, 
#scale x, y, z 
0.5,0.5,0.5, 
#cylinderlegth, 8 drawables for cylinders & boxes 
0,gimp.Layer,gimp.Layer,gimp.Layer,gimp.Layer,gimp.Layer,gimp.Layer,gimp.Layer,gimp.Layer 
); 

(请注意,这不是我在脚本中使用的代码,我用这些丑陋的和毫无意义的gimp.Layer的使蟒蛇控制台接受它,我想要的。能够在填写正确的值之前正确地调用该功能。)

第29行是错误中提到的最后一个,其中只包含一个PF_INT32和八个PF_DRAWABLE。这正是oldest以及我发现的最新(GIMP git)源代码(如果您不想下载最新的gimp代码,我上传了相关文件here)中提及的那些参数的方式。

有人能告诉我我做错了什么吗?

+0

您是否尝试过UI中的映射以了解参数的用途? –

+0

可能有些参数作为整数应该作为浮点数传递(特别是位置和角度) – xenoid

+0

我检查了UI和浮点数,参数类型都是正确的。 – MCO

回答

0

它现在可以工作,唯一改变的是我使用了一些随机(现有)图层,而不是调用gimp.Layer。所以在我的情况下,我只是通过image.activelayer使用当前活动层。无论如何映射到球体并不重要,这些层仅在映射到立方体或球体时才使用