Simple image converter and sample image

This commit is contained in:
Stefan `Sec` Zehl 2011-08-04 22:58:36 +02:00
parent 7281329206
commit 23eb877501
2 changed files with 72 additions and 0 deletions

72
tools/image/img2lcd.pl Executable file
View File

@ -0,0 +1,72 @@
#!/usr/bin/perl
# img2lcd.pl - by <sec@42.org> 05/2011, BSD Licence
#
# This script converts an image to .lcd format for the r0ket
use strict;
use warnings;
use Getopt::Long;
use Module::Load;
$|=1;
###
### Runtime Options
###
my ($verbose);
GetOptions (
"verbose" => \$verbose, # flag
"help" => sub {
print <<HELP;
Uasge: img2lcd.pl [-v]
Options:
--verbose Be verbose.
HELP
exit(-1);}
);
###
### Code starts here.
###
my $in=shift || "i42.gif";
my $out=$in;
$out=~s/\..*/.lcd/;
load GD;
my $image = GD::Image->new($in);
my $w=$image->width;
my $h=$image->height;
my @img;
for my $y (0..$h){
for my $x (0..$w){
my $px= $image->getPixel($x,$y);
$img[$x][$y/8]|=$px<<(7-$y%8);
if($verbose){
$px=~y/01/ */; print STDERR $px;
};
};
if ($verbose){
print STDERR "<\n";
};
};
open(F,">",$out)||die "open: $!";
my $hb=int($h/8);
for my $y (0..$hb){
for my $x (0..$w){
printf F "%c",$img[$w-$x][$hb-$y];
};
};
close(F);

BIN
tools/image/src/i42.gif Executable file

Binary file not shown.

After

Width:  |  Height:  |  Size: 340 B