我回答我自己的问题。在其中Makefile
一个必须创建和使用一个临时 Gimp 目录,以便使用来自版本控制系统的脚本,而不是任意的本地副本。应该批量处理图像文件,因为 Gimp 的启动速度相对较慢。
mkdir -p gimp/plug-ins
cp downsize.py gimp/plug-ins/
GIMP2_DIRECTORY=`pwd`/gimp gimp --no-interface \
--batch '(python-fu-downsize RUN-NONINTERACTIVE 600 32 "origdir" "copydir")' \
--batch '(gimp-quit 0)'
该脚本downsize.py
是一个普通的 Gimp Python 脚本,主要包含以下内容:
def downsize(img_w, img_d, in_dir, out_dir):
for fn in glob.glob(os.path.join(in_dir, "*.png")):
img = pdb.gimp_file_load(fn, '1')
if img.width > img_w:
aspect = float(img.width)/float(img.height)
h = int(float(img_w)/aspect)
pdb.gimp_image_scale(img, img_w, h)
if img.base_type != RGB:
pdb.gimp_convert_rgb(img)
if img.base_type != INDEXED:
pdb.gimp_convert_indexed(img, NO_DITHER, MAKE_PALETTE, img_d, False, True, "")
new_path = os.path.join(out_dir, os.path.basename(fn))
pdb.gimp_file_save(img, pdb.gimp_image_active_drawable(img), new_path, fn)
此代码可能不正确,这只是基本思想。