The modImage script is a command line tool that can resize/crop/convert images. It should work on any platform that has python >= 2.4 and the python image library PIL (usually packaged as python2.4-imaging) installed. It can work on a group of images and has a bunch of options to fit your needs. You can download the script here: modImage.py
Here is the usage of the script:
$ ./modimage.py -h usage: modimage.py [options] file1 file2 ... options: -h, --help show this help message and exit -r, --resize Resize the picture to the dimensions -c, --crop Crop the picture to the dimensions -R, --ratio Apply the ratio of width/height to the picture instead of the actual dimensions -W WIDTH, --width=WIDTH Width -H HEIGHT, --height=HEIGHT Height -d, --decrease Only apply resizing if at least one of the dimensions needs to be decreased -i, --increase Only apply resizing if at least one of the dimensions needs to be increased -f FORMAT, --format=FORMAT Text format string that defines the name of the file to save to. It represents a format as understood by Python "%" feature. If the value is "%s", the name of the output file will be the same as the input file. -e EXTENSION, --extension=EXTENSION Extension of the image that will be created. Possible values are 'jpg', 'gif', 'png', 'bmp', 'tif' -q QUALITY, --quality=QUALITY Quality -D DESTINATION, --destination=DESTINATION Destination directory where the new files should be saved.
When invoking the command, the output will show the action, quality, and then give details for each image worked on.
$ ./modImage.py -c -W 1280 -H 1024 Desktop/Screenshot.png Action: crop Quality set to 85 ------------------------------------------------------------ Opened image Desktop/Screenshot.png: Width 1680, Height 1050 Cropping to W 1280 H 1024 Saved to file Desktop/Screenshot_crop_1280_1024..png ------------------------------------------------------------
To crop your wallpapers to the size of your screen:
$ ./modImage.py -c -W 1280 -H 1024 Desktop/Screenshot.png
With the previous example, only images larger than the dimensions are cropped. One annoying problem with desktop background is that it is usually resized to fit the screen. Since a lot of screens are now widescreens, images are distorted. To avoid this problem, you can use the -R option to crop your wallpapers so that they have the same ratio as your screen:
$ ./modImage.py -c -R -W 1920 -H 1200 Screenshot.png
To resize the image to a certain size:
$ ./modImage.py -r -W 800 -H 600 Screenshot.png
To resize to a certain width, and keep the same ratio for the picture:
$ ./modImage.py -r -W 800 Screenshot.png
In the previous example, all images are resized, meaning that pictures smaller than the constraint are made larger. If you want that only pictures larger than the dimensions are made smaller, and keep small pictures as-is, use the -d option.
$ ./modImage.py -r -d -W 800 Screenshot.png
You can combine the -R option with a resizing. What it does is that it resizes either the width or the height of the picture so that it has the same ratio as the one you give.
$ ./modImage.py -r -R -W 800 -H 600 Screenshot.png
It is possible to just convert the picture to a different format with the -e option:
$ ./modImage.py -e jpg Screenshot.png
When performing an action on an image, the program appends some text to the end of the filename of the modified picture. This way the default behavior won’t overwrite the original picture. With the -f option, you can choose an arbitrary format for the name of the file to save to:
$ ./modImage.py -r -W 800 -f "%s_min" Screenshot.png
You can also choose to overwrite the original images by using the “%s” string:
$ ./modImage.py -r -W 800 -f "%s" Screenshot.png
It is possible to apply the modifications to a group of files. The following example resizes all images in the folder “wallpapers” to a width of 500, only for those with a width larger than 500, keeping the same ratio, and converts them to jpg format.
$ ./modImage.py -r -d -W 500 -e jpg wallpapers/*
There are a couple of things I would like to add:
- Options to modify some properties of the picture like brightness, contrast, etc.