Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Biblioteka GD i coś nie działa
Forum PHP.pl > Forum > Przedszkole
politechnik
Witam mamy taki kod:
  1.  
  2.  
  3. <?php
  4.  
  5. //działająca wersja skryptu generującego pusty blankiet listu poleconego
  6.  
  7. header("Content-type: image/png");
  8.  
  9. //$image = imagecreatefrompng("wzor.png");
  10.  
  11. $image = imagecreatetruecolor(575, 430);
  12. imagefilledrectangle($image, 0, 0, 575, 430, $white);
  13.  
  14. // Courier New (BOLD)
  15. $font = 'arial.ttf';
  16.  
  17. // Deklaracja koloru
  18. $black = imagecolorallocate($image, 0, 0, 0);
  19. $white = imagecolorallocate($image, 255, 255, 255);
  20.  
  21.  
  22. // Obramowanie
  23. ImageSetThickness($image, 3); // określenie szerokości
  24. imageline($image, 5,5, 570, 5, $black); //górna
  25. imageline($image, 5, 425, 570, 425, $black); // dolna
  26. imageline($image, 5,5, 5, 425, $black); // lewa
  27. imageline($image, 570 ,5, 570, 425, $black); // lewa
  28.  
  29.  
  30. //Linie dzielące //
  31. imageline($image, 328, 82, 328, 425, $black); //środkowa
  32. imageline($image, 5, 82, 329, 82, $black); //górna
  33. imageline($image, 5, 253, 329, 253, $black); //dolna
  34.  
  35. //Pieczęć pocztowa
  36. imageellipse($image, 451 ,335, 75, 75, $black); // lewa
  37. imagettftext($image, 9, 0, 390, 390, $black, $font, "Podpis przyjmującego");
  38.  
  39. //Napisy główne
  40.  
  41. //imagettftext($image, Wielkość, Obrót, X, Y, $black, $font, "Podpis przyjmującego");
  42.  
  43. imagettftext($image, 19, 0, 125, 32, $black, $font, "POTWIERDZENIE NADANIA");
  44. imagettftext($image, 10, 0, 90, 60, $black, $font, "przesyłki poleconej o numerze:");
  45. imagettftext($image, 16, 0, 13, 105, $black, $font, "NADAWCA:");
  46. imagettftext($image, 16, 0, 13, 276, $black, $font, "ADRESAT:");
  47.  
  48. imagettftext($image, 12, 0, 349, 110, $black, $font, "Opłata ......................zł ..........gr");
  49. imagettftext($image, 12, 0, 349, 147, $black, $font, "Masa ..................kg ..............g");
  50. imagettftext($image, 12, 0, 349, 184, $black, $font, "GABARYT A B");
  51. imagettftext($image, 12, 0, 349, 220, $black, $font, "Priorytetowa");
  52. imagettftext($image, 12, 0, 349, 255, $black, $font, "Potwierdzenie odbioru");
  53.  
  54. imagettftext($image, 7, 0, 440, 420, $black, $font, "Wygenerowano automatycznie");
  55.  
  56.  
  57. //Kratki (pola)
  58.  
  59. imageline($image, 459, 158, 459, 190, $black); //środkowa
  60. imageline($image, 491, 158, 491, 190, $black); //środkowa
  61. imageline($image, 459, 158, 491, 158, $black); //środkowa
  62. imageline($image, 459, 190, 491, 190, $black); //środkowa
  63.  
  64. imageline($image, 459, 198, 459, 230, $black); //środkowa
  65. imageline($image, 491, 198, 491, 230, $black); //środkowa
  66. imageline($image, 459, 198, 491, 198, $black); //środkowa
  67. imageline($image, 459, 230, 491, 230, $black); //środkowa
  68.  
  69. imageline($image, 515, 158, 547, 158, $black); //górna
  70. imageline($image, 515, 190, 547, 190, $black); //dolna
  71. imageline($image, 515, 158, 515, 190, $black); //lewa
  72. imageline($image, 547, 158, 547, 190, $black); //prawa
  73.  
  74. imageline($image, 515, 233, 547, 233, $black); //górna
  75. imageline($image, 515, 265, 547, 265, $black); //dolna
  76. imageline($image, 515, 233, 515, 265, $black); //lewa
  77. imageline($image, 547, 233, 547, 265, $black); //prawa
  78.  
  79.  
  80.  
  81. imageline($image, 5, 82, 329, 82, $black); //górna
  82. imageline($image, 5, 253, 329, 253, $black); //dolna
  83.  
  84. // Nadawca
  85. imagettftext($image, 14, 0, 13, 150, $black, $font, "Linia1:");
  86. imagettftext($image, 14, 0, 13, 180, $black, $font, "Linia2:");
  87. imagettftext($image, 14, 0, 13, 210, $black, $font, "Ulica nr/nr:");
  88. imagettftext($image, 14, 0, 13, 240, $black, $font, "00-000");
  89. imagettftext($image, 14, 0, 93, 240, $black, $font, "Miasto");
  90.  
  91. // Adresat
  92. imagettftext($image, 14, 0, 13, 320, $black, $font, "Linia1:");
  93. imagettftext($image, 14, 0, 13, 350, $black, $font, "Linia2:");
  94. imagettftext($image, 14, 0, 13, 380, $black, $font, "Ulica i nr/nr:");
  95. imagettftext($image, 14, 0, 13, 410, $black, $font, "00-000");
  96. imagettftext($image, 14, 0, 93, 410, $black, $font, "Miasto:");
  97.  
  98. imagepng($image);
  99. ?>
  100.  


