Browse files

adding in all files.

  • Loading branch information...
0 parents commit 01f2a4532af79567f15eb01db9dffa68c70b2c69 @paulirish committed Jan 8, 2011
Showing with 14,208 additions and 0 deletions.
  1. +31 −0 .gitignore
  2. +405 −0 .htaccess
  3. BIN WhyW3SchoolsSucks-backup.doc
  4. +1 −0 WhyW3SchoolsSucks.html
  5. BIN apple-touch-icon.png
  6. +3 −0 build/build.properties
  7. +430 −0 build/build.xml
  8. +73 −0 build/createproject.sh
  9. +52 −0 build/default.properties
  10. BIN build/tools/htmlcompressor-0.9.3.jar
  11. BIN build/tools/jpegtran.exe
  12. +21 −0 build/tools/optipng-0.6.4-exe/LICENSE.txt
  13. +2 −0 build/tools/optipng-0.6.4-exe/OptiPNG.url
  14. +32 −0 build/tools/optipng-0.6.4-exe/doc/caveat.txt
  15. +318 −0 build/tools/optipng-0.6.4-exe/doc/history.txt
  16. +677 −0 build/tools/optipng-0.6.4-exe/doc/manual.html
  17. BIN build/tools/optipng-0.6.4-exe/doc/manual.pdf
  18. +280 −0 build/tools/optipng-0.6.4-exe/doc/manual.txt
  19. +634 −0 build/tools/optipng-0.6.4-exe/doc/png_optimization_guide.html
  20. +325 −0 build/tools/optipng-0.6.4-exe/doc/thanks.html
  21. +57 −0 build/tools/optipng-0.6.4-exe/doc/todo.txt
  22. BIN build/tools/optipng-0.6.4-exe/optipng.exe
  23. BIN build/tools/yuicompressor-2.4.2.jar
  24. +8 −0 css/handheld.css
  25. +33 −0 css/style.css
  26. BIN favicon.ico
  27. +2 −0 images/.gitignore
  28. +55 −0 index.html
  29. +270 −0 index_clean.html
  30. +1,171 −0 index_clean_do_not_edit.html
  31. +947 −0 index_temp_sean.html
  32. +946 −0 index_temp_sean_do_not_edit.html
  33. +13 −0 js/libs/dd_belatedpng.js
  34. +7,179 −0 js/libs/jquery-1.4.4.js
  35. +167 −0 js/libs/jquery-1.4.4.min.js
  36. +30 −0 js/libs/modernizr-1.6.min.js
  37. +2 −0 js/mylibs/.gitignore
  38. +13 −0 js/plugins.js
  39. +26 −0 js/script.js
  40. +5 −0 robots.txt
