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

< Previous Next >
Re: forken in perl
  • From: Joerg Rossdeutscher <ratti@xxxxxxxxxxx>
  • Date: Sun, 28 Dec 2003 19:19:25 +0100
  • Message-id: <1072635565.665.138.camel@xxxxxxxxxxx>
Moin,

Am So, den 28.12.2003 schrieb Andre Heine um 18:04:
> Ich denke aber das Ratti trotzalledem mal eval() ausprobieren
> sollte, die Sache mit dem Pragma hört sich im Buch auch sehr nett
> an.

Das fesselt dich anscheinend... :-)
Natürlich war eval das erste, was ich ausprobiert habe, danach auch
etwas härtere Geschütze. :-)

> Obwohl mich diese Diskussion sehr daran zweifeln lässt, das das
> funktioniert ;(

Eine gute Nachricht: Du hast Recht. :-)))

> Leider habe ich keine Ahnung von Fonts, deshalb ist folgenden
> Aussage mit vorsicht zu geniessen.
>
> IMHO würde der ganze Kram nicht anfallen, wenn man den Font
> korrekt überprüfen könnte und damit den segfault vermeidet.
> (Bitte nicht lachen)

"Fonts" sind in diesem Fall PostScript- bzw. OpenType-Fonts. Bei beiden
Formaten handelt es sich (jeweils!) praktisch um eine komplette Sprache.

Das ist, als würde mein Programm ein beliebiges Script starten dürfen
und ich müsste vorher garantieren, dass es ohne Fehler läuft - nicht
machbar.

Fonts gehören zu den komplexesten Dateiformaten, die mir jeweils
untergekommen sind. Bestimmt können andere das toppen. Aber das ist
schon krass.

> Ratti schreibt, das er den Font an freetype übergibt. Wie/womit
> machst er das?
>
> C in Perl? Ein Modul das in C geschrieben ist?

ImageMagick, bzw. das perl-Modul dafür. IM wiederum verwendet freetype
und ghostscript. Anbei etwas fragmentarischen Beispielcode:


my $image;
my $background='#ffffff';
$image=Image::Magick->new(
size => '450x120',
background => $background,
depth => 8);
$image->ReadImage("xc:$background");
$image->Annotate(
x => 0,
y => 90,
pointsize => 90,
font => $filename,
antialias => 1,
fill => 'black',
undercolor => $background,
text => 'Fontlinge äöüß'
);
$image->Write("$image_name");
undef $image;


Der "Annotate"-Befehl schreibt einen Text als Bild in ein Image. Dabei
kann man nicht nur installierte Fonts angeben, sondern, und das brauche
ich, eine beliebige, nicht installierte Fontdatei.

Auf die Art erzeuge ich ein paar zehntausend Previews. Siehe Signatur.
:-)

Bevor die Idee aufkommt: Aufgrund der großen Anzahl der Aufrufe ist ein
externes Skript in Backticks nicht akzeptabel. Es würde mehrere
zehntausend mal perl starten.

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