#!/usr/bin/perl use strict; my $indir="wxOil/xrc/"; my $outdir="wxOil/xrc/"; my $tmpfile="/tmp/alpha.$$"; sub extract { my $i = shift @_; my $o = shift @_; my $n = shift @_; my $w = shift @_; my $oin = shift @_; print STDERR "Converting $i (segment $n * $w) to $o (from $oin)\n"; if ($n>=0) { system("pngtopnm -alpha <$i | pnmcut -left ".$n*$w." -top 0 -bottom -1 -width ".$w." > $tmpfile"); system("pngtopnm <$i | pnmcut -left ".$n*$w." -top 0 -bottom -1 -width ".$w." | pnmtopng -alpha $tmpfile > $o"); } else { system("cat $i >$o"); } } while (<>) { chomp; my ($in, $out) = split(/\s+/); my $seg=-1; if ($in =~ s/\.(\d+)$//) { $seg=$1; } my $oin=$in; my $in2; my $w = 16; my $w2 = 24; if ($in eq "SMALLBUTTONSTRIP") { $in="shalfstr.png"; $in2="lhalfstr.png"; $w=8; $w2=12; } elsif ($in eq "BUTTONSTRIP") { $in="sbuttonst32.png"; $in2="lbuttonst32.png"; } elsif ($in eq "BUTTONSTRIP2") { $in="sbuttst232.png"; $in2="lbuttst232.png"; } elsif ($in eq "LEBUTTONSTRIP") { $in="sbutts_liveeffect.png"; $in2="lbutts_liveeffect.png"; } else { $in=~s/bmp$//i; $in=lc($in)."32.png"; $in2="l".$in; $in="s".$in; } if ( -e $indir.$in && -e $indir.$in2) { extract($indir.$in, $outdir.$out."-s.png", $seg, $w, $oin); extract($indir.$in2, $outdir.$out.".png", $seg, $w2, $oin); if ( -e $indir."h".$in && -e $indir."h".$in2) { extract($indir."h".$in, $outdir.$out."-sx.png", $seg, $w, $oin); extract($indir."h".$in2, $outdir.$out."-x.png", $seg, $w2, $oin); } } else { print STDERR "Can't find $indir$in $oin [ $seg ], $out\n"; } }