Denna kodrad verkar funka mycket bättre:
imagecopy($source,$dotimage,$xpos,$ypos,0,0,$dotimageX,$dotimageY);
istället för imagecopymerge();
1 svar · 378 visningar · startad av UrMe
Försöker sätta ihop en stor jpg bakgrund och ovanpå denna ska det in en transparent png in, men mitt problem är att png:en blir inte helt transparent när bilderna har satts ihop.
T.ex här är png bilden jag använder:
http://www.urme.com/df/dot1.png (En png24 sparad i photoshop)
Så här ser det ut efter jag satt ihop bakgrunden och denna png:
http://www.urme.com/df/exempel.jpg
Så här ser koden ut:
function addnewdot($dotimagesource, $source, $xpos, $ypos) {
$dotimage = imagecreatefrompng($dotimagesource);
$dotimageX = imagesx($dotimage);
$dotimageY = imagesy($dotimage);
imagealphablending($dotimage, true);
imagesavealpha($dotimage, true);
$xpos = $xpos - ($dotimageX/2);
$ypos = $ypos - ($dotimageY/2);
imagecopymerge($source,$dotimage,$xpos,$ypos,0,0,$dotimageX,$dotimageY,100);
}
$dotimage1 = "dot1.png";
$backgroundSource = "karta.jpg";
$source = imagecreatefromjpeg($backgroundSource);
addnewdot($dotimage1, $source, 33, 271);
addnewdot($dotimage1, $source, 233, 271);
header('Content-type: image/jpg');
imagejpeg($source);
imagedestroy($source);
Som ni ser har jag försökt lägga dit imagealphablending och imagesavealpha, men gav inget bättre resultat. Hur kan jag få png bilden att vara transparent som den bör vara?
Denna kodrad verkar funka mycket bättre:
imagecopy($source,$dotimage,$xpos,$ypos,0,0,$dotimageX,$dotimageY);
istället för imagecopymerge();