Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Problem z wyświetleniem obrazka - biblioteka GD
Forum PHP.pl > Forum > PHP
Michael65
Witam,

co robię źle, że ciągle mi wyskakuje komunikat: "Obrazek ?http://codra.pl/test/img.php? nie może zostać wyświetlony, ponieważ zawiera błędy." questionmark.gif

Próbuję i nic ciągle.

  1. <?php
  2. $data = file_get_contents('http://img09.allegroimg.pl/photos/128x96/18/18/16/82/1818168286');
  3.  
  4.  
  5. $im = imagecreatefromstring($data);
  6. if ($im !== false) {
  7. header('Content-Type: image/jpeg');
  8. imagejpeg($im);
  9. imagedestroy($im);
  10. }
  11. else {
  12. echo 'An error occurred.';
  13. }
  14. ?>
Fifi209
Nawet nie dałeś headera, który powie przeglądarce co to będzie (np. obrazek i jaki jpeg/image ?)

Poza tym pobierasz niby obrazek, ale brak file_get_contents
Michael65
Hedera dałem przecież.

Dodałem :

$data = file_get_contents('http://img09.allegroimg.pl/photos/128x96/18/18/16/82/1818168286');

ale nadal nie działa.
peter13135
Nie lepiej będzie Ci skorzystać z http://php.net/manual/en/function.imagecreatefromjpeg.php ?
Michael65
też próbowałem i nie działa :/

jak zrobić, żeby można obrazek wczytać z linku?
q3trm
Odkopuje temat.




Mam ten sam problem z biblioteką GD2, próbuje wyświetlić na localhost, jak i na serwerze online taki skrypt:


  1. <?php
  2. header('Content-type: image/png');
  3. putenv('GDFONTPATH=' . realpath('.'));
  4. $figure = imagecreatetruecolor(400, 30);
  5. $color_blue = imagecolorallocate($figure,255,255,255);
  6. imagefill($figure, 0, 0, $color_blue);
  7. imagepng($figure);
  8. ?>


extension=php_gd2.dll - jest bez komentarza w php.ini.



Obrazek (ścieżka pliku) nie może zostać wyświetlony, ponieważ zawiera błędy.
�PNG

���
IHDR����������߇����IDATx���A
� �0����?��U����,���;���a�d�aX@�a�d�aX@�a�d�aX@�a�d�aX@�a�d�aX@�a�d�aX@�a�d�aX@��i9��N�����IEND�B`�


Co jeszcze mogę zrobić?


_Borys_
Ustaw error_reporting na pokazywanie błędów, zakomentuj header i zobacz jakie błędy wyrzuca.
q3trm
Ustawiłem error_reporting(E_ALL), za komentowałem header i o to rezultat:


�PNG  IHDR��߇�IDATx���A �0���?��U����,���;�a�d�aX@�a�d�aX@�a�d�aX@�a�d�aX@�a�d�aX@�a�d�aX@�a�d�aX@��i9��N�IEND�B`�

Właściwie, to się niczym nie różni od ww. opisu błędu.
Czy to coś wyjaśnia?
mstraczkowski
Twój przykład na moim serwerze działa, więc uważam, że to coś z konfiguracją twojego serwera.
q3trm
sprawdzałem na dwóch serwerach z takim samym rezultatem thumbsdownsmileyanim.gif. Co mogłem przeoczyć w konfiguracji?
StrefaPi
a kodowanie samego skryptu php? utf-8 without BOM, czy coś?
q3trm
UTF-8 stosuję. Sprawdzałem na ANSII, ale to samo wychodzi.
nospor
Chodzi o utf-8 bez BOM
mstraczkowski
Wydaje mi się, że nospor oraz StrefaPi trafili w dziesiątkę i to dobry trop, bo to w pełni uzasadnione jeżeli wkradł ci się BOM
rocktech.pl
Witam.

Jeszcze jedna ważna sprawa:

  1. <?php
  2.  
  3. //Nie
  4. header('Content-type: image/png');
  5. //Tylko
  6. header('Content-Type: image/png');
StrefaPi
rocktech.pl dobrze zauważył, sprawdziłem na niektórych konfiguracjach, może nie działać prawidłowo ten header ;)
mstraczkowski
@up Według RFC2616 nie ważna jest wielkość znaków, a jeżeli przeglądarka ma z tym problem to jest słabą przeglądarką.
Przynajmniej ja nie odnotowałem takich przypadków, jeżeli macie jakiś przykład chętnie obejrzę.
StrefaPi
ale użytkownik ma wolną wole i może używać czego chce (nie koniecznie to co mu się narzuca)
mstraczkowski
Specyfikacje protokołów powstały po to, aby się ich trzymać i każdy wyłam powoduje komplikacje
q3trm
Cytat(mstraczkowski @ 4.03.2013, 12:41:11 ) *
Wydaje mi się, że nospor oraz StrefaPi trafili w dziesiątkę i to dobry trop, bo to w pełni uzasadnione jeżeli wkradł ci się BOM


Nie wkradł się BOM.

Cytat(rocktech.pl @ 4.03.2013, 12:53:31 ) *
Witam.

Jeszcze jedna ważna sprawa:

  1. <?php
  2.  
  3. //Nie
  4. header('Content-type: image/png');
  5. //Tylko
  6. header('Content-Type: image/png');


Poprawiłem i niestety bez rezultatów closedeyes.gif

"Obrazek zawiera błędy" :nerdsmiley:Where? facepalmxd.gif
com
http://ideone.com/5Zm5V1

Dokładnie tak jak mówią moi przedmówcy dodał Ci się BOM
bo jak dodałem dla testu BOM do dokumentu to mam :
?PNG  IHDR????IDATx?questionmark.gifA ?0?questionmark.gif?questionmark.gif?U?questionmark.gif?,questionmark.gif?;??a?d?aX@?a?d?aX@?a?d?aX@?a?d?aX@?a?d?aX@?a?d?aX@?a?d?aX@??i9??N?IEND?B`?
czyli to samo co Ty wink.gif

Jednakze żeby to potem wyelimnować stwórz nowy plik i skopiuj kod, bo tak mimo próby usunięcia BOM on tego nie robi(przynajmniej w moim przypadku) wink.gif
StrefaPi
w windows Notepad++ konwertuje prawidłowo
Menu > Encoding > Convert to UTF-8 without BOM


w Mac OS X Text Wrangler jest ok
w tym programie wystarczy w oknie edycji (na dolnym pasku) wybrać sposób kodowania z listy
q3trm
Mam program Notepad++ i ustawiony domyślny wybór kodowania na UTF-8. Używam WampServer Version 2.2, do tego korzystam z usług hostingowych http://www.000webhost.com/, i na żadnym ten skrypt nie działa poprawnie.
nospor
Ale czy ustsawiasz UTF-8 bez BOM?? Ciągle ci o BOM piszemy, a Ty ciągle w swoich postach to ignorujesz....
q3trm
Teraz się przyjrzałem dokładnie kodowaniu, i miałem samo UTF-8, myślałem, że to jest bez BOM facepalmxd.gif. Dokanałem konwersji na UTF-8 bez BOM, nie pomogło. Utworzyłem nowy plik z ustawionym kodowaniem UTF-8 bez BOM, przerzuciłem skrypt i wszystko śmiga arrowheadsmiley.png.


Dziękuje za rzetelną pomoc.
com
@ StrefaPi owszem zawsze tak to sie normalnie robi, sam korzystam z n++, jednakże tu akurat konwersja na bez BOM nie pomogła i nadal wyświetlał to tak jakby on był mimo iż już go nie było wink.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.