gpt4 book ai didi

python - 如何将图像导出到 GIMP 中的子目录?

转载 作者:太空宇宙 更新时间:2023-11-04 05:07:42 28 4
gpt4 key购买 nike

我使用 GIMP 进行一些批量编辑,其中一部分是使用从原始图像“文件名”中获取的文件名导出绘画,代码如下:

pdb.file_png_save_defaults(ima, drawable, fullpath, filename)

此时此刻,我有

fullpath=filename

所以它将图像保存到与源文件相同的文件夹中,文件名和完整路径是相同的。

我想做的是把它放到这个文件夹的子目录中,我们称它为"subfolder"。但如果我尝试:

fullpath = '\subfolder\'+filename

很明显,我收到一个错误,因为我使用 Python(或任何编程语言)工作了大约半小时,但我几乎不知道自己在做什么。有谁知道如何实现将图像导出到子文件夹中?

更新:

现在是这个样子

sourcename = pdb.gimp_image_get_filename(ima)
basedir = os.path.dirname(sourcename)

if os.path.isdir(os.path.join(basedir,'Subfolder')) is False:
os.makedirs(os.path.join(basedir,'Subfolder'))

fullpath = os.path.join(basedir,'Subfolder',filename)

...而且效果很好。几乎。现在我正面临 basedir 中变音符号的问题。当 basedir 包含类似“C:\Úklid\”的内容时,当代码在其中创建 Subdirecotry 时,我会收到“没有这样的文件或目录”错误。在我将源文件夹重命名为“C:\Uklid\”后,它可以轻松工作。但我确实需要它来处理在 Windows 操作系统中有效的每条路径。有人可以帮我吗?

更新 2:

看起来 unicode() 成功了:

sourcename = pdb.gimp_image_get_filename(ima)
basedir = os.path.dirname(sourcename)

if os.path.isdir(os.path.join(basedir,'Subfolder')) is False:
os.makedirs(unicode(os.path.join(basedir,'Subfolder')))

fullpath = os.path.join(basedir,'Subfolder',filename)

最佳答案

试试这个:

import os

sourcename = pdb.gimp_image_get_filename(ima) # gets full name of source file
basedir= os.path.dirname(sourcename) # gets path
name = pdb.gimp_layer_get_name(ima.layers[0]) # gets name of active layer
filename = name+'.png'
fullpath = os.path.join(basedir,'subfolder',filename) # use os.path.join to build paths
# new line vvv
os.makedirs(os.path.join(basedir,'subfolder')) # make directory if it doesn't exist
drawable = pdb.gimp_image_active_drawable(ima)
pdb.file_png_save_defaults(ima, drawable, fullpath, filename) # saves output file

关于python - 如何将图像导出到 GIMP 中的子目录?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43941881/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com