[GDLib] Bild über Text legen

Johnnii360

Erfahrenes Mitglied
Hallo zusammen!

Ich möchte das Captcha-Script das ich hier habe noch ein wenig verfeinern und noch ein wenig sicherer gestalten. Ich möchte mittels imagecreate() eine leere Kollage erzeugen, und dann mittels imagettftext() den Captcha-Code drauf klopfen.

So sieht das funktionierende Script dann aus: (soweit bin ich gekommen)

PHP:
<?php
header ("Content-type: image/png");
$im = imagecreate (150, 30) or die ("Kann keinen neuen GD-Bild-Stream erzeugen");
$background_color = ImageColorAllocate ($im, 255, 255, 255);
$text_color = ImageColorAllocate ($im, 51, 51, 51);

imagettftext($im, 19, 0, 30, 25, $text_color, "../2008/Johnnys Welt/include/fonts/BRLGORC0F", "123abc");

imagepng($im);
?>

Dieses funktioniert einwandfrei. Wenn ich aber nun das transparente Bild wie in folgenden Code darüberlege, dann wird mir nur das Bild angezeigt.

PHP:
<?php
header ("Content-type: image/png");
$im = imagecreate (150, 30) or die ("Kann keinen neuen GD-Bild-Stream erzeugen");
$background_color = ImageColorAllocate ($im, 255, 255, 255);
$text_color = ImageColorAllocate ($im, 51, 51, 51);

imagettftext($im, 19, 0, 30, 25, $text_color, "../2008/Johnnys Welt/include/fonts/BRLGORC0F", "123abc");

$bild = ImageCreateFromPNG("../2008/Johnnys Welt/images/main/captcha.png");
imagecopy($im, $bild, 0, 0, 0, 0, 150, 30);

imagepng($im);
?>

Ich habe auch noch ein paar andere Kombis probiert. Hat aber leider alles nichts gebracht.

Ich möchte auch gerne, dass das Bild auch die Transparenz in voller Blüte verwendet, sodass ich auch abgerundete Kanten mit Antialias verwenden kann.

Ich würde mich über Eure Hilfe sehr freuen.
Vielen Dank im Voraus!
 
imagecolortransparent könnte dir weiterhelfen. Im Manual bei den Kommentaren steht auch einiges zur png transparenz.

Wäre es nicht besser den Hintergrund mit ein paar randoms und hashes zu generieren und dann z.B. ein paar Linien drüber zu malen, oder ähnliches?
 
Zurück