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=("&"=>"&","<"=>"<",">"=>">",);#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=("&"=>"&","<"=>"<",">"=>">",);#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=("&"=>"&","<"=>"<",">"=>">",);#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*"