Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Problem z nakładaniem kilku obrazków png transparent
Czadus
post
Post #1





Grupa: Zarejestrowani
Postów: 164
Pomógł: 4
Dołączył: 29.08.2008

Ostrzeżenie: (0%)
-----


Witam,

przeczytałem już dziesiątki stron szukając rozwiązania na mój problem i prawdę mówiąc, pomysłów mi już brakło, albo, po prostu rozwiązanie mam przed nosem jednak nie potrafię go poprawnie wykorzystać. Potrzebuję wykonać następującą operację, z kilku plików PNG zawierających przezroczystość, stworzyć jeden plik, np. jpg, po czym przekazać go bezpośrednio do klasy fpdf tworzącej plik PDF z zawartym wewnątrz, wcześniej utworzonym, obrazkiem.

Na chwilę obecną mój kod wygląda następująco:
Kod
header("Content-type: image/png");
        
$obrazek=ImageCreate(ustawienia::$modelWidth, ustawienia::$modelHeight);
    
for($i=0;$i<sizeof($images);++$i){
    $tess = imagecreatefrompng($images[$i]);
    
    list($width, $height, $type, $attr) = @getimagesize($images[$i]);
    imagealphablending($tess, true);
    imagesavealpha($tess, true);
    imagecopymerge($obrazek, $tess, 0, 0, 0, 0, $width, $height, 100);
}

imagepng($obrazek);
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
Czadus
post
Post #2





Grupa: Zarejestrowani
Postów: 164
Pomógł: 4
Dołączył: 29.08.2008

Ostrzeżenie: (0%)
-----


Dzięki za szybką odpowiedź, rzeczywiście, Twój kod pomógł, jednak nie we wszystkim. Oczywiście powstaje nowy obrazek png z przezroczystością, jednak z trzeba nakładanych, faktycznie naniesiony jest tylko jeden, ostatni w pętli. A mi zależy na tym, aby każdy naniesiony obrazek był widoczny poprawnie. Czy masz może na to radę(IMG:style_emoticons/default/questionmark.gif) Mój aktualny kod wygląda następująco:

Kod
$sizes='';

for($i=0;$i<sizeof($images);++$i){
    list($width, $height, $type, $attr) = getimagesize($images[$i]);
    $images[$i] = imagecreatefrompng($images[$i]);
    
    $sizes[$i][0]=$width;
    $sizes[$i][1]=$height;
}

$imgWidth=ustawienia::$modelWidth;
$imgHeight=ustawienia::$modelHeight;
if(sizeof($sizes)>0){
    $imgWidth=$sizes[0][0];
    $imgHeight=$sizes[0][1];
}

$obrazek = imagecreatetruecolor($imgWidth, $imgHeight);
imagealphablending($obrazek, false);
imagesavealpha($obrazek, true);

for($i=0;$i<sizeof($images);++$i) {
    ImageCopyResampled($obrazek ,$images[$i], 0, 0, 0, 0, $imgWidth, $imgHeight, $imgWidth, $imgHeight);
}

header("Content-Type: image/png");
imagealphablending($obrazek, false);
imagesavealpha($obrazek, true);
imagepng($obrazek, NULL);

for($i=0;$i<sizeof($images);++$i)
    imagedestroy($images[$i]);


W $images znajdują się ścieżki do plików png.
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 9.10.2025 - 02:46