โดยใช้เมนูของ Gimp คุณสามารถครอบตัดรูปภาพโดยอัตโนมัติ (ลบเส้นขอบสีขาว) ฉันมีภาพจำนวนมากที่มีเส้นขอบสีขาวขนาดแตกต่างกัน ฉันต้องการลบออกโดยใช้ Gimp ในบรรทัดคำสั่ง แต่ฉันไม่สามารถเข้าใจได้ว่าคำสั่งนั้นคืออะไร
ใครมีความคิด?
อาจจะโดยใช้ ImageMagick?
โดยใช้เมนูของ Gimp คุณสามารถครอบตัดรูปภาพโดยอัตโนมัติ (ลบเส้นขอบสีขาว) ฉันมีภาพจำนวนมากที่มีเส้นขอบสีขาวขนาดแตกต่างกัน ฉันต้องการลบออกโดยใช้ Gimp ในบรรทัดคำสั่ง แต่ฉันไม่สามารถเข้าใจได้ว่าคำสั่งนั้นคืออะไร
ใครมีความคิด?
อาจจะโดยใช้ ImageMagick?
คำตอบ:
(ส่วนใหญ่ใช้สำหรับการอ้างอิงในอนาคตส่วนบุคคล) โดยใช้ 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 "{}" "{}" \;
ฉันไม่ได้ใช้สิ่งนี้มาระยะหนึ่งแล้ว แต่หวังว่ามันจะช่วยได้ สร้างสคริปต์ชุด 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
mogrify
จะทำงานเช่นเดียวกับการแปลง แต่จะเขียนทับต้นฉบับแทนที่จะทำสำเนา