localhorst: Transparentes PNG in JPG?

Hallo Forum

ich habe diverse Bilder auf die mittels PHP ein Schriftzug drauf soll.
Dieser Schriftzug ist PNG und der Hintergrund ist transparent.

Diese Transparenz soll erhalten bleiben.

Ich weiß das JPG keine Transparenz kennt, aber ich kann ja auch mit einem Grafikprogramm die beiden Bilder zusammen fühgen und dann geht es ja auch auch.

Ich habe dafür folgenden Codeschnipsel gefunden und dieser funktioniert auch (bis auf die Transparenz)

<?php
header('content-type: image/jpeg');

$watermark = imagecreatefrompng('d_lo_ru_schwarz.png');

$watermark_width = imagesx($watermark);
$watermark_height = imagesy($watermark);
$image = imagecreatetruecolor($watermark_width, $watermark_height);
$image = imagecreatefromjpeg('plakat_catwoman_dtb_100.jpg');
$size = getimagesize('plakat_catwoman_dtb_100.jpg');
$dest_x = $size[0] - $watermark_width - 5;
$dest_y = $size[1] - $watermark_height - 5;
imagecopymerge($image, $watermark, $dest_x, $dest_y, 0, 0, $watermark_width, $watermark_height, 100);
imagejpeg($image);
imagedestroy($image);
imagedestroy($watermark);
?>

Im Manual hab ich die folgende Funktion gefunden.
imagecolortransparent()
Die Schreit ja gerade danach von mir benutzt zu werden.

Aber wie? Im Manual steht ich soll eine Farbe als Transparentsfarbe benutzen. Soll das heißen ich pack zB den Schriftzug auf einen grünen HIntergrund und sag dann das genau der Farbton transp. sein soll?

Dann müßte ich ja das Bild garnicht Transparent machen,oder?

Geht die Transparentsfarbe denn nicht dann auch verloren, wenn ich es als JPG speicher, da JPG keine Transparents kennt?

Wäre nett wenn mir einer mit der Funktion eben auf die Sprünge hilft.

Gruß
Localhorst

  1. Moin!

    ich habe diverse Bilder auf die mittels PHP ein Schriftzug drauf soll.
    Dieser Schriftzug ist PNG und der Hintergrund ist transparent.

    Diese Transparenz soll erhalten bleiben.

    In den Kommentaren zu imagecopymerge() sind diverse Ansätze zu finden, wie man angeblich (ich habe nichts davon geprüft) Alpha-Transparenz mischen kann.

    Jedenfalls werden dort Funktionen benutzt, die in deinem Code noch nicht enthalten sind. :)

    - Sven Rautenberg