okay. ich habe hier einen transparenten hintergrund, und 2 transparente pngs. (mit alpha) diese will ich aufeinanderlegen.
dabei sollen beide bilder aufeinander sein, das 2. das erste teilweise überdecken und der hintergrund transparent sein.
ich habe hier schon einiges probiert (und die suchfunktion genutzt), dabei habe ich 2 ergebnisse bekommen.
1.:
das erzeugt 2 bilder, übereinander, ohne weisse pixel am rand, allerdings ist bei test2.png der transparente hintergrund über test1.png.
(der hintergrund bleibt transparent, aber test1.png ist jetzt bis zum bildrand von test2.png abgehackt, test2.png überdeckt also test1.png)
2. möglichkeit:
alles was ich geänderthabe ist imagecreate() zu imagecreatetruecolor()
jetzt liegen die 2 bilder zwar richtig übereinander, und test1.png wird nicht abgehackt, aber dafür nehmen die äußeren alphapixel die farbe von $white an (in diesem fall weiß), anstatt transparent zu sein.
dabei sollen beide bilder aufeinander sein, das 2. das erste teilweise überdecken und der hintergrund transparent sein.
ich habe hier schon einiges probiert (und die suchfunktion genutzt), dabei habe ich 2 ergebnisse bekommen.
1.:
PHP-Code:
<?
header("Content-type: image/png");
$img = imagecreate(100,300);
$white = imagecolorallocate ($img,255,255,255);
$transparency = imagecolortransparent($img,$white);
imagefill($img,0,0,$white);
imagecopy($img,imagecreatefrompng("test1.png"),20,100,0,0,58,60);
imagecopy($img,imagecreatefrompng("test2.png"),20,45,0,0,55,68);
imagepng($img);
imagedestroy($img);
?>
das erzeugt 2 bilder, übereinander, ohne weisse pixel am rand, allerdings ist bei test2.png der transparente hintergrund über test1.png.
(der hintergrund bleibt transparent, aber test1.png ist jetzt bis zum bildrand von test2.png abgehackt, test2.png überdeckt also test1.png)
2. möglichkeit:
PHP-Code:
<?
header("Content-type: image/png");
$img = imagecreatetruecolor(100,300);
$white = imagecolorallocate ($img,255,255,255);
$transparency = imagecolortransparent($img,$white);
imagefill($img,0,0,$white);
imagecopy($img,imagecreatefrompng("test1.png"),20,100,0,0,58,60);
imagecopy($img,imagecreatefrompng("test2.png"),20,45,0,0,55,68);
imagepng($img);
imagedestroy($img);
?>
jetzt liegen die 2 bilder zwar richtig übereinander, und test1.png wird nicht abgehackt, aber dafür nehmen die äußeren alphapixel die farbe von $white an (in diesem fall weiß), anstatt transparent zu sein.
Kommentar