บรรทัดคำสั่งเพื่อครอบตัดรูปภาพโดยอัตโนมัติหรือไม่


18

โดยใช้เมนูของ Gimp คุณสามารถครอบตัดรูปภาพโดยอัตโนมัติ (ลบเส้นขอบสีขาว) ฉันมีภาพจำนวนมากที่มีเส้นขอบสีขาวขนาดแตกต่างกัน ฉันต้องการลบออกโดยใช้ Gimp ในบรรทัดคำสั่ง แต่ฉันไม่สามารถเข้าใจได้ว่าคำสั่งนั้นคืออะไร

ใครมีความคิด?

อาจจะโดยใช้ ImageMagick?

คำตอบ:


38

(ส่วนใหญ่ใช้สำหรับการอ้างอิงในอนาคตส่วนบุคคล) โดยใช้ ImageMagick:

convert -trim image.jpg image.jpg

ในการตัด / autocrop ไดเรกทอรีทั้งหมด:

for a in *.jpg; do convert -trim "$a" "$a"; done

หรือใช้find :

find -name "*.jpg" -exec convert -trim "{}" "{}" \;

2
นอกจากนี้จากชุด ImageMagick mogrifyจะทำงานเช่นเดียวกับการแปลง แต่จะเขียนทับต้นฉบับแทนที่จะทำสำเนา
Yab

-transparent ไม่ทำงานสำหรับฉัน แต่ -trim ทำงาน ขอบคุณ
Ivan ZG Xiao

4

ฉันไม่ได้ใช้สิ่งนี้มาระยะหนึ่งแล้ว แต่หวังว่ามันจะช่วยได้ สร้างสคริปต์ชุด gimp (ฉันเรียกว่าครอบตัด -png.scm) และใส่ไว้ใน ~ / .gimp-2.6 / สคริปต์ /)

(define (crop-png filename)
  (let* 
    (
    (image (car (gimp-file-load RUN-NONINTERACTIVE filename filename)))
    (drawable (car (gimp-image-get-active-layer image)))
    )

  ; crop the image
  (plug-in-autocrop RUN-NONINTERACTIVE image drawable)

  ; save in original png format
  (file-png-save RUN-NONINTERACTIVE image drawable filename filename
       0 6 0 0 0 1 1)

  ; clean up the image
  (gimp-image-delete image)
  )
)

จากนั้นให้บันทึกเชลล์ scrip นี้ (เช่น pngcrop.sh) และเรียกมันบนไฟล์ png ดังนี้: 'pngcrop.sh * .png'

#!/bin/bash

if [ $# -le 0 ]; then
    echo
    echo "Usage: $(basename $0) file1.png [file2.png ...]"
    echo
    echo "  This script uses gimp to autocrop PNG files and"
    echo "  save them to PNG format.  You must have"
    echo "  crop-png.scm installed in your gimp "
    echo "  scripts directory."
    echo
    exit 1
fi

# set the filelist
files=$*

# # set the base command
# CMD="gimp -i -b "

# loop and add each file
for i in ${files[*]} ; do
  # #echo $i
  # ARGS="\"(crop-png \\\"$i\\\")\""
  # CMD="$CMD $ARGS"

  gimp -i -b "(crop-png \"$i\")" -b "(gimp-quit 0)"
done

# # add the end to quit
# TAIL="-b \"(gimp-quit 0)\""
# CMD="$CMD $TAIL"
# 
# #echo $CMD
# eval $CMD
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.