Avatar billede emingos Nybegynder
29. august 2005 - 16:57 Der er 7 kommentarer og
1 løsning

2 billeder oven op hinanden med imagecopymerge

Hey alle sammen.

<?php

$src_file = 'source.jpg';
list($src_w, $src_h, $src_t, $src_a) = getimagesize($src_file);

$ptr_file = 'pointer.png'; // must have no transparency, but white background
list($ptr_w, $ptr_h, $ptr_t, $ptr_a) = getimagesize($ptr_file);

// destination image dimensions:
$dst_w = 400;
$dst_h = 200;

// pointer position:
$ptr_x = 195;
$ptr_y = 70;

$srcImage = imageCreateFromJpeg($src_file) or die ('failed imageCreateFromJpg');
$dstImage = imageCreateTrueColor($dst_w, $dst_h) or die ('failed imageCreateTrueColor');

imageCopyResampled($dstImage, $srcImage, 0, 0, 0, 0, $dst_w, $dst_h, $src_w, $src_h) or die ('failed imageCopyResampled');

$ptrImage = imageCreateFromPng($ptr_file) or die ('failed imageCreateFromPng');

$ptr_white = imageColorAllocate($ptrImage,255,255,255);
imageColorTransparent($ptrImage,$ptr_white);

imageCopyMerge($dstImage, $ptrImage, $ptr_x, $ptr_y, 0, 0, $ptr_w, $ptr_h, 100) or die ('failed imageCopyMerge');

imageJpeg($dstImage,'',100) or die ('failed imageJpeg');

imageDestroy($srcImage) or die ('failed imageDestroy(1)');
imageDestroy($dstImage) or die ('failed imageDestroy(2)');
imageDestroy($ptrImage) or die ('failed imageDestroy(3)');

?>

jeg prøver at ligge to billeder sammen med imagecopymerge (med koden ovenfor) ved at bruge et jpg som baggrund og et png som det der skal ligges ovenpå, png billeder har så 255,0,0 altså rød som baggrund
men den skulle gerne forsvine når den bliver lagt oven på den andet billed, men der kommer en lille kant. (see linket.)

http://img297.imageshack.us/img297/3263/tester2jb.jpg
Avatar billede emingos Nybegynder
29. august 2005 - 17:01 #1
spørgsmål.. kan jeg fjerne kanten? eller er der evt en anden måde end imagecopymerge jeg kan bruge?
Avatar billede jakobdo Ekspert
29. august 2005 - 17:03 #2
Det jeg tror er problemet, er at dit png billede har nogle farver i siderne, som er faded.
Det understøtter jpg ikke.
Prøv at lav kanterne helt "skarpe" i din png billede.
Avatar billede emingos Nybegynder
29. august 2005 - 17:12 #3
hmm det virkede, men jeg skal bruge runde former på tegningerne hvordan drejer jeg så den?
Avatar billede jakobdo Ekspert
29. august 2005 - 17:17 #4
Det ved jeg faktisk ikke!
Du har jo lave baggrund rød, og laver den så transparent.
Men farverne som fader er jo ikke 100% røde, derfor kan du stadig se dem.
Hvad hvis du opretter et png billede i f.eks. adobe photoshop og starter med transparent baggrund, så du ikke som nu har en farve du igen fjerner?
Kan du følge mig?
Avatar billede emingos Nybegynder
29. august 2005 - 17:26 #5
ja.. det tænkte jeg også også lidt.. på det ville bare være meget nemmere på denne måde, kigger lige på php.net så vender jeg tilbage
Avatar billede emingos Nybegynder
29. august 2005 - 18:15 #6
nå fik det til at virke med gif, og transparent..
smider du lige et svar jakobdo?
<?php

$bg = './random_image_bg.jpg';
$gif = './random_image_number_%d.gif';

$bgImg = imageCreateFromJPEG($bg);
$nmImg = imageCreateFromGIF($gif);

imageCopyMerge($bgImg, $nmImg, 10, $ys1, 0, 0, 20, 30, 50);

header("Content-type: image/jpg");
ImageJPEG($bgImg,"",100);

imagedestroy($bgImg);
imagedestroy($nmImg);
?>
Avatar billede jakobdo Ekspert
29. august 2005 - 22:06 #7
Svar!
Avatar billede jakobdo Ekspert
30. august 2005 - 08:13 #8
Takker for point!
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