Mailinglist Archive: opensuse-programming-de (244 mails)

< Previous Next >
Re: Speicherzugriffsfehler abfangen in perl
  • From: Joerg Rossdeutscher <ratti@xxxxxxxxxxx>
  • Date: 23 Jun 2003 19:34:15 +0200
  • Message-id: <1056389653.490.17.camel@xxxxxxxxxxx>
Moin,

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)
>
> Äh - stehe ich auf dem Schlauch? Sehe ich das Problem eigentlich nicht?
> ImageMagick mit "system" aufrufen und schlicht und einfach den Return-Code
> auswerten?

Das ruft IM über die Shell auf. Mit der Methode wird die Kiste noch bis
zur nächsten Eiszeit rechnen. :-)

ImageMagick ist direkt als Per-lModul verfügbar. Etwa so:

use Image::Magick;
$img=Image::Magick->new( size => '512x512',
background => 'white',
depth => 8);
$img->ReadImage("xc:white");
$img->Annotate(
x=> 128,
y => 128+256,
pointsize => 256,
font => $filename,
fill => 'black',
undercolor => 'white',
text => $text
);
$img->Quantize( colors => 2,
dither => 0);
$img->Set( matte => 0);
$img->Trim();
$img->Resize( width => 256,
height => 256,
blur => 0
);


Guck dir mal den "Annotate"-Befehl da oben an. Wenn da $filename auf
einen kaputten Font zeigt, dann semmelt das ganze Programm weg. Das muß
ich unterbinden, weil das alles in einer Schleife geschieht und drei
Tage Rechenzeit hier völlig normal sind. Ich kann nicht jedesmal das
Programm neustarten, weil einer von 1000 Fonts kaputt ist. Oder
wohlmöglich nicht mal kaputt, sondern IM einen Bug hat.

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/
< Previous Next >
Follow Ups