Kod ma rysować druczek na list polecony. Jedak przeglądarka zwraca obraz, tyle że pusty. (Obrazek się nie ładuje). Ktoś coś podpowie?
mstraczkowski
Zakomentuj poniższą linię:

  1. header("Content-type: image/png");

Włącz raportowanie błędów i powinieneś dostać odpowiedź w postaci błędu zwracanego przez interpreter PHP.
To powinno nakierować cię na to co jest robione nieprawidłowo.
politechnik
Dzięki za odp.

Zwróciło tyle:
  1. ( ! ) Notice: Undefined variable: white in C:\wamp\www\druki\test.php on line 11
  2. Call Stack
  3. # Time Memory Function Location
  4. 1 0.0030 165368 {main}( ) ..\test.php:0
  5. ‰PNG  IHDR?ŽđđćIDATxœíÁ  ÷Om7 ~ SÉBA…MIENDŽB`‚

A wydaje mnie się, że użyto poprawnie:http://www.php.net/manual/pl/function.imag...edrectangle.php
werdan
Komputerek nie wie co to $white. Wspominasz dopiero o tym pozniej biggrin.gif
politechnik
  1. <?php
  2. //działająca wersja skryptu generującego pusty blankiet listu poleconego
  3.  
  4. header("Content-type: image/png");
  5.  
  6. //$image = imagecreatefrompng("wzor.png");
  7.  
  8.  
  9. $image = imagecreatetruecolor(575, 430);
  10. $white = imagecolorallocate($image, 255, 255, 255);
  11. imagefilledrectangle($image, 0, 0, 575, 430, $white);
  12.  
  13. // Courier New (BOLD)
  14. $font = 'arial.ttf';
  15.  
  16. // Deklaracja koloru
  17. $black = imagecolorallocate($image, 0, 0, 0);
  18.  
  19.  
  20. // Obramowanie
  21. ImageSetThickness($image, 3); // określenie szerokości
  22. imageline($image, 5,5, 570, 5, $black); //górna
  23. imageline($image, 5, 425, 570, 425, $black); // dolna
  24. imageline($image, 5,5, 5, 425, $black); // lewa
  25. imageline($image, 570 ,5, 570, 425, $black); // lewa
  26.  
  27.  
  28. //Linie dzielące //
  29. imageline($image, 328, 82, 328, 425, $black); //środkowa
  30. imageline($image, 5, 82, 329, 82, $black); //górna
  31. imageline($image, 5, 253, 329, 253, $black); //dolna
  32.  
  33. //Pieczęć pocztowa
  34. imageellipse($image, 451 ,335, 75, 75, $black); // lewa
  35. imagettftext($image, 9, 0, 390, 390, $black, $font, "Podpis przyjmującego");
  36.  
  37. //Napisy główne
  38.  
  39. //imagettftext($image, Wielkość, Obrót, X, Y, $black, $font, "Podpis przyjmującego");
  40.  
  41. imagettftext($image, 19, 0, 125, 32, $black, $font, "POTWIERDZENIE NADANIA");
  42. imagettftext($image, 10, 0, 90, 60, $black, $font, "przesyłki poleconej o numerze:");
  43. imagettftext($image, 16, 0, 13, 105, $black, $font, "NADAWCA:");
  44. imagettftext($image, 16, 0, 13, 276, $black, $font, "ADRESAT:");
  45.  
  46. imagettftext($image, 12, 0, 349, 110, $black, $font, "Opłata ......................zł ..........gr");
  47. imagettftext($image, 12, 0, 349, 147, $black, $font, "Masa ..................kg ..............g");
  48. imagettftext($image, 12, 0, 349, 184, $black, $font, "GABARYT A B");
  49. imagettftext($image, 12, 0, 349, 220, $black, $font, "Priorytetowa");
  50. imagettftext($image, 12, 0, 349, 255, $black, $font, "Potwierdzenie odbioru");
  51.  
  52. imagettftext($image, 7, 0, 440, 420, $black, $font, "Wygenerowano automatycznie");
  53.  
  54.  
  55. //Kratki (pola)
  56.  
  57. imageline($image, 459, 158, 459, 190, $black); //środkowa
  58. imageline($image, 491, 158, 491, 190, $black); //środkowa
  59. imageline($image, 459, 158, 491, 158, $black); //środkowa
  60. imageline($image, 459, 190, 491, 190, $black); //środkowa
  61.  
  62. imageline($image, 459, 198, 459, 230, $black); //środkowa
  63. imageline($image, 491, 198, 491, 230, $black); //środkowa
  64. imageline($image, 459, 198, 491, 198, $black); //środkowa
  65. imageline($image, 459, 230, 491, 230, $black); //środkowa
  66.  
  67. imageline($image, 515, 158, 547, 158, $black); //górna
  68. imageline($image, 515, 190, 547, 190, $black); //dolna
  69. imageline($image, 515, 158, 515, 190, $black); //lewa
  70. imageline($image, 547, 158, 547, 190, $black); //prawa
  71.  
  72. imageline($image, 515, 233, 547, 233, $black); //górna
  73. imageline($image, 515, 265, 547, 265, $black); //dolna
  74. imageline($image, 515, 233, 515, 265, $black); //lewa
  75. imageline($image, 547, 233, 547, 265, $black); //prawa
  76.  
  77.  
  78.  
  79. imageline($image, 5, 82, 329, 82, $black); //górna
  80. imageline($image, 5, 253, 329, 253, $black); //dolna
  81.  
  82. // Nadawca
  83. imagettftext($image, 14, 0, 13, 150, $black, $font, "Linia1:");
  84. imagettftext($image, 14, 0, 13, 180, $black, $font, "Linia2:");
  85. imagettftext($image, 14, 0, 13, 210, $black, $font, "Ulica nr/nr:");
  86. imagettftext($image, 14, 0, 13, 240, $black, $font, "00-000");
  87. imagettftext($image, 14, 0, 93, 240, $black, $font, "Miasto");
  88.  
  89. // Adresat
  90. imagettftext($image, 14, 0, 13, 320, $black, $font, "Linia1:");
  91. imagettftext($image, 14, 0, 13, 350, $black, $font, "Linia2:");
  92. imagettftext($image, 14, 0, 13, 380, $black, $font, "Ulica i nr/nr:");
  93. imagettftext($image, 14, 0, 13, 410, $black, $font, "00-000");
  94. imagettftext($image, 14, 0, 93, 410, $black, $font, "Miasto:");
  95.  
  96. imagepng($image);
  97.  
  98. ?>


Poprawiłem, jednak dalej nie trybi jak trzeba. Przy zakomentowanej linii
  1. header("Content-type: image/png");
uzuskuję śmietnik typu, cytuję kawałek:
  1. PNG  IHDR?Žđđ IDATxœěÝTç˝?đĎŽ°Ź Ⲏ„ ńǖp‰"Jˆ%ÖZ4\CÔK 7ľ\ËľÔzkőňőxŹőx7ő$†ŻĄ”k¸ÖRŠHš”.ĽÔRľ RK4QJ ÁułYpYWçűÇs2ěěłË.ËŔűő‡gxžgžç3ł?>ÎĚł3*Žă@QÔÁŔkČ^ <Č^ š2e ‹đöíŰnŰüůĎfý¸Œî[<#Ž2uęԇz芧žúĺ/)g÷N™2eÚ´ióćÍ[łf͛ož9<<ěĂžŠŠŠýśüçţ§Ű(˝ÓFš%Ćň6Ą?ţ844TĽR…††ŢşuKşĄ_ŽŃ 4ú=ěĂĐ0Ś8ˇ…8#ž:jľúŕÁƒâ8 ÓéÜŽ˘ÓéJKK˝…ˇuëV"ÚˇoŸŰh;ơ,=V ˛Woo/ét:ob۲{÷n‰6{÷îeˇˇˇ{˜ż űO†Ëń˘§n˝ź‡—œœLDuuuÇŐ××Qrr˛ô@$^ĺöahdŻńeÄ˝ÝŮŮIDsçÎefggQEEň=?~œD‡ArĆ}˙ý÷‰(::ÚĽ4š=ěĂĐ8Č^ăˈ{{Æ D´iÓ&öçÜšs‰čÚľk#öĚN9ĆĹĹů0.KTçϟwéÍh4ň%ŃŃŃ.‘œ;wŽˆâăăGË_ŮËápôőőŐ×׳é$DTYYéí@;Şˇˇ—méşuëä&M¸JooŻ^ŻˆˆpšŽŹě%?†*mܸ‘/ٸq#}vŒ.1'ž^ŸÍöahdŻńĹíŢv: ěH+""‚?šaÓ1


Przy odkomentowanej linijce generuje nic ;-)
Kshyhoo
No to już teraz działa...
politechnik
No właśnie nie bardzo. Ładuje się plik ale nie wyświetla
Kshyhoo
U mnie działa smile.gif Spróbuj przesunąć header przed imagepng($image);. Pamiętaj o zwolnieniu pamięci na końcu...
politechnik
Cytat(Kshyhoo @ 19.12.2013, 22:02:12 ) *
U mnie działa smile.gif Spróbuj przesunąć header przed imagepng($image);. Pamiętaj o zwolnieniu pamięci na końcu...


A u mnie nie działa, dodałem header przed imagepng, czyszczę pamięć i lipa wink.gif
Gdzie mam szukać przyczny. Korzystam z wampserver, mam włączone gd2. Gotowe skrypty śmigają (generuję też kody kreskowe innym skryptem i tam trybi)

Zastanawiam się jeszcze, może kodowanie ma znaczenie? Hm?
Kshyhoo
Cytat(politechnik @ 21.12.2013, 15:29:32 ) *
(...)czyszczę pamięć i lipa wink.gif

Pokaż jak.

Może zamiast:
  1. imagepng($image);

Daj tak:
  1. imagepng($image);
  2. header("Content-Type: image/png");
  3. imagepng($image, NULL);
  4. chmod("$image.png", 0666);
  5. imagedestroy($image);
Scalak
hmm a może masz z przodu jakieś dodatkowe bajty przed otworzeniem <?php ...
Otwórz to w zwłykłym notepadzie i jak są to usuń je. Nie możesz wyświetlać niczego na stronie poza obrazkiem z gd.

Pozdrawiam
Scalak
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.