31 .gitignore
@@ -0,0 +1,31 @@
+# Numerous always-ignore extensions
+*.diff
+*.err
+*.orig
+*.log
+*.rej
+*.swo
+*.swp
+*.vi
+*~
+
+# OS or Editor folders
+.DS_Store
+.cache
+.project
+.settings
+nbproject
+thumbs.db
+
+# Dreamweaver added files
+_notes
+dwsync.xml
+
+# Folders to ignore
+.hg
+.svn
+publish
+.idea
+
+# files
+build/buildinfo.properties
405 .htaccess
@@ -0,0 +1,405 @@
+# Apache configuration file
+# httpd.apache.org/docs/2.2/mod/quickreference.html
+
+# Note .htaccess files are an overhead, this logic should be in your Apache config if possible
+# httpd.apache.org/docs/2.2/howto/htaccess.html
+
+# Techniques in here adapted from all over, including:
+# Kroc Camen: camendesign.com/.htaccess
+# perishablepress.com/press/2006/01/10/stupid-htaccess-tricks/
+# Sample .htaccess file of CMS MODx: modxcms.com
+
+
+###
+### If you run a webserver other than apache, consider:
+### github.com/paulirish/html5-boilerplate-server-configs
+###
+
+
+
+# ----------------------------------------------------------------------
+# Better website experience for IE users
+# ----------------------------------------------------------------------
+
+# Force the latest IE version, in various cases when it may fall back to IE7 mode
+# github.com/rails/rails/commit/123eb25#commitcomment-118920
+# Use ChromeFrame if it's installed for a better experience for the poor IE folk
+
+<IfModule mod_setenvif.c>
+ <IfModule mod_headers.c>
+ BrowserMatch MSIE ie
+ Header set X-UA-Compatible "IE=Edge,chrome=1" env=ie
+ </IfModule>
+</IfModule>
+
+<IfModule mod_headers.c>
+# Because X-UA-Compatible isn't sent to non-IE (to save header bytes),
+# We need to inform proxies that content changes based on UA
+ Header append Vary User-Agent
+# Cache control is set only if mod_headers is enabled, so that's unncessary to declare
+</IfModule>
+
+
+# ----------------------------------------------------------------------
+# Cross-domain AJAX requests
+# ----------------------------------------------------------------------
+
+# Serve cross-domain ajax requests, disabled.
+# enable-cors.org
+# code.google.com/p/html5security/wiki/CrossOriginRequestSecurity
+
+# <IfModule mod_headers.c>
+# Header set Access-Control-Allow-Origin "*"
+# </IfModule>
+
+
+
+# ----------------------------------------------------------------------
+# Webfont access
+# ----------------------------------------------------------------------
+
+# allow access from all domains for webfonts
+# alternatively you could only whitelist
+# your subdomains like "sub.domain.com"
+
+<FilesMatch "\.(ttf|otf|eot|woff|font.css)$">
+ <IfModule mod_headers.c>
+ Header set Access-Control-Allow-Origin "*"
+ </IfModule>
+</FilesMatch>
+
+
+
+# ----------------------------------------------------------------------
+# Proper MIME type for all files
+# ----------------------------------------------------------------------
+
+# audio
+AddType audio/ogg oga ogg
+
+# video
+AddType video/ogg ogv
+AddType video/mp4 mp4
+AddType video/webm webm
+
+# Proper svg serving. Required for svg webfonts on iPad
+# twitter.com/FontSquirrel/status/14855840545
+AddType image/svg+xml svg svgz
+AddEncoding gzip svgz
+
+# webfonts
+AddType application/vnd.ms-fontobject eot
+AddType font/truetype ttf
+AddType font/opentype otf
+AddType font/woff woff
+
+# assorted types
+AddType image/x-icon ico
+AddType image/webp webp
+AddType text/cache-manifest manifest
+AddType text/x-component htc
+AddType application/x-chrome-extension crx
+AddType application/x-xpinstall xpi
+AddType application/octet-stream safariextz
+
+
+
+# ----------------------------------------------------------------------
+# Allow concatenation from within specific js and css files
+# ----------------------------------------------------------------------
+
+# e.g. Inside of script.combined.js you could have
+# <!--#include file="jquery-1.4.4.js" -->
+# <!--#include file="jquery.idletimer.js" -->
+# and they would be included into this single file
+
+# this is not in use in the boilerplate as it stands. you may
+# choose to name your files in this way for this advantage
+# or concatenate and minify them manually.
+# Disabled by default.
+
+# <FilesMatch "\.combined\.(js|css)$">
+# Options +Includes
+# SetOutputFilter INCLUDES
+# </FilesMatch>
+
+
+
+# ----------------------------------------------------------------------
+# gzip compression
+# ----------------------------------------------------------------------
+
+<IfModule mod_deflate.c>
+
+
+# force deflate for mangled headers developer.yahoo.com/blogs/ydn/posts/2010/12/pushing-beyond-gzipping/
+<IfModule mod_setenvif.c>
+ SetEnvIfNoCase ^(Accept-EncodXng|X-cept-Encoding|X{15}|~{15}|-{15})$ ^((gzip|deflate)\s,?\s(gzip|deflate)?|X{4,13}|~{4,13}|-{4,13})$ HAVE_Accept-Encoding
+ RequestHeader append Accept-Encoding "gzip,deflate" env=HAVE_Accept-Encoding
+</IfModule>
+
+# html, txt, css, js, json, xml, htc:
+<IfModule filter_module>
+ FilterDeclare COMPRESS
+ FilterProvider COMPRESS DEFLATE resp=Content-Type /text/(html|css|javascript|plain|x(ml|-component))/
+ FilterProvider COMPRESS DEFLATE resp=Content-Type /application/(javascript|json|xml|x-javascript)/
+ FilterChain COMPRESS
+ FilterProtocol COMPRESS change=yes;byteranges=no
+</IfModule>
+
+<IfModule !mod_filter.c>
+ # Legacy versions of Apache
+ AddOutputFilterByType DEFLATE text/html text/plain text/css application/json
+ AddOutputFilterByType DEFLATE text/javascript application/javascript application/x-javascript
+ AddOutputFilterByType DEFLATE text/xml application/xml text/x-component
+</IfModule>
+
+# webfonts and svg:
+ <FilesMatch "\.(ttf|otf|eot|svg)$" >
+ SetOutputFilter DEFLATE
+ </FilesMatch>
+</IfModule>
+
+
+
+# ----------------------------------------------------------------------
+# Expires headers (for better cache control)
+# ----------------------------------------------------------------------
+
+# these are pretty far-future expires headers
+# they assume you control versioning with cachebusting query params like
+# <script src="application.js?20100608">
+# additionally, consider that outdated proxies may miscache
+# www.stevesouders.com/blog/2008/08/23/revving-filenames-dont-use-querystring/
+
+# if you don't use filenames to version, lower the css and js to something like
+# "access plus 1 week" or so
+
+<IfModule mod_expires.c>
+ ExpiresActive on
+
+# Perhaps better to whitelist expires rules? Perhaps.
+ ExpiresDefault "access plus 1 month"
+
+# cache.manifest needs re-requests in FF 3.6 (thx Remy ~Introducing HTML5)
+ ExpiresByType text/cache-manifest "access plus 0 seconds"
+
+# your document html
+ ExpiresByType text/html "access plus 0 seconds"
+
+# data
+ ExpiresByType text/xml "access plus 0 seconds"
+ ExpiresByType application/xml "access plus 0 seconds"
+ ExpiresByType application/json "access plus 0 seconds"
+
+# rss feed
+ ExpiresByType application/rss+xml "access plus 1 hour"
+
+# favicon (cannot be renamed)
+ ExpiresByType image/x-icon "access plus 1 week"
+
+# media: images, video, audio
+ ExpiresByType image/gif "access plus 1 month"
+ ExpiresByType image/png "access plus 1 month"
+ ExpiresByType image/jpg "access plus 1 month"
+ ExpiresByType image/jpeg "access plus 1 month"
+ ExpiresByType video/ogg "access plus 1 month"
+ ExpiresByType audio/ogg "access plus 1 month"
+ ExpiresByType video/mp4 "access plus 1 month"
+ ExpiresByType video/webm "access plus 1 month"
+
+# webfonts
+ ExpiresByType font/truetype "access plus 1 month"
+ ExpiresByType font/opentype "access plus 1 month"
+ ExpiresByType font/woff "access plus 1 month"
+ ExpiresByType image/svg+xml "access plus 1 month"
+ ExpiresByType application/vnd.ms-fontobject "access plus 1 month"
+
+# css and javascript
+ ExpiresByType text/css "access plus 1 month"
+ ExpiresByType application/javascript "access plus 1 month"
+ ExpiresByType text/javascript "access plus 1 month"
+
+ Header append Cache-Control "public"
+</IfModule>
+
+
+
+# ----------------------------------------------------------------------
+# ETag removal
+# ----------------------------------------------------------------------
+
+# Since we're sending far-future expires, we don't need ETags for
+# static content.
+# developer.yahoo.com/performance/rules.html#etags
+FileETag None
+
+
+
+# ----------------------------------------------------------------------
+# Stop screen flicker in IE on CSS rollovers
+# ----------------------------------------------------------------------
+
+# The following directives stop screen flicker in IE on CSS rollovers - in
+# combination with the "ExpiresByType" rules for images (see above). If
+# needed, un-comment the following rules.
+
+# BrowserMatch "MSIE" brokenvary=1
+# BrowserMatch "Mozilla/4.[0-9]{2}" brokenvary=1
+# BrowserMatch "Opera" !brokenvary
+# SetEnvIf brokenvary 1 force-no-vary
+
+
+
+# ----------------------------------------------------------------------
+# Cookie setting from iframes
+# ----------------------------------------------------------------------
+
+# Allow cookies to be set from iframes (for IE only)
+# If needed, uncomment and specify a path or regex in the Location directive
+
+# <IfModule mod_headers.c>
+# <Location />
+# Header set P3P "policyref=\"/w3c/p3p.xml\", CP=\"IDC DSP COR ADM DEVi TAIi PSA PSD IVAi IVDi CONi HIS OUR IND CNT\""
+# </Location>
+# </IfModule>
+
+
+
+# ----------------------------------------------------------------------
+# Start rewrite engine
+# ----------------------------------------------------------------------
+
+# Turning on the rewrite engine is necessary for the following rules and features.
+
+<IfModule mod_rewrite.c>
+ RewriteEngine On
+</IfModule>
+
+
+
+# ----------------------------------------------------------------------
+# Suppress or force the "www." at the beginning of URLs
+# ----------------------------------------------------------------------
+
+# The same content should never be available under two different URLs - especially not with and
+# without "www." at the beginning, since this can cause SEO problems (duplicate content).
+# That's why you should choose one of the alternatives and redirect the other one.
+
+# By default option 1 (no "www.") is activated. Remember: Shorter URLs are sexier.
+# no-www.org/faq.php?q=class_b
+
+# If you rather want to use option 2, just comment out all option 1 lines
+# and uncomment option 2.
+# IMPORTANT: NEVER USE BOTH RULES AT THE SAME TIME!
+
+# ----------------------------------------------------------------------
+
+# Option 1:
+# Rewrite "www.domain.com -> domain.com"
+
+<IfModule mod_rewrite.c>
+ RewriteCond %{HTTPS} !=on
+ RewriteCond %{HTTP_HOST} ^www\.(.+)$ [NC]
+ RewriteRule ^(.*)$ http://%1/$1 [R=301,L]
+</IfModule>
+
+# ----------------------------------------------------------------------
+
+# Option 2:
+# To rewrite "domain.com -> www.domain.com" uncomment the following lines.
+# Be aware that the following rule might not be a good idea if you
+# use "real" subdomains for certain parts of your website.
+
+# <IfModule mod_rewrite.c>
+# RewriteCond %{HTTPS} !=on
+# RewriteCond %{HTTP_HOST} !^www\..+$ [NC]
+# RewriteCond %{HTTP_HOST} (.+)$ [NC]
+# RewriteRule ^(.*)$ http://www.%1/$1 [R=301,L]
+# </IfModule>
+
+
+
+# ----------------------------------------------------------------------
+# Prevent SSL cert warnings
+# ----------------------------------------------------------------------
+
+# Rewrite secure requests properly to prevent SSL cert warnings, e.g. prevent
+# https://www.domain.com when your cert only allows https://secure.domain.com
+# Uncomment the following lines to use this feature.
+
+# <IfModule mod_rewrite.c>
+# RewriteCond %{SERVER_PORT} !^443
+# RewriteRule (.*) https://example-domain-please-change.com.com/$1 [R=301,L]
+# </IfModule>
+
+
+
+# ----------------------------------------------------------------------
+# Prevent 404 errors for non-existing redirected folders
+# ----------------------------------------------------------------------
+
+# without -MultiViews, Apache will give a 404 for a rewrite if a folder of the same name does not exist
+# e.g. /blog/hello : webmasterworld.com/apache/3808792.htm
+
+Options -MultiViews
+
+
+
+# ----------------------------------------------------------------------
+# custom 404 page
+# ----------------------------------------------------------------------
+
+ErrorDocument 404 /404.html
+
+
+
+# ----------------------------------------------------------------------
+# UTF-8 encoding
+# ----------------------------------------------------------------------
+
+# use utf-8 encoding for anything served text/plain or text/html
+AddDefaultCharset utf-8
+
+# force utf-8 for a number of file formats
+AddCharset utf-8 .html .css .js .xml .json .rss
+
+
+
+# ----------------------------------------------------------------------
+# A little more security
+# ----------------------------------------------------------------------
+
+
+# Do we want to advertise the exact version number of Apache we're running?
+# Probably not.
+ServerTokens Prod
+
+
+# "-Indexes" will have Apache block users from browsing folders without a default document
+# Usually you should leave this activated, because you shouldn't allow everybody to surf through
+# every folder on your server (which includes rather private places like CMS system folders).
+# Options -Indexes
+
+
+
+# If your server is not already configured as such, the following directive
+# should be uncommented in order to set PHP's register_globals option to OFF.
+# This closes a major security hole that is abused by most XSS (cross-site
+# scripting) attacks. For more information: http://php.net/register_globals
+#
+# IF REGISTER_GLOBALS DIRECTIVE CAUSES 500 INTERNAL SERVER ERRORS :
+#
+# Your server does not allow PHP directives to be set via .htaccess. In that
+# case you must make this change in your php.ini file instead. If you are
+# using a commercial web host, contact the administrators for assistance in
+# doing this. Not all servers allow local php.ini files, and they should
+# include all PHP configurations (not just this one), or you will effectively
+# reset everything to PHP defaults. Consult www.php.net for more detailed
+# information about setting PHP directives.
+
+# php_flag register_globals Off
+
+
+
+
BIN WhyW3SchoolsSucks-backup.doc
Binary file not shown.
1 WhyW3SchoolsSucks.html
1 addition, 0 deletions not shown because the diff is too large. Please use a local Git client to view these changes.
BIN apple-touch-icon.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
3 build/build.properties
@@ -0,0 +1,3 @@
+# build.properties file defines overrides for default.properties
+# Explaination: This file should be created by each user as and when he or she needs to override particular values.
+# Consequently, it should not be placed under version control.
430 build/build.xml
@@ -0,0 +1,430 @@
+<?xml version="1.0"?>
+<project name="Boilerplate Build" default="build" basedir="../"> <!-- one back since we're in build/ -->
+ <!-- load property files -->
+
+ <property file="build/build.properties"/>
+ <property file="build/default.properties"/>
+
+
+
+
+
+ <!-- there are three different options for html optimization:
+ buildkit : all html whitespace retained. inline script/style minified
+ htmlclean (default) : minor html optimizations (extra quotes removed). inline script/style minified
+ htmlcompress : html minification
+ -->
+
+ <target name="basics" depends="clean,rev,current-number,copy,usemin,js.all,css,html" description="Concats files, runs YUI Compressor on them and makes magic happen."/>
+
+ <target name="text" depends="basics,htmlclean" description="Concats files, runs YUI Compressor on them and makes magic happen."/>
+ <target name="buildkit" depends="basics,htmlbuildkit,imagespng,imagesjpg" description="Concats files, runs YUI Compressor, optimizes images. There is much rejoicing."/>
+ <target name="build" depends="basics,htmlclean,imagespng,imagesjpg" description="Concats files, runs YUI Compressor, optimizes images. There is much rejoicing."/>
+ <target name="minify" depends="basics,htmlcompress,imagespng,imagesjpg" description="Concats files, runs YUI Compressor, optimizes images. There is much rejoicing."/>
+
+
+
+
+
+ <!-- Increase the current build number by one and set build date -->
+ <!-- as per http://www.ibmpressbooks.com/articles/article.aspx?p=519946 -->
+ <target name="rev">
+ <echo message="Rev the build number..."/>
+ <propertyfile file="./${dir.build}/${build.info}" comment="Build Information File - DO NOT CHANGE">
+ <entry key="build.number" type="int" default="0000" operation="+" pattern="0000"/>
+ <entry key="build.date" type="date" value="now" pattern="dd.MM.yyyy HH:mm"/>
+ </propertyfile>
+ <property file="./${dir.build}/${build.info}"/>
+ </target>
+
+ <target name="current-number">
+ <echo>Current build number: ${build.number}</echo>
+ </target>
+
+
+
+ <!--
+ Wipe the old
+
+ -->
+ <target name="clean">
+ <echo message="Cleaning up previous build directory..."/>
+ <delete dir="./${dir.publish}/"/>
+ </target>
+
+
+
+
+ <!--
+ Copy in the new stuff
+
+ -->
+
+ <target name="copy" depends="clean, rev">
+ <echo message="Copying over new files..."/>
+ <copy todir="./${dir.publish}">
+ <fileset dir="./">
+ <exclude name=".gitignore"/>
+ <exclude name=".project"/>
+ <exclude name=".settings"/>
+ <exclude name="README.markdown"/>
+ <exclude name="**/.git/**"/>
+ <exclude name="**/.svn/**"/>
+ <exclude name=".gitignore"/>
+ <exclude name="*.conf*"/>
+ <exclude name="mime.types"/>
+ <exclude name="**/${dir.build}/**"/>
+ <exclude name="**/${dir.test}/**"/>
+ <exclude name="**/${dir.demo}/**"/>
+ <exclude name="**/${dir.js}/profiling/**"/>
+
+ <!-- configurable excludes -->
+ <exclude name="**/${file.exclude}/**"/>
+ </fileset>
+ </copy>
+ </target>
+
+
+
+
+ <!-- Optimize javascript files
+ -->
+ <target name="js.all" depends="js.remove.console, js.all.min, js.main.concat, js.libs.concat, js.concat.scripts, js.minifyonly.min, js.delete"></target>
+
+
+ <!--
+ JS: Concat primary scripts
+
+ -->
+ <target name="js.main.concat" depends="js.all.min">
+ <echo message="Concatenating JS scripts"/>
+ <concat destfile="./${dir.publish}/${dir.js}/scripts-${build.number}.js">
+ <fileset dir="./${dir.publish}/">
+ <include name="**/${dir.js.main}/*.min.js"/>
+ <exclude name="**/${dir.js.mylibs}/*.js"/>
+ <exclude name="**/${dir.js.libs}/*.js"/>
+ </fileset>
+ </concat>
+ </target>
+
+
+
+ <!--
+ JS: Concat library scripts
+
+
+ -->
+ <target name="js.libs.concat" depends="js.all.min">
+ <echo message="Concatenating JS libraries"/>
+ <concat destfile="./${dir.publish}/${dir.js}/libs-${build.number}.js">
+ <fileset dir="./${dir.publish}/${dir.js.mylibs}/">
+ <include name="**/*.min.js"/>
+ </fileset>
+ </concat>
+ </target>
+
+ <!-- Comment out console.log commands from main scripts -->
+ <target name="js.remove.console" description="Comment out console.log lines">
+ <echo>Commenting out console.log lines</echo>
+
+ <replaceregexp match="(console.log\(.*\))" replace="/\*\1\*/" flags="g" >
+ <fileset dir="./${dir.publish}/${dir.js}/">
+ <include name="**/*.js"/>
+ <exclude name="**/*.min.js"/>
+ </fileset>
+ </replaceregexp>
+
+ </target>
+
+
+
+ <!--
+ JS: Minify primary scripts and libraries
+
+ -->
+ <target name="js.all.min" depends="copy">
+ <echo message="Minifying concatenated script- and library-file"/>
+ <apply executable="java" parallel="false">
+ <fileset dir="./${dir.publish}/${dir.js}">
+ <include name="**/*.js"/>
+ <exclude name="**/*.min.js"/>
+ <exclude name="**/${dir.js.libs}/*.js"/>
+ </fileset>
+ <arg line="-jar"/>
+ <arg path="./${dir.tools}/${tool.yuicompressor}"/>
+ <srcfile/>
+ <arg line="--line-break"/>
+ <arg line="4000"/>
+ <arg line="-o"/>
+ <mapper type="glob" from="*.js" to="../${dir.publish}/${dir.js}/*.min.js"/>
+ <targetfile/>
+ </apply>
+ </target>
+
+
+ <!--
+ JS: Minify helper files.
+ these files do not get concat'd with anyone else.
+ they will get a build number in their filename though
+
+ -->
+ <target name="js.minifyonly.min">
+ <echo message="Minifying helper JS files"/>
+
+ <apply executable="java" parallel="false">
+ <fileset dir="./${dir.publish}/${dir.js.libs}/" includes="*.js" excludes="*.min.js"/>
+ <arg line="-jar"/>
+ <arg path="./${dir.tools}/${tool.yuicompressor}"/>
+ <srcfile/>
+ <arg line="-o"/>
+ <mapper type="glob" from="*.js" to="../${dir.publish}/${dir.js.libs}/*-${build.number}.min.js"/>
+ <targetfile/>
+ </apply>
+ </target>
+
+
+ <!--
+ JS: Concat mylibs- and scripts- into a normal and a debug file.
+ Then rename them to s/-all//
+
+ -->
+ <target name="js.concat.scripts" if="build.concat.scripts">
+
+
+ <echo message="Concatenating library file with main script file"/>
+ <concat destfile="./${dir.publish}/${dir.js}/scripts-${build.number}.min.js">
+ <fileset dir="./${dir.publish}/${dir.js}/">
+ <include name="libs-${build.number}.js"/>
+ <include name="scripts-${build.number}.js"/>
+ </fileset>
+ </concat>
+
+ <echo message="Concatenating library file with main debug script file"/>
+ <concat destfile="./${dir.publish}/${dir.js}/scripts-${build.number}-debug.min.js">
+ <fileset dir="./${dir.publish}/${dir.js}/">
+ <include name="libs-${build.number}.js"/>
+ <include name="scripts-${build.number}-debug.js"/>
+ </fileset>
+ </concat>
+
+ <echo>About to rename scripts-all to scripts</echo>
+ <!--
+ <move file="./${dir.publish}/${dir.js}/scripts-all-${build.number}.min.js" tofile="./${dir.publish}/${dir.js}/scripts-${build.number}.min.js"/>
+ <move file="./${dir.publish}/${dir.js}/scripts-all-${build.number}-debug.min.js" tofile="./${dir.publish}/${dir.js}/scripts-${build.number}-debug.min.js"/>
+ -->
+ </target>
+
+
+ <!--
+ JS: Delete unoptimized files (If set)
+
+ -->
+ <target name="js.delete" if="build.delete.unoptimized" depends="js.if.concat.scripts">
+ <echo message="Deleting unoptimized files"/>
+
+
+ <delete file="./${dir.publish}/${dir.js}/scripts-${build.number}.js"/>
+
+ <delete file="./${dir.publish}/${dir.js}/scripts-${build.number}-debug.js"/>
+
+ <!--
+ <delete dir="./${dir.publish}/${dir.js.lib}/"/>
+ <delete file="./${dir.publish}/${dir.js}/libs-${build.number}.js"/>
+
+
+ this guy probably COULD be on but I think it's better if we keep him off for now. ^pi
+ <delete includeemptydirs="true">
+ <fileset dir="./${dir.publish}/${dir.js.libs}/" includes="*.js" excludes="*.min.js"/>
+ </delete>
+
+ -->
+ </target>
+
+ <!-- JS, Delete concatenated libs file (only if concat.scripts and delete.unoptimized are defined) -->
+ <target name="js.if.concat.scripts" if="build.delete.unoptimized, build.concat.scripts">
+ <delete file="./${dir.publish}/${dir.js}/libs-${build.number}.min.js"/>
+ <delete file="./${dir.publish}/${dir.js}/scripts-${build.number}.min.js"/>
+ </target>
+
+
+ <!--
+ CSS: concat style.css into ... one file. :)
+ run it through yui compressor for minification.
+ replace the reference to it in index.html
+
+ -->
+ <target name="css" depends="copy">
+ <echo message="Minifying css..."/>
+ <concat destfile="./${dir.publish}/${dir.css}/style-${build.number}.css">
+ <fileset file="./${dir.css}/style.css"/>
+ </concat>
+ <apply executable="java" parallel="false">
+ <fileset dir="./${dir.publish}/${dir.css}/" includes="style-${build.number}.css"/>
+ <arg line="-jar"/>
+ <arg path="./${dir.tools}/${tool.yuicompressor}"/>
+ <srcfile/>
+ <arg line="-o"/>
+ <mapper type="glob" from="style-${build.number}.css" to="../${dir.publish}/${dir.css}/style-${build.number}.min.css"/>
+ <targetfile/>
+ </apply>
+ <replace token="style.css" value="style-${build.number}.min.css" file="./${dir.publish}/${file.index}"/>
+ <!-- <delete file="./publish/css/style-${build.number}.css"/> -->
+ </target>
+
+ <!--
+ IMAGES: png
+ -->
+ <target name="imagespng" depends="copy">
+ <echo message="Optimizing images"/>
+ <apply executable="optipng" osfamily="unix">
+ <arg value="-o7"/>
+ <fileset dir="./${dir.publish}/">
+ <include name="**/*.png"/>
+ </fileset>
+ </apply>
+ <apply executable="optipng" osfamily="mac">
+ <arg value="-o7"/>
+ <fileset dir="./${dir.publish}/">
+ <include name="**/*.png"/>
+ </fileset>
+ </apply>
+ <apply executable="tools/optipng-0.6.4-exe/optipng.exe" osfamily="windows">
+ <arg value="-o7"/>
+ <fileset dir="./${dir.publish}/">
+ <include name="**/*.png"/>
+ </fileset>
+ </apply>
+ </target>
+
+ <!--
+ IMAGES: jpg
+ -->
+ <target name="imagesjpg" depends="copy">
+ <echo message="Clean up those jpgs..."/>
+ <apply executable="jpegtran" osfamily="unix">
+ <fileset dir="./${dir.publish}/${dir.images}/" includes="*.jpg"/>
+ <arg value="-copy"/>
+ <!-- change 'all to 'none' in order to strip metadata
+ only do so if you own copyright to the image -->
+ <arg value="all"/>
+ <srcfile/>
+ <targetfile/>
+ <!-- you may want to flag optimized images. If so, do it here. Otherwise change this to type="identity" -->
+ <mapper type="glob" from="*.jpg" to="../${dir.publish}/${dir.images}/*.jpg"/>
+ </apply>
+ <apply executable="jpegtran" osfamily="mac">
+ <fileset dir="./${dir.publish}/${dir.images}/" includes="*.jpg"/>
+ <arg value="-copy"/>
+ <!-- change 'all to 'none' in order to strip metadata
+ only do so if you own copyright to the image -->
+ <arg value="all"/>
+ <srcfile/>
+ <targetfile/>
+ <!-- you may want to flag optimized images. If so, do it here. Otherwise change this to type="identity" -->
+ <mapper type="glob" from="*.jpg" to="../${dir.publish}/${dir.images}/*.jpg"/>
+ </apply>
+ <apply executable="tools/jpegtran.exe" osfamily="windows">
+ <fileset dir="./${dir.publish}/${dir.images}/" includes="*.jpg"/>
+ <arg value="-copy"/>
+ <!-- change 'all to 'none' in order to strip metadata
+ only do so if you own copyright to the image -->
+ <arg value="all"/>
+ <srcfile/>
+ <targetfile/>
+ <!-- you may want to flag optimized images. If so, do it here. Otherwise change this to type="identity" -->
+ <mapper type="glob" from="*.jpg" to="../${dir.publish}/${dir.images}/*.jpg"/>
+ </apply>
+ </target>
+
+
+
+ <!--
+ HTML: switch to minified jquery in the html
+
+ -->
+ <target name="usemin" depends="copy">
+ <echo message="Switching to minified js files..."/>
+
+ <!-- switch from a regular jquery to minified-->
+ <replaceregexp match="jquery-(\d|\d(\.\d)+)\.js" replace="jquery-\1.min.js" file="./${dir.publish}/${file.index}" flags=""/>
+ <!-- switch any google CDN reference to minified -->
+ <replaceregexp match="(\d|\d(\.\d)+)\/jquery\.js" replace="\1/jquery.min.js" file="./${dir.publish}/${file.index}" flags=""/>
+
+ <echo>kill off those versioning flags: ?v=2</echo>
+ <replaceregexp match='\?v=\d+">' replace='">' file="./${dir.publish}/${file.index}" flags=""/>
+
+ </target>
+
+
+
+ <!--
+ HTML: replaces scripts with single concat'd one.
+ removes profiling code
+ -->
+
+ <target name="html" depends="">
+ <echo message="Clean up the html..."/>
+ <!-- style.css replacement handled as a replacetoken above -->
+ <replaceregexp match="&lt;!-- scripts concatenated [\d\w\s\W]*?!-- end concatenated and minified scripts--&gt;" file="./${dir.publish}/${file.index}" replace="&lt;script src='${dir.js}/scripts-${build.number}.min.js\'&gt;&lt;/script&gt;" flags="m"/>
+ <replaceregexp match="&lt;!-- yui profiler[\d\w\s\W]*?end profiling code --&gt;" file="./${dir.publish}/${file.index}" replace=" " flags="m"/>
+
+ <!--[! use comments like this one to avoid having them get minified -->
+
+ </target>
+
+ <!--
+ HTML Minification. There are three levels. htmlclean is default.
+ -->
+ <target name="htmlbuildkit" depends="html" >
+ <apply executable="java" parallel="false" force="true" dest="./${dir.publish}/" >
+ <fileset dir="./${dir.publish}/" includes="*.html"/>
+ <arg value="-jar"/>
+ <arg path="./${dir.build}/tools/htmlcompressor-0.9.3.jar"/>
+ <arg value="--preserve-comments"/>
+ <arg line="--preserve-multi-spaces"/>
+ <arg line="--type html"/>
+ <arg line="--compress-js"/>
+ <arg line="--compress-css"/>
+ <srcfile/>
+ <arg value="-o"/>
+ <mapper type="glob" from="*.html" to="../${dir.publish}/*.html"/>
+ <targetfile/>
+ </apply>
+ </target>
+
+ <target name="htmlclean" depends="html" >
+ <apply executable="java" parallel="false" force="true" dest="./${dir.publish}/" >
+ <fileset dir="./${dir.publish}/" includes="*.html"/>
+ <arg value="-jar"/>
+ <arg path="./${dir.build}/tools/htmlcompressor-0.9.3.jar"/>
+ <arg line="--type html"/>
+ <arg line="--preserve-multi-spaces"/>
+ <arg line="--remove-quotes"/>
+ <arg line="--compress-js"/>
+ <arg line="--compress-css"/>
+ <srcfile/>
+ <arg value="-o"/>
+ <mapper type="glob" from="*.html" to="../${dir.publish}/*.html"/>
+ <targetfile/>
+ </apply>
+ </target>
+
+ <target name="htmlcompress" depends="html" >
+ <apply executable="java" parallel="false" force="true" dest="./${dir.publish}/" >
+ <fileset dir="./${dir.publish}/" includes="*.html"/>
+ <arg value="-jar"/>
+ <arg path="./${dir.build}/tools/htmlcompressor-0.9.3.jar"/>
+ <arg line="--type html"/>
+ <arg line="--remove-quotes"/>
+ <arg line="--compress-js"/>
+ <arg line="--compress-css"/>
+ <srcfile/>
+ <arg value="-o"/>
+ <mapper type="glob" from="*.html" to="../${dir.publish}/*.html"/>
+ <targetfile/>
+ </apply>
+ </target>
+
+
+
+</project>
73 build/createproject.sh
@@ -0,0 +1,73 @@
+#!/usr/bin/env bash
+
+#Generate a new project from your HTML5 Boilerplate repo clone
+#Created 2010-10-13, Rick Waldron
+
+
+##first run
+# $ cd html5-boilerplate/build
+# $ sudo chmod a+x createproject.sh && ./createproject.sh
+
+##usage
+# $ cd html5-boilerplate/build
+# $ ./createproject.sh
+
+echo "To create a new html5-boilerplate project, enter a new directory name:"
+
+read name
+
+cd ..
+
+webroot=$PWD
+
+SRC=$webroot"/html5-boilerplate"
+DST=$webroot"/../"$name
+
+if [ -d "$DST" ]
+then
+ echo "$DST exists"
+else
+ #create new project
+ mkdir $name
+
+ #sucess message
+ echo "Created Directory: $DST"
+
+ cd $SRC
+
+ #copy to new project directory
+ #http://en.wikipedia.org/wiki/Cpio#Copy
+ #http://cybertiggyr.com/cpio-howto/
+ #http://www.cyberciti.biz/faq/how-do-i-use-cpio-command-under-linux/
+ find . -depth -print0 | cpio -0pdmv $DST
+
+
+ #sucess message
+ echo "Created Project: $DST"
+
+ # delete that temporary folder
+ rm -r $name
+
+ #move into new project
+ cd $DST
+
+ #in Bourne Again Shell, the cpio was copying
+ #the whole dir into the new project, along with the contents
+ if [ -d "$DST/html5-boilerplate" ]
+ then
+ rm -r html5-boilerplate
+ fi
+
+ if [ -e "$DST/createproject.sh" ]
+ then
+ rm -r createproject.sh
+ fi
+
+ if [ -e "$DST/.git" ]
+ then
+ rm -rf .git
+ fi
+
+
+fi
+
52 build/default.properties
@@ -0,0 +1,52 @@
+# Build options ---------------------------------
+# Customize these to fit your needs
+
+# If set, concat libraries with main scripts file, producing single script file
+build.concat.scripts = true
+# If set, delete unoptimized files
+build.delete.unoptimized = true
+
+
+# Exclude file filter for publishing (can't be empty)
+# For example: ...<add example here>...
+file.exclude = nonexistentfile
+
+
+
+
+# Project structure -----------------------------
+
+# Directory names
+dir.publish = publish
+dir.build = build
+dir.tools = ${dir.build}/tools
+dir.test = test
+dir.demo = demo
+dir.js = js
+# Main JS script folder (Will be concatenated and minified)
+dir.js.main = ${dir.js}
+# JS libraries folder (Will be concatenated and minified)
+dir.js.mylibs = ${dir.js}/mylibs
+# Folder that should be only minified, not concatenated together
+dir.js.libs = ${dir.js}/libs
+dir.css = css
+dir.images = images
+
+# Files
+# all the html/php whatever that the build script will be mucking with.
+# For example: ...<add example here>...
+file.index = index.html
+
+
+
+
+
+# Hardcore build options... --------------------
+
+# Build Versioning
+build.info = buildinfo.properties
+
+# Tools
+tool.yuicompressor = yuicompressor-2.4.2.jar
+
+
BIN build/tools/htmlcompressor-0.9.3.jar
Binary file not shown.
BIN build/tools/jpegtran.exe
Binary file not shown.
21 build/tools/optipng-0.6.4-exe/LICENSE.txt
@@ -0,0 +1,21 @@
+
+Copyright (C) 2001-2010 Cosmin Truta.
+
+This software is provided 'as-is', without any express or implied
+warranty. In no event will the author(s) be held liable for any damages
+arising from the use of this software.
+
+Permission is granted to anyone to use this software for any purpose,
+including commercial applications, and to alter it and redistribute it
+freely, subject to the following restrictions:
+
+1. The origin of this software must not be misrepresented; you must not
+ claim that you wrote the original software. If you use this software
+ in a product, an acknowledgment in the product documentation would be
+ appreciated but is not required.
+
+2. Altered source versions must be plainly marked as such, and must not
+ be misrepresented as being the original software.
+
+3. This notice may not be removed or altered from any source distribution.
+
2 build/tools/optipng-0.6.4-exe/OptiPNG.url
@@ -0,0 +1,2 @@
+[InternetShortcut]
+URL=http://optipng.sourceforge.net/
32 build/tools/optipng-0.6.4-exe/doc/caveat.txt
@@ -0,0 +1,32 @@
+
+CAVEAT EMPTOR
+=============
+(known bugs, problems or limitations)
+
+
+Legend
+------
+ - Minor bug, limitation, or incompletely-implemented feature.
+ ! Bug that may lead to a behavior different than expected,
+ but without any serious consequence.
+!! Bug that may cause accidental data loss, security hazard,
+ or another serious consequence.
+ * Another problematic issue, that is not necessarily a bug.
+
+
+Version 0.6.4 14-mar-2010
+-------------
+ - Lossless image reductions are not completely implemented.
+ (This does NOT affect the integrity of PNG files.)
+ Here are the missing pieces:
+ - The color palette reductions are implemented only partially.
+ - The bit depth reductions below 8, for grayscale images, are
+ not implemented yet.
+
+ - TIFF support is limited to uncompressed, PNG-compatible
+ color spaces (grayscale, RGB and RGBA).
+
+ - Metadata is not imported from the external image formats.
+
+ - There is no support for pipes or streams.
+
318 build/tools/optipng-0.6.4-exe/doc/history.txt
@@ -0,0 +1,318 @@
+
+OptiPNG - Revision history
+==========================
+
+Legend
+------
+++ Added or improved performance-related feature
+ (might improve compression ratio or processing speed).
+ + Added or improved feature.
+ - Removed feature.
+ ! Fixed bug.
+!! Fixed dangerous bug
+ (data/metadata loss or serious security hazard).
+ * Other modification (e.g. architectural improvement).
+
+
+Version 0.6.4 14-mar-2010
+-------------
+ + Upgraded libpng to version 1.4.1-optipng [private]
+ + Upgraded zlib to version 1.2.4-optipng [private]
+ + Added the option -nx.
+ * Clarified the behavior of -nz and the relation between -nz and -o0.
+ + Added a filesystem check (resolving normalized paths, symlinks, etc.)
+ to better detect when the output overwrites the input.
+ + Enabled automatic wildcard expansion (i.e. globbing) on Win64.
+ ! Fixed a Unicode build issue on Windows.
+ (Thanks to Fabien Barbier for the fix.)
+
+
+Version 0.6.3 18-may-2009
+-------------
+ + Upgraded libpng to version 1.2.36-optipng [private]
+!! Fixed a use-after-free error in the GIF reader.
+ (Thanks to Roy Tam for the report, and to Bryan McQuade for the fix.)
+ ! Flushed the output log to display the current trial in real time.
+ This only worked on Windows in the previous version.
+ (Thanks to Vincent Lefevre for the fix.)
+ ! Fixed an error in reporting unrecognized file formats.
+ (Thanks to [LaughingMan] for the report.)
+ - Removed the requirement to "fix" TIFF files that contain unrecognized
+ metadata. (Thanks to Piotr Bandurski for the suggestion.)
+ * Simplified the option abbreviation rules. Option names can now be
+ abbreviated to their shortest unique prefix, as in X11 applications.
+
+
+Version 0.6.2 9-nov-2008
+-------------
+ + Upgraded libpng to version 1.2.33-optipng [private]
+++ Put back a speed optimization, accidentally removed in version 0.6,
+ allowing singleton trials (-o1) to be bypassed in certain conditions.
+!! Fixed an array overflow in the BMP reader.
+!! Fixed the loss of private chunks under the -snip option.
+ + Produced a more concise on-screen output in the non-verbose mode.
+ (Thanks to Vincent Lefevre for the contribution.)
+ * Added a programming interface to the optimization engine, in order
+ to facilitate the development of PNG-optimizing GUI apps and plugins.
+
+
+Version 0.6.1 20-jul-2008
+-------------
+ * Upgraded cexcept to version 2.0.1.
+ + Added a configure script, to be used instead of unix-secure.mak.
+ ! Fixed a build issue that occured when using libpng from the system.
+ (Thanks to Nelson A. de Oliveira for the report.)
+ ! Fixed processing when image reduction yields an output larger than
+ the original. (Thanks to Michael Krishtopa for the report.)
+ ! Fixed behavior of -preserve.
+ (Thanks to Bill Koch for the report.)
+ - Removed displaying of partial progress when abandoning IDATs under
+ the -v option. The percentages displayed were not very accurate.
+
+
+Version 0.6 15-jun-2008
+-----------
+ + Upgraded libpng to version 1.2.29-optipng [private]
+++ Implemented grayscale(alpha)-to-palette reductions.
+++ Improved conversion of bKGD info during RGB-to-palette reductions.
+ (Thanks to Matthew Fearnley for the contribution.)
+!! Fixed conversion of bKGD and tRNS during 16-to-8-bit reductions.
+ (Thanks to Matthew Fearnley for the report.)
+ + Added support for compressed BMP (incl. PNG-compressed BMP, you bet!)
+ + Improved the speed of reading raw PNM files.
+ + Recognized PNG digital signatures (dSIG) and disabled optimization
+ in their presence, to preserve their integrity.
+ + Allowed the user to enforce the optimization of dSIG'ed files.
+ + Recognized APNG animation files and disabled reductions to preserve
+ their integrity.
+ + Added the -snip option, to allow the user to "snip" one image out of
+ a multi-image file, such as animated GIF, multi-page TIFF, or APNG.
+ (Thanks to [LaughingMan] for the suggestion.)
+ + Improved recovery of PNG files with incomplete IDAT.
+!! Fixed a crash triggered by the use of -log on some platforms.
+ (Thanks to Stefan Bruns for the fix.)
+ ! Fixed behavior of -out and -dir when the input is already optimized.
+ (Thanks to Christian Davideck for the report.)
+ * Provided more detailed image information at the start of processing.
+ * Provided a more detailed summary at the end of processing, under the
+ presence of the -v option and/or the occurence of exceptional events.
+
+
+Version 0.5.5 28-jan-2007
+-------------
+ + Upgraded libpng to version 1.2.15-optipng [private]
+++ Used a previously-missed RGB-to-palette reduction opportunity
+ for images containing 256 distinct colors.
+ (Thanks to Joachim Kluge for the report.)
+!! Fixed conversion of bKGD info during RGB-to-palette reductions.
+ (Thanks to Matthew Fearnley for the report.)
+ ! Fixed pre-computation of iterations.
+ (Thanks to Matthew Fearnley for the report.)
+ ! Eliminated a false alarm when processing RGB images with tRNS
+ in Unix-secure mode. (Thanks to Till Maas for the report, and
+ thanks to Nelson A. de Oliveira for the fix.)
+ ! Fixed behavior of -out and -dir when changing interlacing.
+ (Thanks to Martin Packman for the report.)
+ ! Fixed the behavior of "-dir [DRIVE]:" on Windows.
+
+
+Version 0.5.4 11-aug-2006
+-------------
+ + Added user options -out and -dir, to specify the name of
+ the output file or directory.
+ (Thanks to Alexander Lucas for the suggestion.)
+ * Added support for builds based on the system-supplied libpng.
+ (Thanks to Nelson A. de Oliveira for the valuable help.)
+
+
+Version 0.5.3 23-jul-2006
+-------------
+ + Upgraded libpng to version 1.2.12-optipng [private]
+ + Implemented basic support for TIFF (grayscale, RGB and RGBA,
+ uncompressed).
+++ Avoided the redundant trial when the search space is singular
+ (e.g. when running "optipng -o1 example.tif").
+ + Prevented accidental file corruption when using option "-log".
+ ! Fixed (again) a small typo in the online help.
+
+
+Version 0.5.2 7-may-2006
+-------------
+ + Improved handling of inexact PNM-to-PNG conversions.
+ ! Fixed a typo that was breaking the build on some Unix platforms.
+ (Thanks to Aaron Reitz for the report.)
+
+
+Version 0.5.1 30-apr-2006
+-------------
+++ Implemented bit depth reduction for palette images.
+ + Upgraded libpng to version 1.2.10-optipng [private]
+ + Improved the BMP support.
+ + Added a Unix man page.
+ (Thanks to Nelson A. de Oliveira for the contribution.)
+ + Allowed abbreviation of command-line options.
+ + Changed user option -log to accept a file name as an argument.
+ * Changed user option -no to -simulate.
+ ! Fixed an error in handling .bak files on Unix.
+ (Thanks to Adam Szojda and Nelson A. de Oliveira for the report.)
+ ! Fixed a small typo in the help screen.
+ (Thanks to A. Costa and Nelson A. de Oliveira for the report.)
+
+
+Version 0.5 14-jan-2006
+-----------
+++ Added pngxtern, a libpng add-on for external image format
+ support: BMP (uncompressed), GIF, PNM.
+ (This was incorporated from OptiPNG-Plus.)
+++ Implemented RGB(A)-to-palette reductions.
+ + Upgraded zlib to version 1.2.3-optipng [private]
+ + Upgraded libpng to version 1.2.8-optipng [private]
+ + If trials are ended prematurely, detailed progression is only
+ reported under the user option -v.
+ - Removed reporting of some IDAT sizes that exceeded the optimum.
+ (This was NOT a bug, but a "feature" that confused some users.)
+ ! Fixed an RGB-to-gray reduction problem that occured under some
+ specific background colors.
+ * Added support for builds based on the system-supplied zlib.
+ (Thanks to Nelson A. de Oliveira for the suggestion.)
+ * Modified LICENSE. It is now a verbatim spell of the zlib license.
+
+
+Version 0.4.8 10-may-2005
+-------------
+ + Upgraded libpng to version 1.0.18-optipng [private]
+!! Fixed a palette-to-gray reduction problem that occurred when an
+ RGB triple had both an alpha below max, and an alpha equal to max.
+ (Thanks to Nicolas Le Gland for the report.)
+ + Packed the Windows executable using UPX.
+ (Thanks to [Warriant] for the suggestion.)
+
+
+Version 0.4.7 30-oct-2004
+-------------
+!! Fixed a palette-to-gray reduction problem that occurred when
+ having more than one alpha value per RGB triple.
+ (Thanks to Larry Hastings for the report.)
+ ! Fixed the progress display, when processing very large images.
+ + Displayed the image info at the beginning of processing.
+++ Reduced the IDAT buffer size, allowing abandoned trials to
+ terminate earlier in some circumstances.
+ + Implemented error recovery, when PLTE is too small, and/or
+ tRNS is too large.
+
+
+Version 0.4.6 25-oct-2004
+-------------
+ + Upgraded zlib to version 1.2.2-optipng [private]
+ + Upgraded libpng to version 1.0.17-optipng [private]
+ This provides safe handling of some ill-formed PNG images.
+ + Rewrote makefiles.
+ + Added project workspace to build under Visual C++ 6.0,
+ integrated with memory leak detection.
+++ Implemented a premature termination of trials, in the moment
+ when IDAT grows beyond the smallest size previously achieved.
+ (Thanks to Larry Hastings for the idea.)
+ + Changed the order of trials, to perform the trials that are
+ more likely to yield a smaller IDAT, at the beginning.
+ + Added user option -full to avoid the premature termination of
+ trials; useful for debugging.
+
+
+Version 0.4.5 31-may-2004
+-------------
+ + Upgraded zlib to version 1.2.1.f-cos2 [private]
+ + Upgraded libpng to version 1.0.15-cos2 [private]
+ * Changed user option -nx to -nz.
+ + Added user option to preserve file attributes (file mode,
+ time stamp, etc.) when applicable.
+ (Thanks to Nehal Mistry for the suggestion.)
+ ! Fixed an incorrect initialization of zlib window bits.
+ ! Displayed an error message when the search space was invalid.
+!! Fixed a palette reduction problem for bit depths below 8.
+ ! Eliminated memory leaks.
+ (Thanks to Niels de Koning for the help.)
+
+
+Version 0.4.4 20-nov-2003
+-------------
+ + Upgraded zlib to version 1.2.1
+++ Added support for the Z_RLE strategy.
+
+
+Version 0.4.3 12-aug-2003
+-------------
+ ! Fixed a reduction problem that caused an assertion failure.
+ (Thanks to Dimitri Papadopoulos for the report.)
+
+
+Version 0.4.2 30-jun-2003
+-------------
+++ Enhanced the support for palette size reductions:
+ trailing sterile palette entries are removed even when
+ the bit depth is below 8.
+ ! Enforced recompression when the new IDAT has the same size,
+ but other chunks have been reduced.
+ + Displayed the IDAT size difference as a percentage.
+ (Thanks to Nehal Mistry for the suggestion.)
+
+
+Version 0.4.1 19-may-2003
+-------------
+ ! Fixed the removal of trailing sterile palette entries.
+
+
+Version 0.4 12-may-2003
+-----------
+++ Added support for palette-to-gray reductions.
+++ Added partial support for palette size reductions.
+ ! Fixed the reporting of invalid command-line options.
+ ! Eliminated a spurious warning when the zlib window size
+ is set to 256.
+
+
+Version 0.3.2 11-mar-2003
+-------------
+ + Added support for updating sBIT during reductions.
+ ! Fixed the reduction of the alpha channel.
+
+
+Version 0.3.1 25-feb-2003
+-------------
+ ! Fixed the encoding of interlaced images when they become
+ larger than the input.
+ (Thanks to James H. Cloos, Jr. for the report.)
+ + Added the HISTORY document (this file).
+
+
+Version 0.3 24-feb-2003
+-----------
+This is the first public release of OptiPNG.
+++ Added support for iterating through zlib memory levels.
+++ Added support for collapsing IDAT, avoiding calls to
+ png_set_compression_buffer_size().
+ This reduces the memory requirements.
+++ Added support for lossless reduction of the image type:
+ RGB[A] -> G[A], RGBA -> RGB, GA -> G
+ + Added many user options.
+ + Added documentation.
+
+
+Version 0.2 27-dec-2001
+-----------
+ + Added support for optimization level presets.
+ + Added user option for changing the interlacing.
+
+
+Version 0.1 17-dec-2001
+-----------
+ + Added support for chunk I/O status annotation.
+ This improves the speed of OptiPNG significantly.
+ * Structured exception handling is provided by cexcept.
+
+
+Version 0.0 10-dec-2001
+-----------
+This is the very first version of OptiPNG.
+It compresses IDAT repeatedly, iterating through zlib compression
+and strategy levels, and PNG filters.
+
677 build/tools/optipng-0.6.4-exe/doc/manual.html
@@ -0,0 +1,677 @@
+<!-- Creator : groff version 1.19.2 -->
+<!-- CreationDate: Sun Mar 14 12:29:16 2010 -->
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
+"http://www.w3.org/TR/html4/loose.dtd">
+<html>
+<head>
+<meta name="generator" content="groff -Thtml, see www.gnu.org">
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<meta name="Content-Style" content="text/css">
+<style type="text/css">
+ p { margin-top: 0; margin-bottom: 0; }
+ pre { margin-top: 0; margin-bottom: 0; }
+ table { margin-top: 0; margin-bottom: 0; }
+</style>
+<title>OPTIPNG</title>
+
+</head>
+<body>
+
+<h1 align=center>OPTIPNG</h1>
+
+<hr>
+
+
+<a name="NAME"></a>
+<h2>NAME</h2>
+
+
+<p style="margin-left:11%; margin-top: 1em"><b>OptiPNG</b>
+&minus; Advanced optimization program for <b>Portable
+Network Graphics (PNG)</b></p>
+
+<a name="SYNOPSIS"></a>
+<h2>SYNOPSIS</h2>
+
+
+<p style="margin-left:11%; margin-top: 1em"><b>optipng</b>
+[<b>&minus;?</b> | <b>&minus;h</b> | <b>&minus;help</b>]
+<b><br>
+optipng</b> [<i>options...</i>] <i>files...</i></p>
+
+<a name="DESCRIPTION"></a>
+<h2>DESCRIPTION</h2>
+
+
+<p style="margin-left:11%; margin-top: 1em">The
+<b>OptiPNG</b> program shall attempt to <i>optimize</i> PNG
+files, i.e. reduce their size to a minimum, without losing
+any information. In addition, this program shall perform a
+suite of auxiliary functions like integrity checks, metadata
+recovery and pixmap-to-PNG conversion.</p>
+
+<p style="margin-left:11%; margin-top: 1em">The
+optimization attempts are not guaranteed to succeed. Valid
+PNG files that cannot be optimized by this program are
+normally left intact; their size will not grow. The user may
+request to override this default behavior.</p>
+
+<a name="FILES"></a>
+<h2>FILES</h2>
+
+
+<p style="margin-left:11%; margin-top: 1em">The input files
+are raster image files encoded either in PNG format (the
+native format), or in an external format. The currently
+supported external formats are GIF, BMP, PNM and TIFF.</p>
+
+<p style="margin-left:11%; margin-top: 1em"><b>OptiPNG</b>
+processes each image file given in the command line as
+follows:</p>
+
+<p style="margin-left:11%; margin-top: 1em">&minus; If it
+is in PNG format:</p>
+
+<p style="margin-left:22%; margin-top: 1em">Attempt to
+optimize the given file in-place. If optimization is
+successful, or if the option <b>&minus;force</b> is in
+effect, replace the original file with its optimized
+version. The original file is backed up if the option
+<b>&minus;keep</b> is in effect.</p>
+
+<p style="margin-left:11%; margin-top: 1em">&minus; If it
+is in an external format:</p>
+
+<p style="margin-left:22%; margin-top: 1em">Create an
+optimized PNG version of the given file. The output file
+name is composed from the original file name and the
+<tt>.png</tt> extension.</p>
+
+<a name="OPTIONS"></a>
+<h2>OPTIONS</h2>
+
+
+<p style="margin-left:11%; margin-top: 1em"><b>General
+options <br>
+-?</b>, <b>&minus;h</b>, <b>&minus;help</b></p>
+
+<p style="margin-left:22%;">Show a complete summary of
+options.</p>
+
+<p style="margin-left:11%;"><b>&minus;o</b>
+<i>level</i></p>
+
+<p style="margin-left:22%;">Select the optimization level.
+<br>
+The optimization level 0 enables a set of optimization
+operations that require minimal effort. There will be no
+changes to image attributes like bit depth or color type,
+and no recompression of existing IDAT datastreams. <br>
+The optimization level 1 enables a single IDAT compression
+trial. The trial chosen is what <b>OptiPNG</b> <i>thinks</i>
+it&rsquo;s probably the most effective. <br>
+The optimization levels 2 and higher enable multiple IDAT
+compression trials; the higher the level, the more trials.
+<br>
+The behavior and the default value of this option may change
+across different program versions. Use the option
+<b>&minus;h</b> to see the details pertaining to your
+specific version.</p>
+
+<p style="margin-left:11%;"><b>&minus;dir</b>
+<i>directory</i></p>
+
+<p style="margin-left:22%;">Write output file(s) to
+<i>directory</i>.</p>
+
+<table width="100%" border=0 rules="none" frame="void"
+ cellspacing="0" cellpadding="0">
+<tr valign="top" align="left">
+<td width="11%"></td>
+<td width="6%">
+
+
+
+<p style="margin-top: 1em" valign="top"><b>&minus;fix</b></p> </td>
+<td width="5%"></td>
+<td width="78%">
+
+
+<p style="margin-top: 1em" valign="top">Enable error
+recovery. This option has no effect on valid input
+files.</p> </td>
+</table>
+
+<p style="margin-left:22%;">The program will spend a
+reasonable amount of effort to recover as much data as
+possible, without increasing the output file size, but the
+success cannot be generally guaranteed. The program may even
+increase the file size, e.g., by reconstructing missing
+critical data. Under this option, integrity shall take
+precedence over file size. <br>
+When this option is not used, the invalid input files are
+left unprocessed.</p>
+
+<table width="100%" border=0 rules="none" frame="void"
+ cellspacing="0" cellpadding="0">
+<tr valign="top" align="left">
+<td width="11%"></td>
+<td width="9%">
+
+
+
+<p style="margin-top: 1em" valign="top"><b>&minus;force</b></p> </td>
+<td width="2%"></td>
+<td width="56%">
+
+
+<p style="margin-top: 1em" valign="top">Enforce writing of
+a new output file.</p></td>
+<td width="22%">
+</td>
+</table>
+
+<p style="margin-left:22%;">This option overrides the
+program&rsquo;s decision not to write such file, e.g. when
+the PNG input is digitally signed (using dSIG), or when the
+PNG output becomes larger than the PNG input.</p>
+
+<table width="100%" border=0 rules="none" frame="void"
+ cellspacing="0" cellpadding="0">
+<tr valign="top" align="left">
+<td width="11%"></td>
+<td width="7%">
+
+
+
+<p style="margin-top: 1em" valign="top"><b>&minus;keep</b></p> </td>
+<td width="4%"></td>
+<td width="58%">
+
+
+<p style="margin-top: 1em" valign="top">Keep a backup of
+the modified file(s).</p></td>
+<td width="20%">
+</td>
+</table>
+
+<p style="margin-left:22%;">The files that use the backup
+names prior to the program execution are <i>not</i>
+overwritten.</p>
+
+<p style="margin-left:11%;"><b>&minus;log</b>
+<i>file</i></p>
+
+<p style="margin-left:22%;">Log messages to <i>file</i>.
+For safety reasons, <i>file</i> must have the extension
+<tt>.log</tt>.</p>
+
+<p style="margin-left:11%;"><b>&minus;out</b>
+<i>file</i></p>
+
+<p style="margin-left:22%;">Write output file to
+<i>file</i>. The command line must contain exactly one input
+file.</p>
+
+<p style="margin-left:11%;"><b>&minus;preserve</b></p>
+
+<p style="margin-left:22%;">Preserve file attributes (time
+stamps, file access rights, etc.) where applicable.</p>
+
+<table width="100%" border=0 rules="none" frame="void"
+ cellspacing="0" cellpadding="0">
+<tr valign="top" align="left">
+<td width="11%"></td>
+<td width="9%">
+
+
+
+<p style="margin-top: 1em" valign="top"><b>&minus;quiet</b></p> </td>
+<td width="2%"></td>
+<td width="27%">
+
+
+<p style="margin-top: 1em" valign="top">Run in quiet
+mode.</p> </td>
+<td width="51%">
+</td>
+</table>
+
+<p style="margin-left:22%;">These messages are still
+written to the log file if the option <b>&minus;log</b> is
+in effect.</p>
+
+<p style="margin-left:11%;"><b>&minus;simulate</b></p>
+
+<p style="margin-left:22%;">Run in simulation mode: perform
+the trials, but do not create output files.</p>
+
+<table width="100%" border=0 rules="none" frame="void"
+ cellspacing="0" cellpadding="0">
+<tr valign="top" align="left">
+<td width="11%"></td>
+<td width="7%">
+
+
+
+<p style="margin-top: 1em" valign="top"><b>&minus;snip</b></p> </td>
+<td width="4%"></td>
+<td width="78%">
+
+
+<p style="margin-top: 1em" valign="top">Cut one image out
+of multi-image, animation or video file(s).</p></td>
+</table>
+
+<p style="margin-left:22%;">Depending on the input format,
+this may be either the first or the most relevant (e.g. the
+largest) image.</p>
+
+<table width="100%" border=0 rules="none" frame="void"
+ cellspacing="0" cellpadding="0">
+<tr valign="top" align="left">
+<td width="11%"></td>
+<td width="3%">
+
+
+
+<p style="margin-top: 1em" valign="top"><b>&minus;v</b></p> </td>
+<td width="8%"></td>
+<td width="63%">
+
+
+<p style="margin-top: 1em" valign="top">Enable the options
+<b>&minus;verbose</b> and <b>&minus;version</b>.</p></td>
+<td width="15%">
+</td>
+</table>
+
+<p style="margin-left:11%;"><b>&minus;verbose</b></p>
+
+<p style="margin-left:22%;">Run in verbose mode.</p>
+
+<p style="margin-left:11%;"><b>&minus;version</b></p>
+
+<p style="margin-left:22%;">Show copyright, version and
+build info.</p>
+
+<table width="100%" border=0 rules="none" frame="void"
+ cellspacing="0" cellpadding="0">
+<tr valign="top" align="left">
+<td width="11%"></td>
+<td width="3%">
+
+
+
+<p style="margin-top: 1em" valign="top"><b>&minus;&minus;</b></p> </td>
+<td width="8%"></td>
+<td width="41%">
+
+
+<p style="margin-top: 1em" valign="top">Stop option switch
+parsing.</p> </td>
+<td width="37%">
+</td>
+</table>
+
+<p style="margin-left:11%; margin-top: 1em"><b>PNG encoding
+and optimization options <br>
+&minus;f</b> <i>filters</i></p>
+
+<p style="margin-left:22%;">Select the PNG delta filters.
+<br>
+The <i>filters</i> argument is specified as a rangeset (e.g.
+<b>&minus;f0&minus;5</b>), and the default <i>filters</i>
+value depends on the optimization level set by the option
+<b>&minus;o</b>. <br>
+The filter values 0, 1, 2, 3 and 4 indicate static
+filtering, and correspond to the standard PNG filter codes
+(<i>None</i>, <i>Left</i>, <i>Up</i>, <i>Average</i> and
+<i>Paeth</i>, respectively). The filter value 5 indicates
+adaptive filtering, whose effect is defined by the
+<b>libpng</b>(3) library used by <b>OptiPNG</b>.</p>
+
+<table width="100%" border=0 rules="none" frame="void"
+ cellspacing="0" cellpadding="0">
+<tr valign="top" align="left">
+<td width="11%"></td>
+<td width="7%">
+
+
+
+<p style="margin-top: 1em" valign="top"><b>&minus;full</b></p> </td>
+<td width="4%"></td>
+<td width="78%">
+
+
+<p style="margin-top: 1em" valign="top">Produce a full
+report on IDAT. This option might slow down the trials.</p></td>
+</table>
+
+<p style="margin-left:11%;"><b>&minus;i</b> <i>type</i></p>
+
+<p style="margin-left:22%;">Select the interlace type
+(0&minus;1). <br>
+If the interlace type 0 is selected, the output image shall
+be non-interlaced (i.e. progressive-scanned). If the
+interlace type 1 is selected, the output image shall be
+interlaced using the <i>Adam7</i> method. <br>
+By default, the output shall have the same interlace type as
+the input.</p>
+
+<table width="100%" border=0 rules="none" frame="void"
+ cellspacing="0" cellpadding="0">
+<tr valign="top" align="left">
+<td width="11%"></td>
+<td width="4%">
+
+
+
+<p style="margin-top: 1em" valign="top"><b>&minus;nb</b></p> </td>
+<td width="7%"></td>
+<td width="78%">
+
+
+<p style="margin-top: 1em" valign="top">Do not apply bit
+depth reduction.</p></td>
+<tr valign="top" align="left">
+<td width="11%"></td>
+<td width="4%">
+
+
+
+<p style="margin-top: 1em" valign="top"><b>&minus;nc</b></p> </td>
+<td width="7%"></td>
+<td width="78%">
+
+
+<p style="margin-top: 1em" valign="top">Do not apply color
+type reduction.</p></td>
+<tr valign="top" align="left">
+<td width="11%"></td>
+<td width="4%">
+
+
+
+<p style="margin-top: 1em" valign="top"><b>&minus;np</b></p> </td>
+<td width="7%"></td>
+<td width="78%">
+
+
+<p style="margin-top: 1em" valign="top">Do not apply
+palette reduction.</p></td>
+<tr valign="top" align="left">
+<td width="11%"></td>
+<td width="4%">
+
+
+
+<p style="margin-top: 1em" valign="top"><b>&minus;nx</b></p> </td>
+<td width="7%"></td>
+<td width="78%">
+
+
+<p style="margin-top: 1em" valign="top">Do not apply any
+lossless image reduction: enable the options
+<b>&minus;nb</b>, <b>&minus;nc</b> and <b>&minus;np</b>.</p></td>
+<tr valign="top" align="left">
+<td width="11%"></td>
+<td width="4%">
+
+
+
+<p style="margin-top: 1em" valign="top"><b>&minus;nz</b></p> </td>
+<td width="7%"></td>
+<td width="78%">
+
+
+<p style="margin-top: 1em" valign="top">Do not recode IDAT
+datastreams.</p> </td>
+</table>
+
+<p style="margin-left:22%;">The IDAT optimization
+operations that do not require recoding (e.g. IDAT chunk
+concatenation) are still performed. <br>
+This option has effect on PNG input files only.</p>
+
+<p style="margin-left:11%;"><b>&minus;zc</b>
+<i>levels</i></p>
+
+<p style="margin-left:22%;">Select the zlib compression
+levels used in IDAT compression. <br>
+The <i>levels</i> argument is specified as a rangeset (e.g.
+<b>&minus;zc6&minus;9</b>), and the default <i>levels</i>
+value depends on the optimization level set by the option
+<b>&minus;o</b>. <br>
+The effect of this option is defined by the <b>zlib</b>(3)
+library used by <b>OptiPNG</b>.</p>
+
+<p style="margin-left:11%;"><b>&minus;zm</b>
+<i>levels</i></p>
+
+<p style="margin-left:22%;">Select the zlib memory levels
+used in IDAT compression. <br>
+The <i>levels</i> argument is specified as a rangeset (e.g.
+<b>-zm8&minus;9</b>), and the default <i>levels</i> value
+depends on the optimization level set by the option
+<b>&minus;o</b>. <br>
+The effect of this option is defined by the <b>zlib</b>(3)
+library used by <b>OptiPNG</b>.</p>
+
+<p style="margin-left:11%;"><b>&minus;zs</b>
+<i>strategies</i></p>
+
+<p style="margin-left:22%;">Select the zlib compression
+strategies used in IDAT compression. <br>
+The <i>strategies</i> argument is specified as a rangeset
+(e.g. <b>-zs0&minus;3</b>), and the default
+<i>strategies</i> value depends on the optimization level
+set by the option <b>&minus;o</b>. <br>
+The effect of this option is defined by the <b>zlib</b>(3)
+library used by <b>OptiPNG</b>.</p>
+
+<p style="margin-left:11%;"><b>&minus;zw</b>
+<i>size</i></p>
+
+<p style="margin-left:22%;">Select the zlib window size
+(32k,16k,8k,4k,2k,1k,512,256) used in IDAT compression. <br>
+The <i>size</i> argument can be specified either in bytes
+(e.g. 16384) or kilobytes (e.g. 16k). The default
+<i>size</i> value is set to the lowest window size that
+yields an IDAT output as big as if yielded by the value
+32768. <br>
+The effect of this option is defined by the <b>zlib</b>(3)
+library used by <b>OptiPNG</b>.</p>
+
+<p style="margin-left:11%; margin-top: 1em"><b>Notes</b>
+<br>
+Options may come in any order (except for
+<b>&minus;&minus;</b>), before, after, or alternating with
+file names. Option names are case-insensitive and may be
+abbreviated to their shortest unique prefix.</p>
+
+<p style="margin-left:11%; margin-top: 1em">Some options
+may have arguments that follow the option name, separated by
+whitespace or the equal sign (&rsquo;<b>=</b>&rsquo;). If
+the option argument is a number or a rangeset, the separator
+may be omitted. For example:</p>
+
+
+<p style="margin-left:22%; margin-top: 1em"><b>&minus;out</b>
+<tt>newfile.png</tt> &lt;=&gt;
+<b>&minus;out=</b><tt>newfile.png</tt> <b><br>
+&minus;o3</b> &lt;=&gt; <b>&minus;o&nbsp;3</b> &lt;=&gt;
+<b>&minus;o=3 <br>
+&minus;f0,3&minus;5</b> &lt;=&gt;
+<b>&minus;f&nbsp;0,3&minus;5</b> &lt;=&gt;
+<b>&minus;f=0,3&minus;5</b></p>
+
+<p style="margin-left:11%; margin-top: 1em">Rangeset
+arguments are cumulative; e.g.</p>
+
+<p style="margin-left:22%; margin-top: 1em"><b>&minus;f0
+&minus;f3&minus;5</b> &lt;=&gt; <b>&minus;f0,3&minus;5 <br>
+&minus;zs0 &minus;zs1 &minus;zs2&minus;3</b> &lt;=&gt;
+<b>&minus;zs0,1,2,3</b> &lt;=&gt;
+<b>&minus;zs0&minus;3</b></p>
+
+<a name="EXTENDED DESCRIPTION"></a>
+<h2>EXTENDED DESCRIPTION</h2>
+
+
+<p style="margin-left:11%; margin-top: 1em">The PNG
+optimization algorithm consists of the following steps:</p>
+
+<table width="100%" border=0 rules="none" frame="void"
+ cellspacing="0" cellpadding="0">
+<tr valign="top" align="left">
+<td width="11%"></td>
+<td width="3%">
+
+
+<p style="margin-top: 1em" valign="top">1.</p></td>
+<td width="3%"></td>
+<td width="83%">
+
+
+<p style="margin-top: 1em" valign="top">Reduce the bit
+depth, the color type and the color palette of the image.
+This step may reduce the size of the uncompressed image,
+which, indirectly, may reduce the size of the compressed
+image (i.e. the size of the output PNG file).</p></td>
+<tr valign="top" align="left">
+<td width="11%"></td>
+<td width="3%">
+
+
+<p style="margin-top: 1em" valign="top">2.</p></td>
+<td width="3%"></td>
+<td width="83%">
+
+
+<p style="margin-top: 1em" valign="top">Run a suite of
+compression methods and strategies and select the
+compression parameters that yield the smallest output
+file.</p> </td>
+<tr valign="top" align="left">
+<td width="11%"></td>
+<td width="3%">
+
+
+<p style="margin-top: 1em" valign="top">3.</p></td>
+<td width="3%"></td>
+<td width="83%">
+
+
+<p style="margin-top: 1em" valign="top">Store all IDAT
+contents into a single chunk, eliminating the overhead
+incurred by repeated IDAT headers and CRCs.</p></td>
+<tr valign="top" align="left">
+<td width="11%"></td>
+<td width="3%">
+
+
+<p style="margin-top: 1em" valign="top">4.</p></td>
+<td width="3%"></td>
+<td width="83%">
+
+
+<p style="margin-top: 1em" valign="top">Set the zlib window
+size inside IDAT to a mininum that does not affect the
+compression ratio, reducing the memory requirements of PNG
+decoders.</p> </td>
+</table>
+
+<p style="margin-left:11%; margin-top: 1em">Not all of the
+above steps need to be executed. The behavior depends on the
+actual input files and user options.</p>
+
+<p style="margin-left:11%; margin-top: 1em">Step 1 may be
+customized via the no-reduce options <b>&minus;nb</b>,
+<b>&minus;nc</b>, <b>&minus;np</b> and <b>&minus;nx</b>.
+Step 2 may be customized via the <b>&minus;o</b> option, and
+may be fine-tuned via the options <b>&minus;zc</b>,
+<b>&minus;zm</b>, <b>&minus;zs</b> and <b>&minus;zw</b>.
+Step 3 is always executed. Step 4 is executed only if a new
+IDAT is being created, and may be fine-tuned via the option
+<b>&minus;zw</b>.</p>
+
+<p style="margin-left:11%; margin-top: 1em">Extremely
+exhaustive searches are not generally expected to yield
+significant improvements in compression ratio, and are
+recommended to advanced users only.</p>
+
+<a name="EXAMPLES"></a>
+<h2>EXAMPLES</h2>
+
+
+<p style="margin-left:11%; margin-top: 1em"><tt>optipng
+file1.png file2.gif file3.tif</tt></p>
+
+<p style="margin-left:11%; margin-top: 1em"><tt>optipng
+&minus;o5 file1.png file2.gif file3.tif</tt></p>
+
+<p style="margin-left:11%; margin-top: 1em"><tt>optipng
+&minus;i1 &minus;o7 &minus;v &minus;full &minus;sim
+experiment.png</tt></p>
+
+<a name="BUGS"></a>
+<h2>BUGS</h2>
+
+
+<p style="margin-left:11%; margin-top: 1em">Lossless image
+reductions are not completely implemented. (This does NOT
+affect the integrity of the output files.) Here are the
+missing pieces:</p>
+
+<p style="margin-left:22%; margin-top: 1em">&minus; The
+color palette reductions are implemented only partially.
+<br>
+&minus; The bit depth reductions below 8, for grayscale
+images, are not implemented yet.</p>
+
+<p style="margin-left:11%; margin-top: 1em">TIFF support is
+limited to uncompressed, PNG-compatible (grayscale, RGB and
+RGBA) images.</p>
+
+<p style="margin-left:11%; margin-top: 1em">Metadata is not
+imported from the external image formats.</p>
+
+<p style="margin-left:11%; margin-top: 1em">There is no
+support for pipes or streams.</p>
+
+<a name="SEE ALSO"></a>
+<h2>SEE ALSO</h2>
+
+
+<p style="margin-left:11%; margin-top: 1em"><b>png</b>(5),
+<b>libpng</b>(3), <b>zlib</b>(3), <b>pngcrush</b>(1),
+<b>pngrewrite</b>(1).</p>
+
+<a name="STANDARDS"></a>
+<h2>STANDARDS</h2>
+
+
+<p style="margin-left:11%; margin-top: 1em">The files
+produced by <b>OptiPNG</b> are compliant with
+<b>PNG&minus;2003</b>: <br>
+Glenn Randers-Pehrson et al. <i>Portable Network Graphics
+(PNG) Specification, Second Edition</i>. <br>
+W3C Recommendation 10 November 2003; ISO/IEC IS 15948:2003
+(E). <tt><br>
+http://www.w3.org/TR/PNG/</tt></p>
+
+<a name="AUTHOR"></a>
+<h2>AUTHOR</h2>
+
+
+<p style="margin-left:11%; margin-top: 1em"><b>OptiPNG</b>
+is written and maintained by Cosmin Truta.</p>
+
+<p style="margin-left:11%; margin-top: 1em">This manual
+page was originally written by Nelson A. de Oliveira for the
+Debian Project. It was later updated by Cosmin Truta, and is
+now part of the <b>OptiPNG</b> distribution.</p>
+<hr>
+</body>
+</html>
BIN build/tools/optipng-0.6.4-exe/doc/manual.pdf
Binary file not shown.
280 build/tools/optipng-0.6.4-exe/doc/manual.txt
<
@@ -0,0 +1,280 @@
+OPTIPNG(1) OPTIPNG(1)
+
+NAME
+ OptiPNG - Advanced optimization program for Portable Network Graphics
+ (PNG)
+
+SYNOPSIS
+ optipng [-? | -h | -help]
+ optipng [options...] files...
+
+DESCRIPTION
+ The OptiPNG program shall attempt to optimize PNG files, i.e. reduce
+ their size to a minimum, without losing any information. In addition,
+ this program shall perform a suite of auxiliary functions like
+ integrity checks, metadata recovery and pixmap-to-PNG conversion.
+
+ The optimization attempts are not guaranteed to succeed. Valid PNG
+ files that cannot be optimized by this program are normally left
+ intact; their size will not grow. The user may request to override this
+ default behavior.
+
+FILES
+ The input files are raster image files encoded either in PNG format
+ (the native format), or in an external format. The currently supported
+ external formats are GIF, BMP, PNM and TIFF.
+
+ OptiPNG processes each image file given in the command line as follows:
+
+ - If it is in PNG format:
+
+ Attempt to optimize the given file in-place. If optimization is
+ successful, or if the option -force is in effect, replace the
+ original file with its optimized version. The original file is
+ backed up if the option -keep is in effect.
+
+ - If it is in an external format:
+
+ Create an optimized PNG version of the given file. The output
+ file name is composed from the original file name and the .png
+ extension.
+
+OPTIONS
+ General options
+ -?, -h, -help
+ Show a complete summary of options.
+
+ -o level
+ Select the optimization level.
+ The optimization level 0 enables a set of optimization opera-
+ tions that require minimal effort. There will be no changes to
+ image attributes like bit depth or color type, and no recompres-
+ sion of existing IDAT datastreams.
+ The optimization level 1 enables a single IDAT compression
+ trial. The trial chosen is what OptiPNG thinks it's probably the
+ most effective.
+ The optimization levels 2 and higher enable multiple IDAT com-
+ pression trials; the higher the level, the more trials.
+ The behavior and the default value of this option may change
+ across different program versions. Use the option -h to see the
+ details pertaining to your specific version.
+
+ -dir directory
+ Write output file(s) to directory.
+
+ -fix Enable error recovery. This option has no effect on valid input
+ files.
+ The program will spend a reasonable amount of effort to recover
+ as much data as possible, without increasing the output file
+ size, but the success cannot be generally guaranteed. The pro-
+ gram may even increase the file size, e.g., by reconstructing
+ missing critical data. Under this option, integrity shall take
+ precedence over file size.
+ When this option is not used, the invalid input files are left
+ unprocessed.
+
+ -force Enforce writing of a new output file.
+ This option overrides the program's decision not to write such
+ file, e.g. when the PNG input is digitally signed (using dSIG),
+ or when the PNG output becomes larger than the PNG input.
+
+ -keep Keep a backup of the modified file(s).
+ The files that use the backup names prior to the program execu-
+ tion are not overwritten.
+
+ -log file
+ Log messages to file. For safety reasons, file must have the
+ extension .log.
+
+ -out file
+ Write output file to file. The command line must contain
+ exactly one input file.
+
+ -preserve
+ Preserve file attributes (time stamps, file access rights, etc.)
+ where applicable.
+
+ -quiet Run in quiet mode.
+ These messages are still written to the log file if the option
+ -log is in effect.
+
+ -simulate
+ Run in simulation mode: perform the trials, but do not create
+ output files.
+
+ -snip Cut one image out of multi-image, animation or video file(s).
+ Depending on the input format, this may be either the first or
+ the most relevant (e.g. the largest) image.
+
+ -v Enable the options -verbose and -version.
+
+ -verbose
+ Run in verbose mode.
+
+ -version
+ Show copyright, version and build info.
+
+ -- Stop option switch parsing.
+
+ PNG encoding and optimization options
+ -f filters
+ Select the PNG delta filters.
+ The filters argument is specified as a rangeset (e.g. -f0-5),
+ and the default filters value depends on the optimization level
+ set by the option -o.
+ The filter values 0, 1, 2, 3 and 4 indicate static filtering,
+ and correspond to the standard PNG filter codes (None, Left, Up,
+ Average and Paeth, respectively). The filter value 5 indicates
+ adaptive filtering, whose effect is defined by the libpng(3)
+ library used by OptiPNG.
+
+ -full Produce a full report on IDAT. This option might slow down the
+ trials.
+
+ -i type
+ Select the interlace type (0-1).
+ If the interlace type 0 is selected, the output image shall be
+ non-interlaced (i.e. progressive-scanned). If the interlace type
+ 1 is selected, the output image shall be interlaced using the
+ Adam7 method.
+ By default, the output shall have the same interlace type as the
+ input.
+
+ -nb Do not apply bit depth reduction.
+
+ -nc Do not apply color type reduction.
+
+ -np Do not apply palette reduction.
+
+ -nx Do not apply any lossless image reduction: enable the options
+ -nb, -nc and -np.
+
+ -nz Do not recode IDAT datastreams.
+ The IDAT optimization operations that do not require recoding
+ (e.g. IDAT chunk concatenation) are still performed.
+ This option has effect on PNG input files only.
+
+ -zc levels
+ Select the zlib compression levels used in IDAT compression.
+ The levels argument is specified as a rangeset (e.g. -zc6-9),
+ and the default levels value depends on the optimization level
+ set by the option -o.
+ The effect of this option is defined by the zlib(3) library used
+ by OptiPNG.
+
+ -zm levels
+ Select the zlib memory levels used in IDAT compression.
+ The levels argument is specified as a rangeset (e.g. -zm8-9),
+ and the default levels value depends on the optimization level
+ set by the option -o.
+ The effect of this option is defined by the zlib(3) library used
+ by OptiPNG.
+
+ -zs strategies
+ Select the zlib compression strategies used in IDAT compression.
+ The strategies argument is specified as a rangeset (e.g.
+ -zs0-3), and the default strategies value depends on the opti-
+ mization level set by the option -o.
+ The effect of this option is defined by the zlib(3) library used
+ by OptiPNG.
+
+ -zw size
+ Select the zlib window size (32k,16k,8k,4k,2k,1k,512,256) used
+ in IDAT compression.
+ The size argument can be specified either in bytes (e.g. 16384)
+ or kilobytes (e.g. 16k). The default size value is set to the
+ lowest window size that yields an IDAT output as big as if
+ yielded by the value 32768.
+ The effect of this option is defined by the zlib(3) library used
+ by OptiPNG.
+
+ Notes
+ Options may come in any order (except for --), before, after, or alter-
+ nating with file names. Option names are case-insensitive and may be
+ abbreviated to their shortest unique prefix.
+
+ Some options may have arguments that follow the option name, separated
+ by whitespace or the equal sign ('='). If the option argument is a num-
+ ber or a rangeset, the separator may be omitted. For example:
+
+ -out newfile.png <=> -out=newfile.png
+ -o3 <=> -o 3 <=> -o=3
+ -f0,3-5 <=> -f 0,3-5 <=> -f=0,3-5
+
+ Rangeset arguments are cumulative; e.g.
+
+ -f0 -f3-5 <=> -f0,3-5
+ -zs0 -zs1 -zs2-3 <=> -zs0,1,2,3 <=> -zs0-3
+
+EXTENDED DESCRIPTION
+ The PNG optimization algorithm consists of the following steps:
+
+ 1. Reduce the bit depth, the color type and the color palette of the
+ image. This step may reduce the size of the uncompressed image,
+ which, indirectly, may reduce the size of the compressed image
+ (i.e. the size of the output PNG file).
+
+ 2. Run a suite of compression methods and strategies and select the
+ compression parameters that yield the smallest output file.
+
+ 3. Store all IDAT contents into a single chunk, eliminating the over-
+ head incurred by repeated IDAT headers and CRCs.
+
+ 4. Set the zlib window size inside IDAT to a mininum that does not
+ affect the compression ratio, reducing the memory requirements of
+ PNG decoders.
+
+ Not all of the above steps need to be executed. The behavior depends on
+ the actual input files and user options.
+
+ Step 1 may be customized via the no-reduce options -nb, -nc, -np and
+ -nx. Step 2 may be customized via the -o option, and may be fine-tuned
+ via the options -zc, -zm, -zs and -zw. Step 3 is always executed. Step
+ 4 is executed only if a new IDAT is being created, and may be fine-
+ tuned via the option -zw.
+
+ Extremely exhaustive searches are not generally expected to yield sig-
+ nificant improvements in compression ratio, and are recommended to
+ advanced users only.
+
+EXAMPLES
+ optipng file1.png file2.gif file3.tif
+
+ optipng -o5 file1.png file2.gif file3.tif
+
+ optipng -i1 -o7 -v -full -sim experiment.png
+
+BUGS
+ Lossless image reductions are not completely implemented. (This does
+ NOT affect the integrity of the output files.) Here are the missing
+ pieces:
+
+ - The color palette reductions are implemented only partially.
+ - The bit depth reductions below 8, for grayscale images, are
+ not implemented yet.
+
+ TIFF support is limited to uncompressed, PNG-compatible (grayscale, RGB
+ and RGBA) images.
+
+ Metadata is not imported from the external image formats.
+
+ There is no support for pipes or streams.
+
+SEE ALSO
+ png(5), libpng(3), zlib(3), pngcrush(1), pngrewrite(1).
+
+STANDARDS
+ The files produced by OptiPNG are compliant with PNG-2003:
+ Glenn Randers-Pehrson et al. Portable Network Graphics (PNG) Specifi-