不要被标题所迷惑,我的问题并不太复杂:
我想将图像的一部分移动到图像内的另一个位置,但是批量(6000 张图像)。具体来说,我想将图像顶部的水平条移动到底部。
恕我直言,这可以通过三种方式完成:
- A。选择水平部分,然后剪切并粘贴它,或者
- b. 选择水平部分,然后将其拖放到其他地方,即图片的底部。
- C。将每张图片分成两张图片,然后将它们组合为“图层”,这也有点陡峭。是的,我可以使用某些软件来做到这一点,但是,我想对 6000 张图像执行此操作,因此需要进行批处理。
我不介意该部分是否只是复制或移动。我可以轻松地将旧部分剪掉。
我尝试了几个图像编辑器,但到目前为止,它们都不能满足我的要求。几乎所有的都可以将单杠移动到底部,但不能批量移动。GIMP 最接近,但我不知道如何在 GIMP 中/为 GIMP 记录宏,也不知道如何在宏中完成这一切。
到目前为止我所做的是:
- 阅读 GIMP 中的 Python 和 Script-Fu,但这有点超出我的理解范围,因为我不是程序员。(我确实设法将击键添加到粘贴到选择功能中,因此解决方案是 {1} 选择、Ctrl-C、移动、Ctrl-Shift-B)
- 尝试一些图像编辑器,但它们要么不能批量处理,要么可以,但它们没有剪切和粘贴功能,更不用说拖放功能了。
我并不热衷于 GIMP,所以如果您有其他解决方案,请告诉我。我只是提到它,因为它似乎是唯一具有宏功能的。但到目前为止我还没有在 Gimp 找到它们。
理想情况下,命令行解决方案是记录或编写脚本,然后使用以下命令:
C:\>GIMPDir\gimp move-pic-script.scr *.jpg
...其中脚本将包含以下内容:打开图像、选择区域、复制区域、移动到底部、粘贴、保存和关闭图像。
如果可能的话,并且在所有条件相同的情况下,我更喜欢免费软件解决方案。谢谢。
编辑:图像为 352 x 276 像素,352 x 36 像素的水平条需要再次移动到 352 x 36 的底部。操作系统是 Windows 10
编辑2:我在堆栈溢出上发现了这个命令
(gimp-image-select-rectangle image operation x y width height)
所以,我想就我而言
(gimp-image-select-rectangle *.jpg operation 0 0 352 36)
可能是我可以使用的脚本的开始...但是,我不知道上面一行中的“操作”是什么意思。其他未知的命令包括CopyTheSelection、MoveTheSelection和PasteIntoSelection以及保存和关闭文件的命令。
编辑 3 添加 Bing AI 给我的信息:
是的,我“作弊”并向 Bing AI 询问了以下问题:
你能为我写一个 GIMP 的 Script-Fu 脚本吗?它执行以下步骤:
步骤 1,在图像中选择一个矩形。
第 2 步,将该选择复制到剪贴板。第 3 步,将该选区粘贴到同一图像内的另一个区域。第四步,保存修改后的图像吗?
它的答案是...... 搜索: Script-Fu GIMP 脚本在图像中选择一个矩形 Script-Fu GIMP 脚本将所选内容复制到剪贴板 Script-Fu GIMP 脚本将所选内容粘贴到同一图像中的另一个区域 Script-Fu GIMP 脚本保存改变图像
当然!这是 GIMP 的 Script-Fu 中的一个脚本,它执行您提到的步骤:
(define (my-script-fu-script image drawable)
(let* ((x 100) ; x-coordinate of the top-left corner of the rectangle
(y 100) ; y-coordinate of the top-left corner of the rectangle
(width 200) ; width of the rectangle
(height 150) ; height of the rectangle
(selection-channel (car (gimp-image-get-selection image))))
; Step 1: Selecting a rectangle within an image
(gimp-image-select-rectangle image CHANNEL-OP-REPLACE x y width height)
; Step 2: Copying that selection to the clipboard
(gimp-edit-copy drawable)
; Step 3: Pasting that selection to another area within the same image
(gimp-edit-paste drawable TRUE)
; Step 4: Save the altered image
(gimp-file-save RUN-NONINTERACTIVE image drawable "path/to/save/your/altered/image.png" "path/to/save/your/altered/image.png")
; Clean up the selection channel
(gimp-image-remove-channel image selection-channel)))
; Register the script with GIMP
(script-fu-register "my-script-fu-script" ; Name of the script
"<Image>/Filters/My Scripts/My Script-Fu Script" ; Menu location for the script
"Description of my Script-Fu script" ; Description of the script
"Your Name" ; Author name
"Copyright information" ; Copyright information
"Date" ; Date of creation/modification
"" ; Menu label for the script
SF-IMAGE "Image" 0 SF-DRAWABLE "Drawable" 0)
; Run the script by going to Filters > My Scripts > My Script-Fu Script in GIMP.
我仍然对如何获得正确的路径语法等有疑问,但我认为这有帮助......;-)