Avatar billede lobster Nybegynder
08. april 2003 - 20:33 Der er 5 kommentarer og
1 løsning

Et billede på et billed transparent

Hey!


Jeg har lavet et script som skal sætte et billede oven på et andet billede. Det billede som sættes oven på, er png og baggrunden er transparent.

Scripted virker også, udover at baggrunden på png billedet bliver hvid og ikke "løber ud" med det andet billede.

Her er mit script :

//Det første billede redigeres

$pic1 = ImageCreateFromJPEG($upfile) ;
                      $sizeX = ImageSX($pic1);
                      $sizeY = ImageSY($pic1);
                   
                      $newX = 480;
                  $modsize = $newX / $sizeX;
                    $newY = round($sizeY * $modsize);
                    $pic2 = imagecreatetruecolor($newX, $newY);
                      ImageCopyResampled($pic2,$pic1, 0,0, 0,0, $newX,$newY, $sizeX,$sizeY);
                    $sizeXx = ImageSX($pic2);
                      $sizeYx = ImageSY($pic2);   
//PNG billedet hentes frem og positioneres       
            $pic11 = imagecreatefrompng("/path/stamp.png") ;
            $sizeXy = ImageSX($pic11);
                      $sizeYy = ImageSY($pic11);
            $dest_x = $sizeXx - $sizeXy;
            $dest_y = $sizeYx - $sizeYy;
                   
//Billederne bliver sat sammen                   
                    imageCopyMerge($pic2, $pic11,$dest_x,$dest_y,0,0,$sizeXy,$sizeYy,100) ;
                    ImageJPEG($pic2, path/".$upfile_name, 100);
                      echo "<IMG SRC=\"/path/$upfile_name\"> X = $sizeXx <BR> Y = $sizeYx <BR> <A HREF=test.php>tilbage</a>" ;
            ImageDestroy($pic2);



Hvordan kan det være at den transparente baggrund ikke virker på png billedet? understøtter png ikke transparet?

Håber i kan give mig et svar.

Hvis det er svært, er jeg villig til at donere flere points...

Hilsen Lobster
Avatar billede lobster Nybegynder
08. april 2003 - 20:35 #1
Forsøg på at gøre koden mere overskuelig...

//Det første billede redigeres

$pic1 = ImageCreateFromJPEG($upfile) ;
$sizeX = ImageSX($pic1);
$sizeY = ImageSY($pic1);
                   
$newX = 480;
$modsize = $newX / $sizeX;
$newY = round($sizeY * $modsize);
$pic2 = imagecreatetruecolor($newX, $newY);
ImageCopyResampled($pic2,$pic1, 0,0, 0,0, $newX,$newY, $sizeX,$sizeY);
$sizeXx = ImageSX($pic2);
$sizeYx = ImageSY($pic2);   
//PNG billedet hentes frem og positioneres       
$pic11 = imagecreatefrompng("/path/stamp.png") ;
$sizeXy = ImageSX($pic11);
$sizeYy = ImageSY($pic11);
$dest_x = $sizeXx - $sizeXy;
$dest_y = $sizeYx - $sizeYy;
                   
//Billederne bliver sat sammen                   
imageCopyMerge($pic2, $pic11,$dest_x,$dest_y,0,0,$sizeXy,$sizeYy,100) ;
ImageJPEG($pic2, path/".$upfile_name, 100);
echo "<IMG SRC=\"/path/$upfile_name\"> X = $sizeXx <BR> Y = $sizeYx <BR> <A HREF=test.php>tilbage</a>" ;
ImageDestroy($pic2);
Avatar billede hmm10 Nybegynder
08. april 2003 - 23:03 #2
Jeg er ikke 100% sikker, men jeg mener ikke, at png understøtter transparet.. det gør gif.
Avatar billede lobster Nybegynder
08. april 2003 - 23:17 #3
Ja det er det, men serveren har GDlib 2.0 og der er gif understøttelsen væk, så jeg skal bruge en løsning til min version af gdlib..

Men et alternativ er også velkommen..
Avatar billede hermandsen Juniormester
09. april 2003 - 00:10 #4
PNG understøtter transparens... Det gør IE dog ikke, med mindre der laves en omvej...

Vi har tidligere diskuteret det i http://www.eksperten.dk/spm/300706

Jeg ved ikke hvordan det laves i PHP, men hænger lige på tråden da jeg selv har brug for noget i samme retning... :)
Avatar billede lobster Nybegynder
06. juni 2003 - 14:25 #5
Det her virker :)

$pic1 = ImageCreateFromJPEG($upfile) ;
ImageAlphaBlending($pic1, true);

$logoImage = ImageCreateFromPNG('logo.png');
$logoW = ImageSX($logoImage);
$logoH = ImageSY($logoImage);
           
$finsizex = (($newX - 4) - $logoW) ;
$finsizey = (($newY - 4) - $logoH) ;
           
ImageCopy($pic1, $logoImage, $finsizex ,$finsizey ,0,0, $logoW, $logoH);
ImageJPEG($pic1,"/path/".$upfile_name, 85);    // der hvor filen skal gemmes
ImageDestroy($pic1);                
ImageDestroy($logoImage);
Avatar billede eneq Nybegynder
10. januar 2005 - 13:03 #6
Dygtig dreng ;)
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