保存透明边框的PNG
Save PNG with transparent border
刚开始使用 Gimp 中的 python-fu。我正在尝试在 python 中模拟我在 UI:
中可以做什么
- 创建一个新图像,比如说 1000 像素宽,500 像素高,透明填充。
- 打开图层“file1.png”,宽度为 800 像素,高度为 500 像素 - 这会在图层的两侧留下 100 像素的透明度,这正是我想要的
- 导出为“file2.png”- 给我一个 1000px x 500px 的 PNG,中间是 800px 的图像,两边都是 100px 的透明度 - 完美。
这是我的:
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', 'C:\temp/file2.png',0,9,0,0,0,1,1,1,1)
感谢收到任何帮助! :)
我找到了一个解决方案,通过创建一个单独的 1000 像素 * 500 像素的透明背景 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, None, 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', 'C:\temp/file2.png',0,9,0,0,0,1,1,1,1)
刚开始使用 Gimp 中的 python-fu。我正在尝试在 python 中模拟我在 UI:
中可以做什么- 创建一个新图像,比如说 1000 像素宽,500 像素高,透明填充。
- 打开图层“file1.png”,宽度为 800 像素,高度为 500 像素 - 这会在图层的两侧留下 100 像素的透明度,这正是我想要的
- 导出为“file2.png”- 给我一个 1000px x 500px 的 PNG,中间是 800px 的图像,两边都是 100px 的透明度 - 完美。
这是我的:
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', 'C:\temp/file2.png',0,9,0,0,0,1,1,1,1)
感谢收到任何帮助! :)
我找到了一个解决方案,通过创建一个单独的 1000 像素 * 500 像素的透明背景 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, None, 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', 'C:\temp/file2.png',0,9,0,0,0,1,1,1,1)