【发布时间】:2021-09-14 19:06:06
【问题描述】:
我正在尝试为 Gimp 编写一个脚本,该脚本将裁剪图像,对剩余的内容进行圆形选择,反转选择,然后删除选择。我已经完成了裁剪、选择和反转部分,但删除是让我感兴趣的部分。
(已删除旧代码,请参阅更新)
这就是我的代码。 gimp-item-delete 代码让我感到困惑的是 item。我知道我需要将我当前的选择定义为item,但我不确定如何执行此操作。如果有人可以解释如何做到这一点,我将不胜感激!或者,如果有更简单的方法来做我想做的事情(但最好还是在脚本中),请让我知道你的想法。我对这种编码的了解非常有限,因此感谢您提供简单的解释。
更新/编辑: 这是(完整的)更新代码:
; XML2 Conversation Portrait Preview Crop
(define (script-fu-xml2-convo-preview image layer)
(gimp-image-undo-group-start image)
(gimp-selection-none image)
(gimp-image-resize image 152 152 -280 -496)
(gimp-layer-resize-to-image-size layer)
(gimp-image-select-ellipse image 0 0 0 152 152)
(gimp-selection-invert image)
(gimp-displays-flush)
(gimp-drawable-edit-clear layer)
(gimp-selection-none image)
(gimp-image-undo-group-end image)
)
; populate script registration information
(script-fu-register
"script-fu-xml2-convo-preview"
"XML2 Conversation Portrait Preview Crop"
"Crops the preview window for XML2 conversation portraits."
"BaconWizard17"
"BaconWizard17"
"September 2021"
"*"
SF-IMAGE "Image" 0
SF-DRAWABLE "Layer" 0
)
; register the script within gimp menu
(script-fu-menu-register "script-fu-xml2-convo-preview" "<Image>/Marvel Mods/Skin Previews/XML2 PC")
所以当我运行这个脚本时,它似乎只是裁剪了它,并没有删除倒置的圆形选择。但是,如果我以任何方式与图像交互(单击它、复制它、复制/粘贴它、撤消/重做),它会自行纠正并显示带有已删除圆角的正确裁剪的图像。当我第一次运行脚本时,它还会在顶部显示不正确的图像,您可以在其中选择正在处理的图像,但在与图像交互后,它会显示正确的图像。这是一个例子:
我使用 Ctrl+Shift+V 从剪贴板创建的起始图像(使用 PrtScr 从游戏中截屏后):
然后,我运行脚本,结果如下:
在屏幕顶部,图像显示如下(即起始图像的左上角 152x152 像素:
当我以任何方式与图像交互(单击、复制/粘贴、复制、撤消/重做操作)后,图像的外观:
我与图像交互后屏幕顶部的缩略图:
也许它在操作过程中被挂断了?我不知道。我了解这个问题是否不可避免,但我希望能够只运行脚本并继续前进,而不是必须与图像交互以使其正确显示。粘贴时图像确实有一个 Alpha 层。
【问题讨论】: