Bug oder Feature im ImageMagick

22/10/2009 - 12:54 von - - | Report spam
Hallo,

ich habe mein System mal aufs neueste Debian hochgezogen - natürlich
auch mit den neuesten Perl-Modulen etc.

imagemagick 6.3.7.9.dfsg2-1~lenny3
perlmagick 6.3.7.9.dfsg2-1~lenny3

GD - Interface to Gd Graphics Library 2.44
GD::SecurityImage Security image (captcha) generator. 1.70

Zur Erstellung der Grafik nutze ich das Magick per use
GD::SecurityImage use_magick => 1; - Grund - damit kann ich jpg-
Grafiken bauen. Mit GD gehen nur PNG und da glaube ich nicht an die
hundertprozentige Kompatibilitàt in allen Browsern.

Ich baue damit meine Captche-Bilder. Hat früher auch gut funktioniert.
Das Hauptproblem - jetzt scheint die Bezier-Funktion nicht mehr
ordentlich zu funktionieren. Wenn die Bezierkurve jetzt mit der
Vordergrundfarbe gezeichnet wird, dann wird der Bereich "dazwischen"
vom Startpunkt zum Endpunkt ... also als ob zwischen Startpunkt bis
zum Endpunkt eine Linie gezogen wird und der Bereich zwischen der
Linie und der Bezierkurve wird mit der Hintergrundfarbe gefüllt.
Früher war der Bereich durchsichtig. Jetzt kann man somit nicht mehr
erkennen, was dahinter gezeichnet wurde.

Das Bild erstelle ich so:

$image = GD::SecurityImage->new(width => 100,
height => 50,
lines => 15,
ptsize => $fontsize,
frame => 0,
bgcolor => $backgroundcolor,
font => $font,
scramble => 1);

Dann male ich mit Hilfe der SecurityImage Funktionen die Zahlen und
dann nutze ich die ImageMagick Funktion, um die Bezier-Kurve zu malen.

$image->{image}->Draw(
primitive => 'bezier',
points => $liste_mit_punkten,
stroke => $textcolor,
strokewidth => 2,
antialias => $antialias);

Hierbei wird jetzt oben genannte Bezier-Kurve gezeichnet.

Jemand ne Idee was ich machen muß, damit die Kurve wieder mit
durchsichtigem Hintergrund gezeichnet wird ? Irgndwie habe ich bei der
Durchsicht der ImageMagick Funktionen dazu nichts gefunden oder
übersehen.


MFG
Christoph
 

Lesen sie die antworten

#1 Wolfgang Mahringer
22/10/2009 - 13:36 | Warnen spam
Hi Christoph,

Ich baue damit meine Captche-Bilder. Hat früher auch gut funktioniert.
Das Hauptproblem - jetzt scheint die Bezier-Funktion nicht mehr
ordentlich zu funktionieren. Wenn die Bezierkurve jetzt mit der
Vordergrundfarbe gezeichnet wird, dann wird der Bereich "dazwischen"
vom Startpunkt zum Endpunkt ... also als ob zwischen Startpunkt bis
zum Endpunkt eine Linie gezogen wird und der Bereich zwischen der
Linie und der Bezierkurve wird mit der Hintergrundfarbe gefüllt.
Früher war der Bereich durchsichtig. Jetzt kann man somit nicht mehr
erkennen, was dahinter gezeichnet wurde.



Das JPG Format kennt keine durchsichtigen Bildteile.
PNG kann das.

vg,
Wolfgang

From-address is Spam trap
Use: wolfgang (dot) mahringer (at) sbg (dot) at

Ähnliche fragen