Let's say I have an image of an object against a white background. I want to crop so that the image fills the available space. This takes 10px off:

convert original.png -shave 10x10 shaved.png

How would I implement something like this that detects the edges of the object, thus cropping a variable number of pixels from each side?

  • $\begingroup$ I'm closing this question as off-topic because it appears to be about using image processing software, not about computer graphics programming and research. This might be on topic on Super User. $\endgroup$ Nov 16, 2015 at 9:49

1 Answer 1


Try -trim instead of -shave:

convert original.png -trim trimmed.png

See the docs for this and other options.

  • $\begingroup$ Thanks, the docs recommended a fuzz factor. Combined with shaving border artifacts it worked perfectly. convert original.png -shave 5x5 -fuzz 1% -trim +repage trimmed.png $\endgroup$
    – Escher
    Nov 12, 2015 at 19:13

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