By using Gimp's menu, you can automatically crop the image (removing white borders). I have a lot of images with white borders of different sizes. I want to remove them using Gimp in command line but I cannot figure out what the command is.

Anyone has an idea?

Maybe by using ImageMagick?


(Mainly for personal future reference,) using ImageMagick:

convert -trim image.jpg image.jpg

To trim/autocrop the whole directory:

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

Or using find:

find -name "*.jpg" -exec convert -trim "{}" "{}" \;
  • 2
    Also from the ImageMagick suite, mogrify will do the same job as convert, but will overwrite the original instead of making copies. – Yab May 16 '11 at 16:30
  • -transparent does not work for me, but -trim works. Thanks. – Ivan Z. G. Xiao Mar 19 '12 at 22:42

I haven't used this in a while but hopefully it will help. Make a gimp batch script (I call mine crop-png.scm), and put it in ~/.gimp-2.6/scripts/).

(define (crop-png filename)
    (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)

Then save this shell scrip (e.g., pngcrop.sh) and call it on the png files like this: 'pngcrop.sh *.png'


if [ $# -le 0 ]; then
    echo "Usage: $(basename $0) file1.png [file2.png ...]"
    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."
    exit 1

# set the filelist

# # 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)"

# # add the end to quit
# TAIL="-b \"(gimp-quit 0)\""
# #echo $CMD
# eval $CMD

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.