2017-12-27 3 views
0

ich imagecopyresampled() verwenden für Wasserzeichen hinzufügen auf ein Bild, alle mit JPG große Arbeit, oder 32/24Bit PNG aber mit 8 Bit PNG Ich habe diesen Fehler Bild:PHP Wasserzeichen PNG in PNG-Bild

enter image description here

Wie könnte ich das beheben?

Mein Code

$tempFile = $_FILES['upload']['tmp_name']; 
list($width, $height) = getimagesize($tempFile); 

$new_canvas = imagecreatefrompng($tempFile); 

// blending the images together 
imagealphablending($new_canvas, true); 

// Watermark 
$watermark = imagecreatefrompng('watermark.png'); //watermark image 
$width_watermark = imagesx($watermark); // 300px 
$height_watermark = imagesy($watermark); // 100px 

// blending the images together 
imagealphablending($watermark, true); 

//calculate size of watermark 
$stw = $width/4; 
$sth = $stw/3; 

//calculate center position of watermark image 
$watermark_left = ($width/2) - ($stw/2); //watermark left 
$watermark_bottom = ($height/2) - ($sth/2); //watermark bottom 

imagecopyresampled($new_canvas, $watermark, $watermark_left, $watermark_bottom, 0, 0, $stw, $sth, $width_watermark, $height_watermark); 

Ich habe bereits auf falsche imagealphableding aber sein das gleiche Ergebnis zu ändern versucht

Antwort

1

Beim Erstellen von Bildern PNG (wie Wasserzeichen) Sie dieses

$image = imagecreatefrompng($file_src); 
imagealphablending($image, true); // setting alpha blending on 
imagesavealpha($image, true); // save alphablending setting (important) 
tun sollten

Sie können meine Bildklasse ausprobieren, es ist ziemlich alt, also habe ich es nicht für immer benutzt. Vielleicht wird es funktionieren .. ich bin wie 50/50

https://github.com/ArtisticPhoenix/MISC/tree/master/Image

+0

Ah ja! Es hat funktioniert :) Danke dir –

+0

Sicher, froh, ich könnte helfen. Es war für immer Sinn, dass ich irgendetwas mit Bildern gemacht habe. – ArtisticPhoenix