Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP] Generowanie grafiki
Forum PHP.pl > Forum > Przedszkole
php__amator
Witajcie przedszkolacy !

Pracuje ostatnio nad tym wlasnie tematem i wszystko mam juz praktycznie obczajone z jednym niewielkim wyjatkiem ....
mianowicie jesli do obrazka wklejam wbudowane fonty jest ok, jesli natomiast z pliku gdf to teoretycznie generuje obrazek ale .... i tu uwaga gdy zlapie i chce przeniesc obrazek na osobna zakladke albo probuje zapisac nalozony tekst ZNIKA ! pozostaje jedynie tlo.

KI DIABEL !?!?!?!

Czy to kwestia uzytych fontow gdf ? czy moze cos niedopatrzylem.
Wprowadzilo mnie w blad (bylem pewny, ze jest ok) gdy zlapalem obrazek i poruszalem to jego odwzorowanie wyglada jak by bylo ok. Jesli klikne zapisz to zamiast pliku png domyslnie pokazuje sie nazwa i typ pliku nazwa .php.

HELP ME PLEASE
Kshyhoo
Kto wie, może wróżki smile.gif Pokaż kod, bo bida i szklaną kulę zastawiłem w lombardzie ;p
PS. Sam tytuł nie odzwierciedla problemu, więc jest niezgodny z zasadami działu ph34r.gif
php__amator
A prosiem bardzo, oto kod.

Dane z formularza przesylane i podstawiane pod zmienne w czesci "// descriptions" jakies 20 linii ponizej smile.gif

  1. header("Content-type: image/jpg");
  2.  
  3. $title = "Label LAB";
  4. $desc = "by Ja";
  5.  
  6. $label = imagecreatetruecolor(500, 485);
  7. $graphic = imagecreatefromjpeg('label.jpg');
  8. $black = imagecolorallocate($label, 0, 0, 0);
  9. $text[0] = imagecolorallocate($label, 0, 0, 0);
  10. $font = imageloadfont('10x20.gdf');
  11. //$font = imageloadfont('arial.ttf');
  12. imagefilledrectangle($label, 0, 0, 500, 485, $white);
  13. imagecopy($label, $graphic, 0, 0, 0, 0, 500, 485);
  14. // labels
  15. imagestring($label, 2, 10, 10, 'Model:', $text[0]);
  16. imagestring($label, 2, 335, 10, 'Qty:', $text[0]);
  17. imagestring($label, 2, 10, 57, 'CPU:', $text[0]);
  18. imagestring($label, 2, 255, 57, 'RAM:', $text[0]);
  19. imagestring($label, 2, 335, 57, 'Config:', $text[0]);
  20. imagestring($label, 2, 335, 102, 'Speed:', $text[0]);
  21. imagestring($label, 2, 10, 128, 'HDD:', $text[0]);
  22. imagestring($label, 2, 122, 128, 'IDE', $text[0]);
  23. imagestring($label, 2, 122, 155, 'SATA', $text[0]);
  24. imagestring($label, 2, 173, 128, 'ODD:', $text[0]);
  25. imagestring($label, 2, 283, 128, 'IDE', $text[0]);
  26. imagestring($label, 2, 283, 155, 'SATA', $text[0]);
  27. imagestring($label, 2, 335, 128, 'OS:', $text[0]);
  28. imagestring($label, 2, 10, 185, 'GPU:', $text[0]);
  29. imagestring($label, 2, 255, 185, 'Additional:', $black);
  30. imagestring($label, 2, 10, 322, 'BIOS date', $text[0]);
  31. imagestring($label, 2, 92, 322, 'BOOT order', $text[0]);
  32. imagestring($label, 2, 173, 322, 'Audio', $text[0]);
  33. imagestring($label, 2, 255, 322, 'Drivers', $text[0]);
  34. imagestring($label, 2, 335, 322, 'OS Activ.', $text[0]);
  35. imagestring($label, 2, 417, 322, 'New battery', $text[0]);
  36. imagestring($label, 2, 10, 353, 'Set up by:', $text[0]);
  37. imagestring($label, 2, 255, 353, 'Date:', $text[0]);
  38. imagestring($label, 2, 10, 410, 'Monitor:', $text[0]);
  39. imagestring($label, 2, 255, 410, 'Peripherals:', $text[0]);
  40. //imagestring($label, 1, 435, 478, 'SoftAR `2014', $text[0]);
  41. // descriptions
  42. imagestring($label, $font, 30, 23, $model, $text[0]);
  43. imagestring($label, $font, 30, 80, $cpu, $text[0]);
  44. imagestring($label, $font, 270, 80, $ram, $text[0]);
  45. imagestring($label, $font, 30, 143, $hdd, $text[0]);
  46. imagestring($label, $font, 190, 143, $odd, $text[0]);
  47. imagestring($label, $font, 350, 143, $os, $text[0]);
  48. imagestring($label, $font, 30, 200, $gpu, $text[0]);
  49. imagestring($label, $font, 30, 220, $gpuadds, $text[0]);
  50. imagestring($label, $font, 350, 365, $date, $text[0]);
  51. imagestring($label, $font, 30, 185, $additional, $text[0]);
  52. // additional description
  53. imagettftext($label, 0, 0, 100, 110, $black, $font, $title);
  54. imagettftext($label, 0, 0, 100, 155, $black, $font, $desc);
  55. imagepng($label);
  56. imagedestroy($label);
  57. imagedestroy($graphic);


