Ligge PNG oven på JPG
Hej..Jeg har et billede hvor jeg ska have lagt et PNG billede op, vha. GDlib 2..
PNG billedet indeholder mest gennemsigtig farve, og det er vigtigt at denne beholdes, (overlay er noget gennemsigtig 3d tekst ) jeg har fået det til at blive lagt oven på, men det bliver sort/hvid, og derfor ikke gennemsigtig..
function thumb($input, $output, $Width, $text = 'none')
//Bruges: thumb(src, dest, dest_w);
{
putenv('GDFONTPATH=C:\\WINDOWS\\Fonts\\'); //Sætter dir hvor fonts ligger
$imgsize = @getimagesize($input); //Får billedstørrelsen
$inputWidth = $imgsize[0]; //Bredden
$inputHeight = $imgsize[1]; //Højden
if($inputWidth >= $Width){
$ratioWidth = $inputWidth/$Width; //Forholdet regnes ud så billedet ikke ændre propotioner
$ratioHeight = 0;
$destWidth = $Width;
$destHeight = $inputHeight / $ratioWidth; //Den reelle højde på det nye billede
//Hvis filen er JPG behandler vi billedet som et JPG
$simg = imagecreatefromjpeg($input); //Her laver vi billedet
$dimg = imagecreatetruecolor($destWidth,$destHeight); //Her laver vi et blank billede i "truecolor" så vi ikke mister billedekvallitet
ImageCopyResampled($dimg, $simg, 0, 0, 0, 0, $destWidth,(int)$destHeight, $inputWidth, $inputHeight); //Her ændre vi størrelsen
//Skriver $text på billedet
if($text != 'none'){
// $hvid = imagecolorallocatealpha($dimg, 255, 255, 255, 50); //sætter farven
$destHeight = $destHeight / 2;
$destWidth = $destWidth / 2;
imagettftext($dimg, 13, 0, $destHeight, $destWidth, $hvid, "arial", $text); //Skriver teksten
//læg et billede OVEN på et andet billede:
$s_overlay = imagecreatefrompng("./pics/overlay.png");
imagecopy($dimg, $s_overlay, 0, 0, 0, 0, 500, 60);
}
imagejpeg($dimg, $output, 100); //Og gemmer det
//Ellers hvis det er PNG behandler vi det som et PNG
imagedestroy($simg); //Sletter source billede
imagedestroy($dimg); //Og dest. billeder
return $output;
}
}
