Moin, Am Mon, 2003-06-23 um 19.34 schrieb Joerg Rossdeutscher:
Am Mon, 2003-06-23 um 11.22 schrieb Stefan Hundhammer:
On Sunday 22 June 2003 21:54, Joerg Rossdeutscher wrote:
Da auch mal ein Font kaputt ist oder ImageMagick einen Bug hat oder oder oder... kann es sein, daß IM dabei einen Speicherzugriffsfehler erzeugt. Den will und muß ich abfangen (Andere Lösungen wie das Entfernen des kaputten Fonts sind nciht möglich, das zu erklären würde zu weit führen)
So, wenn mir keiner hilft, muß ich's halt selber rausfinden. :-) Nochmal in Kurzfassung: Ich will SEGV's abfangen, das Programm soll weiterlaufen, als wäre nichts gewesen. Und zwar lediglich für die Dauer eines Annotate-Befehls für Perlmagick, weil der auf einen kaputten Font stoßen könnte. Würdet ihr das hier als einigermaßen saubere Lösung erachten? sub read_image_fnt { my $filename=shift(@_); my $text=shift(@_); my $img; $img=Image::Magick->new( size => '512x512', background => 'white', depth => 8); $img->ReadImage( "xc:white"); # Hier wird es lustig foreach my $i (keys(%SIG)) { $SIG{$i} = sub { goto SEGV;} } # Dieser Befehl kann crashen eval { $img->Annotate( x => 128, y => 128+256, pointsize => 256, font => $filename, fill => 'black', undercolor => 'white', text => $text ); }; foreach my $i (keys(%SIG)) { $SIG{$i} = 'DEFAULT'; } return $img; SEGV: return ""; } Prinzipiell habe ich ein schlechtes Gefühl, wegen GOTO. Gruß, Ratti -- -o) fontlinge | Font management for Linux | Schriftenverwaltung in Linux /\\ http://freshmeat.net/projects/fontlinge/ _\_V http://www.gesindel.de https://sourceforge.net/projects/fontlinge/