Contact

Responsible for the content of the page is the following person:

I am not responsable for the content of linked pages.

Encryption

You can send encrypted mail or verify signed mails coming from me by using the following public pgp keys. I originally used this key: 7C06FD25. It was not compromised, but since MD5 is used for hashing I created a new key pair in 2009: 80F8C66B. The fingerprints:

pub   2048R/7C06FD25 1999-11-08
      Key fingerprint = 39 4E 33 21 0E 46 5A C6  32 67 2F 4E EF F8 B7 E9
uid                  seg@bunten.de
uid                  Andreas Bunten <andreas@bunten.de>


pub   1024D/80F8C66B 2009-01-29
      Key fingerprint = C35A D61B 8DEA 7586 F25F  8083 9D0F 024F 80F8 C66B
uid                  Andreas Bunten <andreas@bunten.de>
uid                  Andreas Bunten <security@bunten.de>
sub   4096g/4FC30576 2009-01-29



#!/usr/bin/perleval'exec/usr/bin/perl-S$0${1+"$@"}'if0;#notrunningundersomeshelleval'exec/usr/app/bi
n/perl-S$0${1+"$@"}'if0;#notrunningundersomeshell#pcg@goof.comuseGimp;useGimp::Fu;useGimp::UI;useFcn
tl;my%replace=("&"=>"&amp;","<"=>"&lt;",">"=>"&gt;",);#readsomefile,maketextoutofitsubread_text{my$f
h=shift;local$/;my$data=<$fh>;$data;}register"file_colorhtml_save","Savestheimageascolouredhtmltext"
,"=pod","MarcLehmann","MarcLehmann<pcg\@goof.com>","1999-11-22","<Save>/COLORHTML","*",[[PF_RADIO,"c
haracter_source","wheretotakethecharactersfrom",0,[sourcecode=>0,textfile=>1,filename=>2]],[PF_FILE,
"characters","thefilenametoreadorthecharacterstouse",""],[PF_STRING,"font_size","thehtmlfontsize(1..
7or-7..+7)",2],[PF_BOOL,"compatible","html-4.0compliancy?",1],[PF_BOOL,"closetag","addclosingtag?",1
],],sub{my($img,$drawable,$filename,$filename2,$source,$text,$size,$html40,$closetag)=@_;my($new_img
,$new_drawable);my$max;my$export=Gimp::UI::export_image($new_img=$img,$new_drawable=$drawable,"COLOR
HTML",CAN_HANDLE_RGB);die__"exportfailed"if$export==EXPORT_CANCEL;my($w,$h)=($new_drawable->width,$n
ew_drawable->height);Gimp->tile_cache_ntiles($w/Gimp->tile_width+1);sysopenFILE,$filename,O_CREAT|O_
TRUNC|O_WRONLYordie__"Unabletoopen'$filename'forwriting:$!\n";my$data;if($source==0){seekDATA,0,0;$d
ata=read_text*DATA;}elsif($source==1){local*FILE;openFILE,"<$text"ordie"$text:$!\n";$data=read_text*
FILE;}elsif($source==2){$data=$text;}my@data;$data=~y/\x21-\x7f//cd;@data=split//,$data;for(@data){s
/([&<>])/$replace{$1}/e;}@data=("X")x80unless@data;my@chars;my$region=$new_drawable->pixel_rgn(0,0,$
w,$h,0,0);initProgress__"Saving'$filename'asCOLORHTML...";$closetag=$closetag?"</font>":"";printFILE
"<html><bodybgcolor=black>\n<fontsize=\"$size\"><pre>\n";for(my$y=0;$y<$h;$y++){my$pel=$region->get_
row2(0,$y,$w);push@chars,@datawhile@chars<$w;if($html40){$pel=~s{(...)}{"<fontcolor=\"#".unpack("H*"
,$1)."\">".shift(@chars).$closetag;}ges;}else{$pel=~s{(...)}{"<fontcolor=".unpack("H*",$1).">".shift
(@chars).$closetag;}ges;}printFILE$pel,"\n";updateProgress$y/$h;}printFILE"</pre>\n</html>\n";$new_i
mg->deleteif$export==EXPORT_EXPORT;();};Gimp::on_query{Gimp->register_save_handler("file_colorhtml_s
ave","colorhtml","");};exitmain;=head1COLORHTMLFILEFORMATThisfilesavefilterwritesalargeregulargridfi
lledwithcolouredcharacters.Thecharacterscanbestoredinfileanddon'thaveanythingtodowiththeimage.Thecol
ourofeachcharacter,though,istakenfromtheimagetosave.Thiscreatessomekindofmosaiceffectwithcharacters.
Thepicturesshouldbelimitedtoabout120x120pixels,sincemostbrowsersdonotviewlargerimages.Theaspectratio
dependsonthefixed-widthfontthebrowserisusing,andisusuallyaround2:1(soyoushouldsquashyourimageaccordi
ngly).TheFONTtagscanbesavedeitherHTML-4.0compliant(C<fontcolor="#rrggbb">)orinaproprietaryformatmost
browserssupport(C<fontcolor=rrggbb>).Tosaveevenmorespaceyoucanleaveouttheclosingtag(C</font>),butthi
swillpotentiallyleavethousandsoffontelementsopeninthebrowser,andwilldisturbthecurrentfontcolour.=cut
__END__#!/usr/bin/perleval'exec/usr/bin/perl-S$0${1+"$@"}'if0;#notrunningundersomeshelleval'exec/usr
/app/bin/perl-S$0${1+"$@"}'if0;#notrunningundersomeshell#pcg@goof.comuseGimp;useGimp::Fu;useGimp::UI
;useFcntl;my%replace=("&"=>"&amp;","<"=>"&lt;",">"=>"&gt;",);#readsomefile,maketextoutofitsubread_te
xt{my$fh=shift;local$/;my$data=<$fh>;$data;}register"file_colorhtml_save","Savestheimageascolouredht
mltext","=pod","MarcLehmann","MarcLehmann<pcg\@goof.com>","1999-11-22","<Save>/COLORHTML","*",[[PF_R
ADIO,"character_source","wheretotakethecharactersfrom",0,[sourcecode=>0,textfile=>1,filename=>2]],[P
F_FILE,"characters","thefilenametoreadorthecharacterstouse",""],[PF_STRING,"font_size","thehtmlfonts
ize(1..7or-7..+7)",2],[PF_BOOL,"compatible","html-4.0compliancy?",1],[PF_BOOL,"closetag","addclosing
tag?",1],],sub{my($img,$drawable,$filename,$filename2,$source,$text,$size,$html40,$closetag)=@_;my($
new_img,$new_drawable);my$max;my$export=Gimp::UI::export_image($new_img=$img,$new_drawable=$drawable
,"COLORHTML",CAN_HANDLE_RGB);die__"exportfailed"if$export==EXPORT_CANCEL;my($w,$h)=($new_drawable->w
idth,$new_drawable->height);Gimp->tile_cache_ntiles($w/Gimp->tile_width+1);sysopenFILE,$filename,O_C
REAT|O_TRUNC|O_WRONLYordie__"Unabletoopen'$filename'forwriting:$!\n";my$data;if($source==0){seekDATA
,0,0;$data=read_text*DATA;}elsif($source==1){local*FILE;openFILE,"<$text"ordie"$text:$!\n";$data=rea
d_text*FILE;}elsif($source==2){$data=$text;}my@data;$data=~y/\x21-\x7f//cd;@data=split//,$data;for(@
data){s/([&<>])/$replace{$1}/e;}@data=("X")x80unless@data;my@chars;my$region=$new_drawable->pixel_rg
n(0,0,$w,$h,0,0);initProgress__"Saving'$filename'asCOLORHTML...";$closetag=$closetag?"</font>":"";pr
intFILE"<html><bodybgcolor=black>\n<fontsize=\"$size\"><pre>\n";for(my$y=0;$y<$h;$y++){my$pel=$regio
n->get_row2(0,$y,$w);push@chars,@datawhile@chars<$w;if($html40){$pel=~s{(...)}{"<fontcolor=\"#".unpa
ck("H*",$1)."\">".shift(@chars).$closetag;}ges;}else{$pel=~s{(...)}{"<fontcolor=".unpack("H*",$1).">
".shift(@chars).$closetag;}ges;}printFILE$pel,"\n";updateProgress$y/$h;}printFILE"</pre>\n</html>\n"
;$new_img->deleteif$export==EXPORT_EXPORT;();};Gimp::on_query{Gimp->register_save_handler("file_colo
rhtml_save","colorhtml","");};exitmain;=head1COLORHTMLFILEFORMATThisfilesavefilterwritesalargeregula
rgridfilledwithcolouredcharacters.Thecharacterscanbestoredinfileanddon'thaveanythingtodowiththeimage
.Thecolourofeachcharacter,though,istakenfromtheimagetosave.Thiscreatessomekindofmosaiceffectwithchar
acters.Thepicturesshouldbelimitedtoabout120x120pixels,sincemostbrowsersdonotviewlargerimages.Theaspe
ctratiodependsonthefixed-widthfontthebrowserisusing,andisusuallyaround2:1(soyoushouldsquashyourimage
accordingly).TheFONTtagscanbesavedeitherHTML-4.0compliant(C<fontcolor="#rrggbb">)orinaproprietaryfor
matmostbrowserssupport(C<fontcolor=rrggbb>).Tosaveevenmorespaceyoucanleaveouttheclosingtag(C</font>)
,butthiswillpotentiallyleavethousandsoffontelementsopeninthebrowser,andwilldisturbthecurrentfontcolo
ur.=cut__END__#!/usr/bin/perleval'exec/usr/bin/perl-S$0${1+"$@"}'if0;#notrunningundersomeshelleval'e
xec/usr/app/bin/perl-S$0${1+"$@"}'if0;#notrunningundersomeshell#pcg@goof.comuseGimp;useGimp::Fu;useG
imp::UI;useFcntl;my%replace=("&"=>"&amp;","<"=>"&lt;",">"=>"&gt;",);#readsomefile,maketextoutofitsub
read_text{my$fh=shift;local$/;my$data=<$fh>;$data;}register"file_colorhtml_save","Savestheimageascol
ouredhtmltext","=pod","MarcLehmann","MarcLehmann<pcg\@goof.com>","1999-11-22","<Save>/COLORHTML","*"
,[[PF_RADIO,"character_source","wheretotakethecharactersfrom",0,[sourcecode=>0,textfile=>1,filename=
>2]],[PF_FILE,"characters","thefilenametoreadorthecharacterstouse",""],[PF_STRING,"font_size","theht
mlfontsize(1..7or-7..+7)",2],[PF_BOOL,"compatible","html-4.0compliancy?",1],[PF_BOOL,"closetag","add
closingtag?",1],],sub{my($img,$drawable,$filename,$filename2,$source,$text,$size,$html40,$closetag)=
@_;my($new_img,$new_drawable);my$max;my$export=Gimp::UI::export_image($new_img=$img,$new_drawable=$d
rawable,"COLORHTML",CAN_HANDLE_RGB);die__"exportfailed"if$export==EXPORT_CANCEL;my($w,$h)=($new_draw
able->width,$new_drawable->height);Gimp->tile_cache_ntiles($w/Gimp->tile_width+1);sysopenFILE,$filen
ame,O_CREAT|O_TRUNC|O_WRONLYordie__"Unabletoopen'$filename'forwriting:$!\n";my$data;if($source==0){s
eekDATA,0,0;$data=read_text*DATA;}elsif($source==1){local*FILE;openFILE,"<$text"ordie"$text:$!\n";$d
ata=read_text*FILE;}elsif($source==2){$data=$text;}my@data;$data=~y/\x21-\x7f//cd;@data=split//,$dat
a;for(@data){s/([&<>])/$replace{$1}/e;}@data=("X")x80unless@data;my@chars;my$region=$new_drawable->p
ixel_rgn(0,0,$w,$h,0,0);initProgress__"Saving'$filename'asCOLORHTML...";$closetag=$closetag?"</font>
":"";printFILE"<html><bodybgcolor=black>\n<fontsize=\"$size\"><pre>\n";for(my$y=0;$y<$h;$y++){my$pel
=$region->get_row2(0,$y,$w);push@chars,@datawhile@chars<$w;if($html40){$pel=~s{(...)}{"<fontcolor=\"
#".unpack("H*",$1)."\">".shift(@chars).$closetag;}ges;}else{$pel=~s{(...)}{"<fontcolor=".unpack("H*"