Görüntüyü otomatik olarak kırpmak için komut satırı?


18

Gimp menüsünü kullanarak görüntüyü otomatik olarak kırpabilirsiniz (beyaz kenarlıkları kaldırarak). Farklı boyutlarda beyaz kenarlıkları olan birçok resmim var. Komut satırında Gimp kullanarak bunları kaldırmak istiyorum ama komutun ne olduğunu anlayamıyorum.

Bir fikri olan var mı?

Belki ImageMagick kullanarak?

Yanıtlar:


38

(Temel olarak kişisel gelecek referansı için) ImageMagick kullanarak:

convert -trim image.jpg image.jpg

Tüm dizini kırpmak / otomatik kırpmak için:

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

Veya find kullanarak :

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

2
Ayrıca ImageMagick paketinden, mogrifydönüştürmeyle aynı işi yapar, ancak kopya yapmak yerine orijinalin üzerine yazar.
Yab

- şeffaf benim için çalışmıyor, ama - trim çalışıyor. Teşekkürler.
Ivan ZG Xiao

4

Bunu bir süredir kullanmadım ama umarım yardımcı olur. Bir gimp toplu komut dosyası oluşturun (mine crop-png.scm diyorum) ve ~ / .gimp-2.6 / scripts / dizinine koyuyorum).

(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)
  )
)

Sonra bu kabuk komut dosyasını (örn. Pngcrop.sh) kaydedin ve png dosyalarına şu şekilde çağırın: '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
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.