#!/usr/bin/perl -w
-# Copyright © 2006-2012 Jamie Zawinski <jwz@jwz.org>
+# Copyright © 2006-2014 Jamie Zawinski <jwz@jwz.org>
#
# Permission to use, copy, modify, distribute, and sell this software and its
# documentation for any purpose is hereby granted without fee, provided that
use strict;
my $progname = $0; $progname =~ s@.*/@@g;
-my $version = q{ $Revision: 1.1 $ }; $version =~ s/^[^0-9]+([0-9.]+).*$/$1/;
+my ($version) = ('$Revision: 1.4 $' =~ m/\s(\d[.\d]+)\s/s);
my $verbose = 1;
+$ENV{PATH} = "/opt/local/bin:$ENV{PATH}"; # MacPorts, for ImageMagick
+
sub safe_system(@) {
my @cmd = @_;
rand(0xFFFFFFFF));
my @cmd = ("convert",
$img,
+ "-strip",
"-resize", $size . "^",
"-gravity", "center",
"-extent", $size,
+ "-quality", "95", # saves 8%
+ "+dither", "-colors", "128", # Saves an additional 61%
$tmp);
print STDERR "$progname: exec: " . join(' ', @cmd) . "\n"
error ("failed: " . join(" ", @cmd));
}
+ # This only saves 0.4% on top of the above.
+ # @cmd = ("optipng", "-quiet", "-o7", $tmp);
+ # print STDERR "$progname: exec: " . join(' ', @cmd) . "\n"
+ # if ($verbose > 2);
+ # safe_system (@cmd);
+
+ if (! -s $tmp) {
+ unlink $tmp;
+ error ("failed: " . join(" ", @cmd));
+ }
+
if (! cmp_files ($tmp, $target)) {
unlink $tmp;
print STDERR "$progname: $target: unchanged\n" if ($verbose > 1);