To convert a JPG image to a greyscale black and white photo use the following command: jpegtran -greyscale input.jpg > grey.jpg jpegtran -copy none -progressive -optimize input.jpg > output.jpg The progressive encoding can make the image appear to load faster over slow internet connections, as it renders the image in stages to make it appear it’s being streamed in. The command below does this, while also converting the JPG to use a progressive encoding. To prepare a JPG image which is as small as possible for website performance we should remove all the EXIF data and remove the embedded thumbnail that many cameras generate. Th convert -geometry x400 input.jpg -quality 80 output.jpg In this example we’re resizing the image to a fixed height of 400 pixels. You can also resize the image by fixing the height and maintaining the aspect ration. convert -geometry 700x input.jpg -quality 80 output.jpg We also reduce the quality of the JPG compression to 80%. In this example, we resize the input image to a maximum width of 700 pixels. You can use the convert command from the ImageMagic library to resize an image to a specific width while maintaining the aspect ration for the images height. ↓ ImageMagick - Resize an image maintaining aspect ratio You can rotate an image through 90 or 180 degrees by using the jpegtran command: jpegtran -rotate 90 input.jpg > output.jpg Which will return the dimensions like: input.jpg JPEG 3264x2448 3264x2448+0+0 8-bit sRGB ↓ Get dimensions of an image identify input.jpg Here is a list of the commands I use on a regular basis. With ImageMagick and other command line tools, such as jpegtran, you can accomplish a lot from the terminal. In most cases, you’ll not need a fully blown image editor like Gimp installed on your machine. Maybe you need to rotate or resize an image before posting it to your web site. Recipes for manipulating images from the command lineĪs a web developer there are many instances in which you need to interact with images.
#Imagemagick rotate pdf
Last example: we want convert image to PDF file, we also want to make it as as big as possible on A4 page – we must rotate that image if needed and also use white background.Fiction Technical Drawings Contact ImageMagick - resize, rotate and convert images from the Linux command-line convert INPUT_FILE -gravity center -extent 640x480 OUTPUT_FILE The command will make 640×480 px file with this small image in center. We can also just expand image “workspace”. Hard to exmplain, but it’s very important option – with gravity option we can set postion of other elements on image (text, other images, etc): // Put image in center and make background whiteĬonvert INPUT_FILE -gravity center -background white OUTPUT_FILE Expand workspace: Rotate only if height value is higher than widthĬonvert INPUT_FILE -rotate "+90 OUTPUT_FILE Set gravity Rotate only if width value is higher than heightĬonvert INPUT_FILE -rotate "+90>" OUTPUT_FILE We can rotate images using degrees, but also use conditional rotate – only when height is higher than width or vice versa: // Rotate 90 degreesĬonvert INPUT_FILE -rotate "+90" OUTPUT_FILE We can easily create thumbnails with max-size using convert: // Max 100px widthĬonvert INPUT_FILE -thumbnail 100x OUTPUT_FILEĬonvert INPUT_FILE -thumbnail x100 OUTPUT_FILEĬonvert INPUT_FILE -thumbnail 100x100 OUTPUT_FILE Rotation (and conditional rotation) We can still forcr output format and save file with custom name: convert INPUT_FILE some-other-commands jpg:OUTPU_FILEĬonvert INPUT_FILE some-other-commands png:OUTPU_FILEĬonvert INPUT_FILE some-other-commands pdf:OUTPU_FILE Create thumbnails We don’t want to use alpha channel when we create thumbnails, so it’s nice idea to remove transparency: convert INPUT_FILE -alpha remove OUTPUT_FILE Force output file formatĬonvert always tries detect output format based on name, but sometimes it’s wrong or we just don’t want to use extensions. how detect rotation? It’s simple, you can just remove orientation flag: convert INPUT_FILE -auto-orient OUTPUT_FILE Remove transarency You will don’ see it in image browsers but it can be very frustating.
Phone images can have wrong image orientation – an example is photo form iPhone: good on computer, but 90 degree rotated after upload and display in user browser. Today I have some useful convert commands – it’s “list to remember” for me, but maybe also you will find someting nice? This post is short, because I paste only commands and very short description. Better option is to use external libs like convert (ImageMagick) and Ghostscript. Of course we can use native PHP functions, but it’s very slow. Prepare them to display after user upload, prepare for database, fix dimensions or many other things. I must sometimes modify images and PDF documents in PHP.