2010-02-15 10 views
14

Ich möchte Folgendes in PHP tun:Setzen Sie PNG über ein JPG in PHP

Ich habe zwei Bilder, ein JPG und ein PNG. Ich möchte die Größe des JPG auf die gleiche Größe wie das PNG und dann das PNG auf die Oberseite. Das PNG hat Transparenz, also möchte ich das beibehalten, damit das JPG darunter erscheint.

Wenn jemand helfen könnte, wäre das großartig!

Dank

+1

Blick in die GD (oder GD2) Bibliothek für PHP. – Moshe

+0

Ich möchte dies in Woocommerce erreichen kann jemand direkt – VedX

+0

Es ist nicht doppelt. Es ist ein anderer Ansatz. – SaidbakR

Antwort

35
<? 
$png = imagecreatefrompng('./mark.png'); 
$jpeg = imagecreatefromjpeg('./image.jpg'); 

list($width, $height) = getimagesize('./image.jpg'); 
list($newwidth, $newheight) = getimagesize('./mark.png'); 
$out = imagecreatetruecolor($newwidth, $newheight); 
imagecopyresampled($out, $jpeg, 0, 0, 0, 0, $newwidth, $newheight, $width, $height); 
imagecopyresampled($out, $png, 0, 0, 0, 0, $newwidth, $newheight, $newwidth, $newheight); 
imagejpeg($out, 'out.jpg', 100); 
?> 
+0

Vielen Dank! Stuck auf dem ähnlichen Verschmelzungsproblem für den dritten Tag ohne irgendwelche Ideen (* alles vergessen, was vorher wusste *) ... meine * Seele * gerettet! Vielen Dank! Gott segne dich! –

+0

Code funktioniert nicht. Es wird das Symbol "Bild nicht gefunden" angezeigt. – Anupal

4

Dies ist der Arbeitscode, der i

$dest = imagecreatefrompng('mapCanvas.png'); 
$src = imagecreatefromjpeg('si.jpg'); 
imagealphablending($dest, false); 
imagesavealpha($dest, true); 
// Copy and merge 
imagecopymerge($dest, $src, 17, 13, 0, 0, 60, 100, 100); 

// Output and free from memory 
header('Content-Type: image/png'); 
imagepng($dest); 

imagedestroy($dest); 
imagedestroy($src); 
Verwandte Themen