imgsizer - automatically splice in height and width params for HTML IMG tags
imgsizer [-d file] [--document-root file] [-h file] [--help file] [-n] [--no-overwrite] [HTMLFile] [-v file] [--version]
-n, --no-overwwrite, .SH DESCRIPTION
This script will try create such attributes for any IMG tag that lacks them. It will correct existing HEIGHT and WIDTH tags unless either contains a percent (%) sign, in which case the existing dimensions are presumed to be relative and left unaltered.
This script may be called with no arguments. In this mode, it filters HTML presented on stdin to HTML (unaltered except for added or corrected HEIGHT and WIDTH attributes) on stdout. If called with file arguments, it will attempt to transform each file in place. Each argument file is not actually modified until the script completes a successful conversion pass.
The -d <directory> option sets the DocumentRoot, where images with an absolute filename (i.e., ones which contain a leading "/") may be found. If none is specified, the DocumentRoot defaults to the current working directory.
The -n (no-overwrite) opion prevents the program from overwriting existing width and height tags if both are present.
Additional options may also be specified in the environmental variable "IMGSIZER". For example, to avoid typing "imgsizer -d /var/www/docs" each time imgsizer is invoked, you might tell sh (or one of its descendants):
IMGSIZER="-d /var/www/docs"; export IMGSIZER
or, if you use csh:
setenv IMGSIZER "-d /var/www/docs"
This script is written in Python, and thus requires a Python interpreter on the host system. It also requires either the identify(1) utility distributed in the open-source ImageMagick suite of image-display and manipulation tools, or a modern version of file(1) and rdjpgcom(1). These utilities are used to extract sizes from the images; imgsizer itself has no knowledge of graphics formats. The script will handle any image format known to identify(1) including PNG, GIF, JPEG, XBM, XPM, PostScript, BMP, TIFF, and anything else even remotely likely to show up as an inline image.
The -q, -l, and -m options of the 1.0 versions are gone. What they used to do has been made unnecessary by smarter logic.
The code uses regular expressions rather than true HTML/XML parsing. Some perverse but legal constructions, like extraneous space within quoted numeric attributes, will be mangled.
Originally created by Eric S. Raymond <email@example.com>. Additional code contributed by Erik Rossen, Michael C. Toren <firstname.lastname@example.org>, and others. For updates, see <http://www.catb.org/~esr>