0

我有一千张图片,我必须从中删除近 1/2 的内容。

手动我会:

  • 加载图像-a
  • 添加 Alpha 通道
  • 导入图层 image-b(预制蒙版)
  • 从屏蔽部分进行选择
  • 删除遮罩层
  • 从图像 a 中清除选择
  • 导出图像

这是我编写的试图自动化的代码:

(define  (script-fu-auto-mask-image Mask InImage OutImage)
  (let* (
      Image (car (file-tiff-load RUN-NONINTERACTIVE InImage InImage)) ImgW (car (gimp-image-width Image)) ImgH (car (gimp-image-height Image))
      PrimeLayer (car (gimp-image-get-active-layer Image))
      (gimp-layer-add-alpha PrimeLayer))
      (gimp-layer-new Image ImgW ImgH RGB-IMAGE MaskLayer 0 LAYER-MODE-NORMAL)
      (gimp-file-load-layer RUN-NONINTERACTIVE Image Mask)
      (gimp-image-set-active-layer Image MaskLayer)
      (gimp-image-select-color mask CHANNEL-OP-ADD drawable (0 0 0))
      (gimp-image-set-active-layer Image PrimeLayer)
      ;(gimp-edit-clear drawable)
      (gimp-drawable-edit-clear drawable)
      (gimp-image-remove-layer Image MaskLayer)
      (file-png-save-defaults RUN-NONINTERACTIVE Image drawable OutImage OutImage)
    )
  (gimp-displays-flush)
  (gimp-quit TRUE)
)

这是我用来启动和反馈的终端命令

gimp -i -c -b script-fu-auto-mask-image  "Pictures/test/mask.png" "Pictures/test/DSC00805.tif" "test.png"
bps: 16
load_contiguous
bytes_per_pixel: 6, format: 6
batch command executed successfully

它冻结了,然后我必须 ctrl+c

我在 GIMP 控制台中尝试过:

(file-tiff-load RUN-INTERACTIVE "Pictures/test/DSC00805.tif" "Pictures/test/DSC00805.tif")

它返回 (1) 然后我可以看到它实际上从未在 GIMPS 窗口底部的状态栏中加载图像。

我在 Ubuntu 20.04 GIMP 2.10.18 (apt not SNAP) 我尝试从 Flatpak 运行 GIMP,但遇到 GTK 模块无法加载的问题......无论如何

字面上的帮助将不胜感激 - 如果可行的话,甚至是替代解决方案

4

1 回答 1

0

它很冷,因为你告诉 gimp 开始,但没有告诉它停止。

您需要封装现有命令,然后添加 -b '(gimp-quit 0)'

IE

gimp -i -c -b '(script-fu-auto-mask-image  "Pictures/test/mask.png" "Pictures/test/DSC00805.tif" "test.png")' -b '(gimp-quit 0)'
于 2021-09-20T09:39:56.140 回答