Avatar billede the_saint Nybegynder
07. januar 2004 - 09:41 Der er 2 kommentarer og
1 løsning

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;
}
}
Avatar billede sukos Juniormester
07. januar 2004 - 13:04 #1
æhh, vil du lave et jpg billede gennemsigtigt? Det kan man jo ikke
Avatar billede the_saint Nybegynder
07. januar 2004 - 14:44 #2
Nej, jeg har et JPG billede, og et PNG billede, PNG billedet er gennemsigtigt, og det ska lægges OVEN på JPG billedet...
Avatar billede the_saint Nybegynder
07. januar 2004 - 18:02 #3
Har fundet svaret:

function thumb($input, $output, $Width, $text = 'none')
    //Bruges: thumb(src, dest, dest_w);
{
$images = @getimagesize($input);
$inputWidth = $images[0]; //Bredden
$inputHeight = $images[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'){
            ImageAlphaBlending($dimg, true);
            $overlay = ImageCreateFromPNG('./pics/overlay.png');
            $logoW = ImageSX($overlay);
            $logoH = ImageSY($overlay);
            $destLogoH = $destHeight / 2;
            ImageCopy($dimg, $overlay, 0, $destLogoH, 0, 0, $logoW, $logoH);
        }
imagejpeg($dimg, $output, "100"); //Og gemmer det
imagedestroy($simg); //Sletter source billede
imagedestroy($dimg);  //Og dest. billede
return $output;
}
}

Denne funktion resizer billedet, og hvis $text er sat så ligger den det overlay over billedet, gemmer det...
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester