diff options
author | Glenn Randers-Pehrson <glennrp at users.sourceforge.net> | 2012-07-04 14:30:22 -0500 |
---|---|---|
committer | Glenn Randers-Pehrson <glennrp at users.sourceforge.net> | 2012-07-04 14:30:22 -0500 |
commit | 9b96bff40c7ea5dde1badd4f283caa989fa434f4 (patch) | |
tree | 28843e415d595a48e7670a2950b7a548357d5c81 | |
parent | ca7f016b9e630be60009bf87876ab0128ddfd659 (diff) | |
download | libpng-png2uri-1.0.2.tar.gz |
[png2uri] Added -f|--format option and added filetype detection from thepng2uri-1.0.2
filename extension (default is PNG if no extension).
-rw-r--r-- | README_master.txt | 6 | ||||
-rwxr-xr-x | png2uri | 73 | ||||
-rw-r--r-- | png2uri-README.txt | 28 |
3 files changed, 85 insertions, 22 deletions
diff --git a/README_master.txt b/README_master.txt deleted file mode 100644 index 2f66e3136..000000000 --- a/README_master.txt +++ /dev/null @@ -1,6 +0,0 @@ - -/* - This is the master branch of the "pmt" tree. - Individual projects are in separate branches, - e.g. pngcrush is in the "pngcrush" branch. -*/ @@ -1,6 +1,6 @@ #!/bin/sh # -# png2uri version 1.0.1, July 4, 2012. +# png2uri version 1.0.2, July 4, 2012. # # NO COPYRIGHT RIGHTS ARE CLAIMED TO THIS SOFTWARE. # @@ -23,37 +23,75 @@ # png2uri is a command-line application that creates an HTML "img" tag on # standard output containing a data URI in accordance with RFC-2397, from # a PNG file or from a PNG datastream received from standard input. +# Other formats besides the default, PNG, are supported, via the "-f or +# --format option or, if that option was not supplied, by inspection of the +# filename extension. # -# Usage: png2uri [-u|--uri_only] [file] +# Usage: png2uri [-f type|--format type] [-u|--uri_only] [file] # -# options: -u|--uri_only|--url_only: omit the surrounding "img" tag -# and only write the data URI. +# options: -f|--format TYPE: +# write "image/TYPE" instead of "image/png" in the +# data uri. TYPE can be png, jpg, jpeg, bmp, or gif, +# or any of those in upper case. To write any other +# type, include the complete MIME type as in +# "--format image/x-jng" or "-f audio/mpeg". +# +# -u|--uri_only|--url_only +# omit the surrounding "img" tag and only write the +# data URI. # # Requires /bin/sh and a uuencode(1) that takes the "-m" option to mean -# to encode in base64 according to RFC-3548. +# to encode in base64 according to RFC-3548, and a working "sed". # # If you prefer a web-based converter or a java application, this isn't # it. Use your search engine and look for "png data uri" to find one. # uri_only="false" +format="unknown" while true do case x$1 in + x-f|x--format) + shift + case x$1 in + xpng|xPNG) + format=image/png + ;; + xjpeg|xJPEG|xjpg|xJPG) + format=image/jpeg + ;; + xbmp|xBMP) + format=image/bmp + ;; + xgif|xGIF) + format=image/gif + ;; + *) + format=$1 + ;; + esac + shift + ;; x-u|x--ur*) uri_only="true" shift ;; x) # Convert standard input. + case $format in + unknown) + format=image/png + ;; + esac case $uri_only in true) - echo "data:image/png;base64," + echo "data:$format;base64," uuencode -m ==== | grep -v ==== ;; false) - echo "<img alt=\"PNG\" title=\"PNG\" src=\"data:image/png;base64," + echo "<img alt=\"PNG\" title=\"PNG\" src=\"data:$format;base64," uuencode -m ==== | grep -v ==== echo "\">" ;; @@ -62,13 +100,30 @@ case x$1 in ;; *) # Convert the named file. + case $format in + unknown) + format=image/png + extension=`echo $1 | sed "s/.*\.//"` + case x$extension in + xjpeg|xJPEG|xjpg|xJPG) + format=image/jpeg + ;; + xbmp|xBMP) + format=image/bmp + ;; + xgif|xGIF) + format=image/gif + ;; + esac + ;; + esac case $uri_only in true) - echo "data:image/png;base64," + echo "data:$format;base64," uuencode -m $1 ==== | grep -v ==== ;; false) - echo "<img alt=\"$1\" title=\"$1\" src=\"data:image/png;base64," + echo "<img alt=\"$1\" title=\"$1\" src=\"data:$format;base64," uuencode -m $1 ==== | grep -v ==== echo "\">" ;; diff --git a/png2uri-README.txt b/png2uri-README.txt index 2d26b3304..3f23daea5 100644 --- a/png2uri-README.txt +++ b/png2uri-README.txt @@ -21,12 +21,22 @@ png2uri is a command-line application that creates an HTML "img" tag on standard output containing a data URI, from a PNG file or from standard - input. + input. Other formats besides the default, PNG, are supported, via the "-f + or --format option or, if that option was not supplied, by inspection of + the filename extension. - Usage: png2uri [-u|--uri_only] [file] + Usage: png2uri [-f format|--format format] [-u|--uri_only] [file] - options: -u|--uri_only|--url_only: omit the surrounding "img" tag - and only write the data URI. + options: -f|--format TYPE: + write "image/TYPE" instead of "image/png" in the + data uri. TYPE can be png, jpg, jpeg, bmp, or gif, + or any of those in upper case. To write any other + type, include the complete MIME type as in + "--format image/x-jng" or "-f audio/mpeg". + + -u|--uri_only|--url_only + omit the surrounding "img" tag and only write the + data URI. Requires /bin/sh and a uuencode(1) that takes the "-m" option to mean to encode in base64. A surprising number of machines that I've tried @@ -62,6 +72,10 @@ Implemented "-u" and "--url_only" option. + Version 1.0.2, July 4, 2012: + + Implemented "-f TYPE" and "--format TYPE" option. + TO DO 1. Test on various platforms. The following have been tried @@ -98,10 +112,10 @@ Linux magick.imagemagick.org 3.4.4-3.fc17.x86_64 #1 SMP Tue Jun 26 20:54:56 UTC 2012 x86_64 x86_64 x86_64 GNU/Linux - 2. This script can be trivially modified to support another image format + 2. This script can be trivially modified to support any other MIME type (e.g., change PNG to JPG and "image/png" to "image/jpeg" throughout). - To do: do that, via a "-f/--format jpg|jpeg|png|bmp|gif" option and by - inspecting the filename extension. + To do: do that, via a "-f/--format jpg|jpeg|png|bmp|gif" option (done + as of version 1.0.2) and by inspecting the filename extension (still to do). 3. Find out if the script works on Windows and Mac or can be modified to do so. |