IMGP(1) | User Commands | IMGP(1) |
imgp - Resize, rotate JPEG and PNG images.
imgp [OPTIONS] [PATH [PATH ...]]
imgp is a multiprocessing command line image resizer and rotator for JPEG and PNG images.
Features
* resize by percentage or resolution
* rotate clockwise by specified angle
* adaptive resize considering orientation
* brute force to a resolution
* optimize images to save more space
* limit processing by minimum image size
* convert PNG to JPEG
* erase exif metadata
* specify output JPEG image quality
* force smaller to larger resize
* process directories recursively
* overwrite source image option
Adaptive mode
- If the specified and image orientations are same [(H >= V and
h > v) or (H < V and h < v)], the image is resized with the longer
specified side as reference.
- In case of cross orientation [(H >= V and h <= v) or (H < V and h
>= v)], the image is resized with the shorter specified side as
reference. Same as non-adaptive.
For example, if an image has a resolution of 2048x1365 and is
being resized to 1366x768:
- In regular mode (default), output image resolution will be 1152x768
- In adaptive mode, output image resolution will be 1366x910
Operational notes
- Multiple files and directories can be specified as source. If
PATH is omitted, the current directory is processed.
- Output image names are appended with _IMGP if '--overwrite' option is
not used. By default _IMGP files are not processed. Doing so may lead
to potential race conditions when '--overwrite' option is used.
- PNG files with lower target hres/vres are not converted (even if '--convert'
is used). Run 'imgp --convert (*.png)' separately to convert those.
- Resize and rotate are lossy operations. For additional reductions in size
try '--optimize' and '--eraseexif' options.
- Option '--optimize' is slower, the encoder makes an extra pass over the
image in order to select optimal encoder settings.
- Progressive JPEG images are saved as progressive.
$ imgp -x 1366x768 ~/ ~/Pictures/image3.png ~/Downloads/ /home/testuser/image1.png 3840x2160 -> 1365x768 11104999 bytes -> 1486426 bytes /home/testuser/image2.jpg 2048x1365 -> 1152x768 224642 bytes -> 31421 bytes /home/testuser/Pictures/image3.png 1920x1080 -> 1365x768 2811155 bytes -> 1657474 bytes /home/testuser/Downloads/image4 2048x1365 -> 1152x768 224642 bytes -> 31421 bytes
$ imgp -x 75 -w ~/image.jpg /home/testuser/image.jpg 1366x767 -> 1025x575 120968 bytes -> 45040 bytes
$ imgp -o 90 ~/image.jpg 120968 bytes -> 72038 bytes
$ imgp -x 1366x1000 -wrack
$ imgp -x 800x0 Source omitted. Processing current directory... ./image1.jpg 1366x911 -> 800x534 69022 bytes -> 35123 bytes ./image2.jpg 1050x1400 -> 800x1067 458092 bytes -> 78089 bytes
$ imgp -wrackx 1366x1000 -s 51200
#!/usr/bin/env sh thumb64 () {
pop=$(ls -1t | head -1)
imgp -acx 64x64 "$pop" }
Arun Prakash Jana <engineerarun@gmail.com>
https://github.com/jarun/imgp
https://github.com/jarun/imgp/issues
Copyright © 2016-2020 Arun Prakash Jana <engineerarun@gmail.com>
License GPLv3+: GNU GPL version 3 or later
<http://gnu.org/licenses/gpl.html>.
This is free software: you are free to change and redistribute it. There is NO
WARRANTY, to the extent permitted by law.
01 Dec 2020 | Version 2.8 |