GIMP编辑Blend在Python脚本中产生不同的混合而不是混合工具
题
我正在尝试编写重新尺寸的脚本,在Ubuntu 13.10上使用gimp 2.8在一个上移动和混合两个图像。
我上传了2个需要的图像和结果: http://imgur.com/a/bjgia
我设法全部运行,但一点失败。混合命令。我将问题缩短了pdb.gimp_edit_blend命令,而不是将图层掩码与透明背景混合它创建不透明梯度。
image = gimp.image_list()[0] #image is 237x300 png like above
pdb.gimp_image_resize(image, 300, 300, -100, 0)
fg_layer = pdb.gimp_image_get_active_layer(image)
mask = pdb.gimp_layer_create_mask(fg_layer,ADD_WHITE_MASK)
pdb.gimp_image_add_layer_mask(image, fg_layer, mask)
# from here it goes wrong, if I skip this step than I can get the correct result
# using the gimp blent tool from the gui using the same settings as here
pdb.gimp_edit_blend(fg_layer, FG_BG_RGB_MODE, NORMAL_MODE, GRADIENT_LINEAR, 100, 0, 0, True, False, 0, 0, True, 0, 150, 150, 150)
.
整个代码在这里: http://pastie.org/9079343
任何想法我做错了什么? 谢谢很多
解决方案
您的错误几乎在您自己的代码中 - 您正在调用混合函数传递 FG_Layer作为第一个参数,而不是掩码:
pdb.gimp_edit_blend(fg_layer, FG_BG_RGB_MODE, NORMAL_MODE, GRADIENT_LINEAR, 100, 0, 0, True, False, 0, 0, True, 0, 150, 150, 150)
^^^^^^^^
.
相反,执行将掩码的相同调用作为可绘制参数(您已在“掩码”变量中):
pdb.gimp_edit_blend(mask, FG_BG_RGB_MODE, NORMAL_MODE, GRADIENT_LINEAR, 100, 0, 0, True, False, 0, 0, True, 0, 150, 150, 150)
. 不隶属于 StackOverflow