jesli jakies element jest zbedny albo jaiegos brak to w skutek tego ze pierwszy raz sie z tym zetknalem i poczatkowo to byla czarna magia.
W koncu jakos to ogarnalem i dziala ale zaleznie od kompa (testowalem na kilku) albo dziala zapisywanie jak trzeba albo nie.
W niektorych przypadkach po kliknieciu na obrazek zapisuje cos czego potem wogole nie mozna niczym zobaczyc, na innym kompie ta sama operacja i wszystko OK. No mowie wam, magia. W ktorym lombardzie zastawiles questionmark.gif Odkupilbym, moze rozwiazalo by to niektore problemy .... smile.gif
Kshyhoo
Pokaż, jak to wywołujesz. I piszesz o "zakładkach". Che?
php__amator
co masz na mysli "wywoluje" ? To nie klisza z aparatu dziadka smile.gif smile.gifsmile.gifsmile.gif
kod sam w sobie umieszczony na stronie bez specjalnych zabiegow poza jej odpaleniem rozpoczyna generowanie obrazka.
ja tylko podstawiam z zewnątrz dane z formularza. Wszystko działa, szybko sprawnie, bez problemu poza tym, ze zależnie do komputera albo daje sie wydrukowac poprawnie albo nie, natomiast na moim domowym kompie daje sie zapisac bez problemu i na obrazku mam wszystkie informacje a w robocie na kilku kompach sprawdzalem i nie na wszystkich dziala jak nalezy.
Zdziwiony trochę jestem bo przecież obrazek generowany jest na serwerze a nie na lokalnej maszynie wiec co może być powodem takiego zachowania ?
Zasadniczo po uruchomieniu skryptu generuje się albo powinien plik png i teoretycznie jest OK ale kiedy klikam na obrazku i chcę go zapisać to pojawia się i tu UWAGA jako domyślny format ..... plik z rozszerzeniem PHP exclamation.gif!!!!!
Jeśli zmienie typ pliku do zapisu na All i zmienie rozszerzenie na png to sie zapisuje i jest OK, moge go zobaczyć ale jesli poprostu zapisze tak jak jest domyślnie to .... plik owszem sie zapisuje ale jak go otworzyć to wszystko co w nim jest to: "‰PNG " i to wszystko smile.gif
Jesli złapię i przeciągnę obrazek z przeglądarki na pulpit (na domowym) też się zapisuje jak trzeba .....
nie powinno być różnicy czy to Windows XP czy 7, powinno być Ok sad.gif
Kshyhoo
Aleś się rozpisałsmile.gif Napisze tak: GD ma to do siebie, że jest kapryśna. Było na Forum poruszane wiele razy, że lekarstwem na niektóre bolączki są pełne ścieżki do czcionek.
php__amator
Hehehe no fakt, trochę się rozpisałem.
Hmmm, możliwe, że masz rację ale: skoro obraz z opisami jest generowany, to znaczy, że fonty są załadowane, ciekawostką jestze skoro napisy są "wrenderowane" to dlaczego znikają ? Znaczy,że nie są smile.gif
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.