如何解决使用透明边框保存 PNG
刚开始使用 Gimp 中的 python-fu。我正在尝试在 python 中模拟我可以在 UI 中执行的操作:
- 创建一个新图片,比如 1000 像素宽、500 像素高、透明填充。
- 打开为“file1.png”图层,宽 800 像素,高 500 像素 - 这会在图层的两侧留下 100 像素的透明度,这正是我想要的
- 导出为“file2.png” - 给我一个 1000 像素 x 500 像素的 PNG,中间是 800 像素的图像,两边都是 100 像素的透明度 - 完美。
这是我所拥有的:
img=pdb.gimp_image_new(1000,500,0)
lyr=pdb.gimp_file_load_layer(img,'C:\temp/file1.png')
pdb.gimp_image_insert_layer(img,lyr,None,0)
#here's where I'm lost... how do I save as png with the transparent border? The following saves just as 800px wide,and loses the 100px transparency on either side...
drw=pdb.gimp_image_active_drawable(img)
pdb.file_png_save2(img,drw,'C:\temp/file2.png',9,1,1)
感谢收到任何帮助! :)
解决方法
我找到了一个解决方案,通过创建一个 1000px * 500px 的单独透明背景 png,将其添加为一个额外的图层,然后合并两个图层,剪裁到图像大小:
img=pdb.gimp_image_new(1000,500,0)
lyr=pdb.gimp_file_load_layer(img,'C:\temp/file1.png')
pdb.gimp_image_insert_layer(img,lyr,None,0)
lyr2=pdb.gimp_file_load_layer(img,'C:\temp/bg.png')
pdb.gimp_image_insert_layer(img,lyr2,0)
pdb.gimp_image_merge_visible_layers(img,CLIP_TO_IMAGE)
drw=pdb.gimp_image_active_drawable(img)
pdb.file_png_save2(img,drw,'C:\temp/file2.png',9,1,1)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。