What is ImageMagick
Many people think that they need closed source software to process photos, to create GIF animations, color management and transform images by sizing, cropping and rotation.
ImageMagick can do more than what we expect. It can also read and write images in a variety of formats (over 200) including PNG, JPEG, GIF, HEIC, TIFF, DPX, EXR, WebP, Postscript, PDF, and SVG.
ImageMagick is a free and open source. It’s available in Linux, mac and windows using MinGW .
It’s also available in lib format to make iOS, Windows, Linux Apps and as a php extension called “php7.x-imagick” to build server side image processing.
After installing ImageMagick you should have access to all its tools.
Identify
This tool is necessary to extract image information, especially with -verbose param this command will return all the information of the giving image. Here is an example:
identify -verbose beach-beautiful-bridge-449627.jpg Image: beach-beautiful-bridge-449627.jpg Format: JPEG (Joint Photographic Experts Group JFIF format) Mime type: image/jpeg Class: DirectClass Geometry: 4032x3024+0+0 Resolution: 72x72 Print size: 56x42 Units: PixelsPerInch Colorspace: sRGB Type: TrueColor Base type: Undefined Endianess: Undefined Depth: 8-bit Channel depth: Red: 8-bit Green: 8-bit Blue: 8-bit Channel statistics: Pixels: 12192768 Red: min: 0 (0) max: 255 (1) mean: 70.7684 (0.277523) standard deviation: 67.0167 (0.262811) kurtosis: -0.402136 skewness: 0.753672 entropy: 0.888948 Green: min: 0 (0) max: 255 (1) mean: 158.36 (0.62102) standard deviation: 58.2885 (0.228582) kurtosis: -0.658039 skewness: -0.602582 entropy: 0.962202 Blue: min: 0 (0) max: 255 (1) mean: 209.097 (0.819987) standard deviation: 62.8143 (0.246331) kurtosis: 0.66187 skewness: -1.37573 entropy: 0.767422 Image statistics: Overall: min: 0 (0) max: 255 (1) mean: 146.075 (0.572843) standard deviation: 62.7065 (0.245908) kurtosis: -1.24161 skewness: -0.300494 entropy: 0.872858 Rendering intent: Perceptual Gamma: 0.454545 Chromaticity: red primary: (0.64,0.33) green primary: (0.3,0.6) blue primary: (0.15,0.06) white point: (0.3127,0.329) Matte color: grey74 Background color: white Border color: srgb(223,223,223) Transparent color: none Interlace: None Intensity: Undefined Compose: Over Page geometry: 4032x3024+0+0 Dispose: Undefined Iterations: 0 Compression: JPEG Quality: 73 Orientation: Undefined Properties: date:create: 2019-08-30T09:12:12+00:00 date:modify: 2019-05-03T13:10:37+00:00 icc:copyright: Copyright (c) 1998 Hewlett-Packard Company icc:description: sRGB IEC61966-2.1 icc:manufacturer: IEC http://www.iec.ch icc:model: IEC 61966-2.1 Default RGB colour space - sRGB jpeg:colorspace: 2 jpeg:sampling-factor: 2x2,1x1,1x1 signature: 567a0413315a5c6d41a4323b956452b234470449c7244448b2362c73411a0b57 Profiles: Profile-icc: 3144 bytes Artifacts: verbose: true Tainted: False Filesize: 2.42723MiB Number pixels: 12.1928M Pixels per second: 57.8762MP User time: 0.200u Elapsed time: 0:01.210 Version: ImageMagick 7.0.8-59 Q16 x86_64 2019-08-04 https://imagemagick.org
With this command line, we can extract colors, pixel, copyright and a lot of information of a given image.
Inline Image resize
This is the most used commands on server size when uploading a gallery. Imagine that you copied a RAW images from an SDCard and you want to resize all the images to a specific ratio. you can run this command when you are on the folder:
cd ~/Images mkdir folder magick '*.jpg[widthxheight]' folder/%03d.jpg
Inline Image Crop
The same as resizing, cropping need the X and Y to define which part will start cropping:
magick '*.jpg' -crop widthxheight+x+y thumbnail%03d.jpg
Other Image processing commands
There are a lot of commands that correct gamma, alpha, filter, blur, … etc of a given image. These commands are available with convert and mogrify tools. There is also -auto-gamma, -auto-level, -auto-threshold that accepts Kapur and OTSU methods.
You have to know that you must have a minimum knowledge of image processing fundamentals that help you making a good magick command and treatments. All these commands are well documented and explained here https://imagemagick.org/script/command-line-options.php.
The name of these commands is the same of the theory behind so you can learn about it if you want. Don’t forget that ImageMagick is Open Source and FREE so you can find the codes that makes these functions available to you.