Provided by: imgp_2.9-1_all bug

NAME

       imgp - Resize, rotate JPEG and PNG images.

SYNOPSIS

       imgp [OPTIONS] [PATH [PATH ...]]

DESCRIPTION

       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.

OPTIONS

       -h, --help
              Show help text and exit.

       -x, --res=res
              Output resolution in HRESxVRES or percentage.

       -o, --rotate=deg
              Rotate  clockwise  by  a specified angle (in degrees). Negative inputs rotate anti-
              clockwise. Rotation by 0 degree is not allowed.

       -a, --adapt
              Adapt to specified resolution considering the orientation of the image. Disabled by
              default.

       -c, --convert
              Convert  PNG images to JPEG to save on space. The output image is saved with '.jpg'
              extension.

       -e, --eraseexif
              Erase EXIF metadata of JPEG images. Preserved by default.

       -f, --force
              Force to the exact specified resolution. Disabled by default.

       -H, --hidden
              Include hidden (dot) files. By default hidden files are skipped.  -i, --includeimgp
              Process _IMGP files. Risky due to potential race conditions.

       -k, --keep
              Do  not  process  if image hres or vres matches specified hres or vres, or --res is
              100. However, PNG images are converted to JPEG if --convert option is specified and
              JPEG images are made progressive is --progressive option is specified.

       -n, --enlarge
              Enlarge  smaller  images.  By  default  smaller  images are not scaled if specified
              resolution is greater.

       -N --nearest
              Use nearest neighbour interpolation for PNG images instead of default antialias.

       -p, --optimize
              Optimize output images  using  PIL  library  optimization  algorithm.  Disabled  by
              default.

       -P, --progressive
              Save all output JPEG images as progressive, even if the source is not.

       -q, --quality=N
              Save  the  image  with  a specified quality factor N (scale 1-95, default 75). JPEG
              only.

       -m, --mute
              Do not show any operational output.

       -M, --minresres
              minimum resolution in HxV or percentage of --res to resize

       -r, --recurse
              Recursively process sub-directories. By default only  the  specified  directory  is
              processed. Symbolic links are ignored to avoid recursive loops.

       -s, --size=byte
              Minimum  size  in  bytes  required  to  process  an  image. Acts as a guard against
              processing low-resolution images. Default 1024 bytes.

       -w, --overwrite
              Overwrite the source images. By  default  an  output  image  is  saved  with  _IMGP
              appended to the source image name.
              NOTE:  If  overwrite  and  convert options are used together, source PNG images are
              deleted.

       -d, --debug
              Enable debugging.

EXAMPLES

       1.  Convert some images and directories:

              $ 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

       2.  Scale an image by 75% and overwrite the source image:

              $ imgp -x 75 -w ~/image.jpg
              /home/testuser/image.jpg
              1366x767 -> 1025x575
              120968 bytes -> 45040 bytes

       3.  Rotate an image clockwise by 90 degrees:

              $ imgp -o 90 ~/image.jpg
              120968 bytes -> 72038 bytes

       4.  Adapt the images in the current directory to 1366x1000 resolution.
           Visit all  directories  recursively,  overwrite  source  images,  ignore  images  with
           matching hres or vres but convert PNG images to JPEG.

              $ imgp -x 1366x1000 -wrack

       5.  Set hres=800 and adapt vres maintaining the ratio.

              $ imgp -x 800x0
              Source omitted. Processing current directory...

              ./image1.jpg
              1366x911 -> 800x534
              69022 bytes -> 35123 bytes

              ./image2.jpg
              1050x1400 -> 800x1067
              458092 bytes -> 78089 bytes

       6.  Process images greater than 50KiB only:

              $ imgp -wrackx 1366x1000 -s 51200

       7.  Generate a 64px adaptive thumbnail of the last modified file in the current dir:

              #!/usr/bin/env sh

              thumb64 ()
              {
                  pop=$(ls -1t | head -1)
                  imgp -acx 64x64 "$pop"
              }

AUTHORS

       Arun Prakash Jana <engineerarun@gmail.com>

HOME

       https://github.com/jarun/imgp

REPORTING BUGS

       https://github.com/jarun/imgp/issues

LICENSE

       Copyright © 2016-2023 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.