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); |
|
|
|
![]() |
Post
#2
|
|
|
Grupa: Opiekunowie Postów: 3 855 Pomógł: 317 Dołączył: 4.01.2005 Skąd: że |
Też miałem ten problem, ale po nasiadówce dwutygodniowej udało mi się coś sklecić. Przykład nałożenia 3 grafik z zachowaniem przezroczystości:
|
|
|
|
Post
#3
|
|
|
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. |
|
|
|
Post
#4
|
|
|
Grupa: Opiekunowie Postów: 3 855 Pomógł: 317 Dołączył: 4.01.2005 Skąd: że |
Kod, który Ci podałem właśnie to robi - nakłada po kolei kilka grafik i zapisuje jako jedną. Możesz to sprawdzić tu.
|
|
|
|
Post
#5
|
|
|
Grupa: Zarejestrowani Postów: 164 Pomógł: 4 Dołączył: 29.08.2008 Ostrzeżenie: (0%)
|
I właśnie nie wiem, dlaczego u mnie widoczny jest ostatni z dołączanych grafik.... może gdzieś popełniłem błąd w tym kodzie.
|
|
|
|
Post
#6
|
|
|
Grupa: Opiekunowie Postów: 3 855 Pomógł: 317 Dołączył: 4.01.2005 Skąd: że |
Widocznie pobiera Ci tylko ostatni w pętli...
|
|
|
|
Post
#7
|
|
|
Grupa: Zarejestrowani Postów: 164 Pomógł: 4 Dołączył: 29.08.2008 Ostrzeżenie: (0%)
|
|
|
|
|
Post
#8
|
|
|
Grupa: Opiekunowie Postów: 3 855 Pomógł: 317 Dołączył: 4.01.2005 Skąd: że |
Nie musisz tego robić w pętli (po za pobraniem obrazków). Z tego co widzę, Twoja pętla chodzi tylko raz, więc musisz przestawić } w inne miejsca ;p
|
|
|
|
Post
#9
|
|
|
Grupa: Zarejestrowani Postów: 164 Pomógł: 4 Dołączył: 29.08.2008 Ostrzeżenie: (0%)
|
Każdy z poszczególnych plików png jest poprawnie nakładany w pętli, jednak, mimo poprawnie dodawanej przezroczystości, kolejny obrazek najpierw całkowicie przysłania poprzedni. A mi chodzi aby każdy był widoczny, wówczas z kilku grafik png stworzony zostanie jeden.
|
|
|
|
Post
#10
|
|
|
Grupa: Opiekunowie Postów: 3 855 Pomógł: 317 Dołączył: 4.01.2005 Skąd: że |
OK, spróbuj innej funkcji, odpowiedzialnej za nakładanie grafik godeł (4 godła na tarczy):
|
|
|
|
Post
#11
|
|
|
Grupa: Zarejestrowani Postów: 164 Pomógł: 4 Dołączył: 29.08.2008 Ostrzeżenie: (0%)
|
Działa..... dzięki.....
|
|
|
|
![]() ![]() |
|
Aktualny czas: 24.12.2025 - 04:36 |