Apache/2.4.7 (Ubuntu) Linux sman1baleendah 3.13.0-24-generic #46-Ubuntu SMP Thu Apr 10 19:11:08 UTC 2014 x86_64 uid=33(www-data) gid=33(www-data) groups=33(www-data) safemode : OFF MySQL: ON | Perl: ON | cURL: OFF | WGet: ON > / usr / lib / w3m / | server ip : 172.67.156.115 your ip : 172.70.130.227 H O M E |
Filename | /usr/lib/w3m/xface2xpm |
Size | 1.35 kb |
Permission | rwxr-xr-x |
Owner | root : root |
Create time | 27-Apr-2025 09:56 |
Last modified | 04-Jan-2014 19:15 |
Last accessed | 05-Jul-2025 18:19 |
Actions | edit | rename | delete | download (gzip) |
View | text | code | image |
#!/usr/bin/perl
$USAGE = "xface2xpm [-t] [-fg <color>] [-bg <color>] [<file>]";
# compface/uncompface
# ftp://metalab.unc.edu/pub/Linux/apps/graphics/convert/
$UNCOMPFACE = "uncompface";
$T = "c";
$BG = "white";
$FG = "black";
while (@ARGV) {
$_ = shift @ARGV;
if (/^-h/) {
&usage(0);
} elsif (/^-t/) {
$T = "s";
$BG = "none";
} elsif (/^-bg/) {
@ARGV || &usage(1);
$BG = shift @ARGV;
} elsif (/^-fg/) {
@ARGV || &usage(1);
$FG = shift @ARGV;
} elsif (/^-./) {
&usage(1);
} else {
unshift(@ARGV, $_);
last;
}
}
$xf = "";
while(<>) {
# s/^X-Face://i if ($xf eq "");
$xf .= $_;
}
pipe(R, W2);
pipe(R2, W);
if (! fork()) {
close(R);
close(W);
open(STDIN, "<&R2");
open(STDOUT, ">&W2");
exec $UNCOMPFACE;
exit 1;
}
close(R2);
close(W2);
print W $xf;
close(W);
while(<R>) {
while(s/0x(..)(..)//) {
push(@bm, hex($1), hex($2));
}
}
close(R);
@bm || exit 1;
$W = 48;
$H = @bm * 8 / $W; # must be 48
print <<EOF;
/* XPM */
static char *xf[] = {
/* columns rows colors chars-per-pixel */
"$W $H 2 1",
" $T $BG",
". c $FG",
/* pixels */
EOF
while (@bm) {
print "\"";
for (1..6) {
$x = shift @bm;
for $i (1 .. 8) {
print ((($x >> (8-$i)) & 1) ? "." : " ");
}
}
print (@bm ? "\",\n" : "\"\n");
}
print <<EOF;
};
EOF
sub usage {
local($err) = @_;
if ($err) {
print STDERR "$USAGE\n";
} else {
print "$USAGE\n";
}
exit $err;
}
$USAGE = "xface2xpm [-t] [-fg <color>] [-bg <color>] [<file>]";
# compface/uncompface
# ftp://metalab.unc.edu/pub/Linux/apps/graphics/convert/
$UNCOMPFACE = "uncompface";
$T = "c";
$BG = "white";
$FG = "black";
while (@ARGV) {
$_ = shift @ARGV;
if (/^-h/) {
&usage(0);
} elsif (/^-t/) {
$T = "s";
$BG = "none";
} elsif (/^-bg/) {
@ARGV || &usage(1);
$BG = shift @ARGV;
} elsif (/^-fg/) {
@ARGV || &usage(1);
$FG = shift @ARGV;
} elsif (/^-./) {
&usage(1);
} else {
unshift(@ARGV, $_);
last;
}
}
$xf = "";
while(<>) {
# s/^X-Face://i if ($xf eq "");
$xf .= $_;
}
pipe(R, W2);
pipe(R2, W);
if (! fork()) {
close(R);
close(W);
open(STDIN, "<&R2");
open(STDOUT, ">&W2");
exec $UNCOMPFACE;
exit 1;
}
close(R2);
close(W2);
print W $xf;
close(W);
while(<R>) {
while(s/0x(..)(..)//) {
push(@bm, hex($1), hex($2));
}
}
close(R);
@bm || exit 1;
$W = 48;
$H = @bm * 8 / $W; # must be 48
print <<EOF;
/* XPM */
static char *xf[] = {
/* columns rows colors chars-per-pixel */
"$W $H 2 1",
" $T $BG",
". c $FG",
/* pixels */
EOF
while (@bm) {
print "\"";
for (1..6) {
$x = shift @bm;
for $i (1 .. 8) {
print ((($x >> (8-$i)) & 1) ? "." : " ");
}
}
print (@bm ? "\",\n" : "\"\n");
}
print <<EOF;
};
EOF
sub usage {
local($err) = @_;
if ($err) {
print STDERR "$USAGE\n";
} else {
print "$USAGE\n";
}
exit $err;
}