Frage von Dereta, 69

PHP ImageCreateFromPNG transparenz fehlerhaft. Wo ist der Fehler?

Hey Leute :) Möchte mithilfe von PHP Bilder erstellen lassen. Dies soll aus mehreren Bildern geschehen die u.a. auch Transparent sind.

Jedoch funktioniert das ganz nicht so wie es soll. Entweder werden bekommen die Bilder einen Farbstich der Farbe die Eigentlich als Transparent eingestellt ist (imagefill($image, $colorTrans) & imagecolortransparent($image, $colorTrans)) Oder die Transparenz fehlt komplett.

Hier der Code:

header("Content-type: image/png");

include("../config/config.php");


$user = $_GET["user"];

$image = imagecreatetruecolor(120, 120);
// Bilder Laden
$backgroundMain = imagecreatefrompng("../image_profile/profile_background.png");
imagealphablending($backgroundMain, true);
imagesavealpha($backgroundMain, true);
$backgroundName = imagecreatefrompng("../image_profile/profile_background_name.png");
imagealphablending($backgroundName, true);
imagesavealpha($backgroundName, true);

// Farben festlegen
$colorTransparent = imagecolorallocate($image, 255, 255, 0);
$colorWhite = imagecolorallocate($image, 255, 255, 255);
$colorBlack = imagecolorallocate($image, 0, 0, 0);
$colorRed = imagecolorallocate($image, 190, 0, 0);

// Transparenz Erzeugen
imagefill($image, 0, 0, $colorTransparent);
imagecolortransparent($image, $colorTransparent);

imagecopy($image, $backgroundMain, 0, 0, 0, 0, 120, 120);
imagecopy($image, $backgroundName, 0, 0, 0, 0, 120, 120);

// Ausgabe des Bildes
imagepng($image);

Und hier wie das ganze Live aussieht: (Das Gelbe sollte eigentlich Transparent sein :<) http://edit.codersgen.de/image_php/profilePicture.php

Ich freue mich über eure Zahlreichen Antworten und hilfen.

Euer Ben

Antwort
von happyfish2, 47

Die Original-PNGs sind 8 bit oder 24 bit? Wenn ersteres, versuch es mal als 24bit Version zu speichern und dann neu zu mergen.

Kommentar von Dereta ,

sind 8 Bit. Habe aber nur die möglichkeiten 8,16 oder 32 Bit... Grüße

Kommentar von happyfish2 ,

Dann versuch es mit 16 oder 32... aber beide ;)

Kommentar von Dereta ,

Habe es jetzt anders hinbekommen (imagecreatetruecolor durch imagecreate ersetzt) jedoch bekomme ich jetzt beim einfügen eines bildes über imagecopy probleme mit der Transparenz-,-...

Siehe Logo:

http://edit.codersgen.de/?site=about

Keine passende Antwort gefunden?

Fragen Sie die Community

Weitere Fragen mit Antworten