2 Bilder verschmelzen, mit transparentem Verlauf

bandsite

Mitglied
Hallo,
Ich möchte 2 Bilder per php verschmelzen.

Ich habe 2 .png Dateien. Das erste ist ein ganz normales Bild ohne Tranzparenz. Das zweite ist ein .png mit einem Verlauf der von Schwarz ins Transparente geht. Ich möchte die beiden Bilder so verschmelten, dass der schwarze Verlauf über dem ersten Bild zu sehen ist.

Ich es mittels imagecopymerge() versucht, allerding läßt sich damit nur die "gesamte" Transparenz des überliegenden Bildes einstellen, also prozentual, die Transparenz die im .PNG selber ist wird ignoriert, zumind. die Bereiche die nur Teiltransparent sind.

Kennt vieleicht jemand einen lösungsweg?, bzw geht das überhaupt?
Gibt es evtl. eine andere Möglichkeit einen Verlauf auf ein Bild "anzuwenden" ?


Güße und wie immer vielen Dank, BS


//edit: Okay, Ich versuche es immer erstmal ewig alleine bis ich dann nicht mehr weiter weiss und dann hier poste... irgendwie bring das Glück, meistens finde ich es nach dem posting dann doch selber raus =)

also: imagealphablending($new, true); bringts =)
 
Zuletzt bearbeitet:
Hallo,

bei mir funktioniert Folgendes einwandfrei:
PHP:
<?php 

$img = imagecreatefrompng('bild.png');
$watermark = imagecreatefrompng('wasserzeichen.png');

imagecopy($img, $watermark, 0, 0, 0, 0, 200, 200);

header('Content-Type: image/png');
imagepng($img);

?>
Beide Bilder waren bei meinem Test 200×200 Pixel groß.

Grüße,
Matthias
 
Hi,
Ja Danke für deinen Post, Ich habe es inzwischen selber herausgefunden:

PHP:
		function createThumb($path, $file)
		{
			$size = getimagesize($path.$file);
			$width = $size[0]; 
			$height = $size[1]; 
			$newwidth = 100; 
			$newheight = 80;

			$old = imagecreatefromPNG($path.$file);
			$new = imagecreatetruecolor($newwidth, $newheight);
			imagecopyresampled($new, $old, 0, 0, 0, 0, $newwidth, $newheight, $width, $height);

			imagealphablending($new, true);
			
			$front = imagecreatefrompng('./images/front.png');
			imagecopyresampled($new, $front, 0, 0, 0, 0, $newwidth, $newheight, $newwidth, $newheight); 
			
			ImagePNG($new, $path.'thumb_'.$file);
			ImageDestroy($old);
			ImageDestroy($new);
			ImageDestroy($front);
		}

Danke dir trotzdem.
 
Zurück