home | tech | misc | code | bookmarks (broken) | contact | README

# ImageMagick notes

ImageMagick is a a set of wonderful program that manipulates images in batch. The tool I most use from ImageMagick is convert. I personally recommend the Usage page for lots of examples.

Below are some one line commands on how to use it to solve common problems.

## Snippets

### Crop ("cut part of") an image

$convert -crop 1100x760+150+40 input.png output.png  Pay attention to the geometry part. The syntax of the command is: $ convert -crop {width}x{height}+{x}+{y} input_file output_file


$convert -scale 50% input.png output.png  ### Remove EXIF content from an image $ convert input.png -strip output.png


This is specially useful to take off information that editors don't recognize and can lead to confusing, like the rotation of the camera.

I thank this link to this tip.

### Trim space around an image

There is the -trim option to remove all pixels that are the same colour of the border pixels:

$convert -trim input.png output.png  You might also want to leave a border, like a white one: $ convert -trim -border 10%x10% -borderColor White input.png output.png


This and this links helped me to solve this problem.

### Convert PDF to JPG and preserve quality

Try the -density option. If you don't use it, the result image can have lower quality, even if you use -scale or -resize. Example:

$convert -density 200 input.pdf output.jpg  This page helped me. ### Change brightness $ convert -modulate <number> input.jpg output.jpg


<number> is the brightness level. 100 is the normal image level so, if you want it to be more bright, chose a number that is greater than 100. 0 will make the image black.

### Croping pages of a PDF document

Maybe (for reasons we'll not explain) you have a scanned PDF document whose canves is bigger than the document part. It might be a good idea to trim that but you don't have Adobe Acrobat or other proprietary tool. Let's use ImageMagick!

Something like that may work:

$convert -density 300 -crop 3610x2790+1340+0 +repage input.pdf output.pdf  Note that the +repage operator comes later. Unfortunatelly it might be that the resulting PDF is too big (somebody know why? If so, please, let me know), so it might be a good idea to convert them to images first and then converting them back to PDF: $ convert -density 300 -crop 3610x2790+1340+0 input.pdf output.png


You might have to check the other of generated files because, because, if it generates 11 files, those will be:

$ls output-*.png output-0.png output-1.png output-10.png output-2.png output-3.png output-4.png output-5.png output-6.png output-7.png output-8.png output-9.png  Realize that the shell sorts output-10.png just after output-1.png, which can give you sort problems. Rename file correctly and convert them back to PDF: $ convert +repage output-*.png output.pdf


See that the +repage operator is important. See in this thread more about that.

### Converting XCF (Gimp) files to PNG and merging all layers

\$ convert -flatten input.xcf output.png