首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在GIMP中导入/导出的更快方法?

在GIMP中导入/导出的更快方法?
EN

Stack Overflow用户
提问于 2021-11-01 17:15:12
回答 1查看 97关注 0票数 0

我有一个batch processing script in GIMP,对于目录中的每个图像文件,它涉及到导入图像,导入背景图像作为层,进行一些编辑,以及导出图像。对于69x96的.tga图像,编辑根本不需要时间,但是gimp-file-load、gimp-file-load-layer和gimp-file-save步骤总共需要3-4秒,因此批处理过程将花费一天的大部分时间来处理数以千计的文件。

有没有更快的方法来导入/导出这些图片?也许我可以通过保持背景图像打开直到批处理过程完成来消除背景导入步骤。但是,我应该用什么来代替

(gimp-file-load-layer 1 image background)

将背景图像添加为图层?我不知道有任何程序可以在两个图像之间传输数据,无论是否在GIMP中打开,而不使用剪贴板(我已经在使用它来传输alpha通道数据)或文件加载。

EN

回答 1

Stack Overflow用户

发布于 2021-11-03 17:46:39

不是真正的答案,但对于评论来说太长了:

使用两个200x200 TGA文件(填充等离子):

代码语言:javascript
复制
import time
times=[]
times.append(time.time())

image = pdb.gimp_file_load("/tmp/TGA/TGA-200x200-in.tga","/tmp/TGA/TGA-200x200-in.tga")

times.append(time.time())
layer = pdb.gimp_file_load_layer(image, "/tmp/TGA/TGA-200x200-in2.tga")

times.append(time.time())
pdb.gimp_image_add_layer(image, layer, 0)

times.append(time.time())
layerOut = pdb.gimp_image_flatten(image)

times.append(time.time())
pdb.file_tga_save(image,layerOut,"/tmp/TGA/TGA-200x200-out.tga","/tmp/TGA/TGA-200x200-out.tga", 1, 0)

times.append(time.time())

print "Steps:", [ "%5.1fms" % ((e-s)*1000) for s,e in zip(times[:-1],times[1:])]
print "Total: %5.1fms" % ((times[-1]-times[0])*1000)

收益率:

代码语言:javascript
复制
Steps: [' 97.7ms', '106.3ms', ' 20.6ms', ' 22.2ms', '102.6ms']
Total: 349.4ms

所以这对我来说快了10倍。尝试的变体(例如,使用file-save而不是file-tga-save )在运行时间上没有任何显着变化。

是的,这是Python,但AFAIK这最终会在Gimp中运行相同的代码(否则您有一个解决方案...)。所以我想你遇到了一个I/O瓶颈。

在带有固态硬盘的Corei5-9400H 2.50 and上进行测量,运行Linux和ext4文件系统(这可能是另一种解决方案...)。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69800384

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档