Obraz generowany przez GD w PHP Obraz nie może być wyświetlany, ponieważ zawiera błędy w Firefoksie



Podczas generowania obrazu za pomocą PHP, na przykład dodawania znaku wodnego do obrazu przechowywanego na serwerze, przy użyciu poniższego kodu lub podobnego z obrazem JPEG zamiast PNG, obraz może nie być generowany i zgłaszać błąd, widoczny bezpośrednio w przeglądarce Firefox, ale nie w Chrome.

Ten rodzaj kodu, pomimo pracy na niektórych serwerach, może teraz działać na innych, czasem z niejasnych powodów. W moim przypadku działało idealnie dobrze lokalnie, ale wyprodukowane poniżej błędu na serwerze internetowym, obraz nie może być wyświetlany, ponieważ zawiera błędy.

Problem może wynikać z kilku powodów: oto niektóre z nich:

Dane wyjściowe zostały już wcześniej ustawione.

Prawdziwy błąd generowania obrazu.

Używany jest niewłaściwy typ obrazu.

Biblioteka obrazów nie jest zainstalowana.

Dane wyjściowe zostały już wcześniej ustawione

Nawet jeśli nie celowo, może być na przykład na przykład, że inne poprzednie skrypty zawierały spacje na końcu - aby uniknąć tego błędu, upewnij się, że, jak zaleca PHP, nie zamykaj skryptów z tagiem końcowym PHP?>

Następnie, przed użyciem funkcji nagłówka, użyj następującego kodu, aby upewnić się, że poprzednio ustawiony nagłówek został odrzucony

A także ta funkcja, aby upewnić się, że nie zostały wygenerowane żadne dane wyjściowe przed nagłówkiem i obrazem

Rozwiązało to problem w moim przypadku, a obraz został poprawnie wyświetlony ponownie.

Prawdziwy błąd generowania obrazu

W przypadku wygenerowania prawdziwego błędu podczas generowania obrazu, upewnij się, że PHP jest ustawione na wyświetlanie wszystkich możliwych rodzajów błędów i sprawdź odpowiednie dzienniki, aby móc je wyśledzić i rozwiązać.

Tworzenie witryny Master: Zapisz teraz!

Przekształć swoją obecność cyfrową dzięki naszemu kompleksowej kursie tworzenia stron internetowych - rozpocznij swoją podróż, aby zostać ekspertem od sieci już dziś!

Zapisz tutaj

Przekształć swoją obecność cyfrową dzięki naszemu kompleksowej kursie tworzenia stron internetowych - rozpocznij swoją podróż, aby zostać ekspertem od sieci już dziś!

Poniższy kod sprawi, że PHP zgłosi wszystkie błędy w dzienniku:

Możesz wtedy dowiedzieć się, że zgłoszono pewne błędy, nawet jeśli nie pojawiły się w wyjściowym html, z powodu konfiguracji serwera.

Używany jest niewłaściwy typ obrazu

Upewnij się, że używane typy obrazów są poprawne, na przykład używając tego kodu, aby odróżnić png i jpeg.

Upewnij się także, że nagłówek jest poprawny w zależności od użytego wyjścia, w zależności od użytej funkcji generowania obrazu

Biblioteka obrazów nie jest zainstalowana

Aby upewnić się, że biblioteki obrazów są zainstalowane. Aby to zrobić, uruchom funkcję phpinfo (); w skrypcie i sprawdź dane wyjściowe dla następującej wartości związanej z PHP GD, biblioteki graficznej używanej przez funkcje takie jak imagepng ();

W przypadku braku pakietów, sposób rozwiązania zależy od konfiguracji lokalnej, poprzez dodanie pakietu za pomocą poleceń PEAR lub za pomocą wbudowanego rozwiązania hosta internetowego do instalacji pakietu.

Co robić, gdy imagejpeg lub imagepng nie działa

W NotePad ++ otwórz plik PHP wywołujący funkcję imagepng i zapisz go po przejściu do menu Kodowanie> Konwertuj na UTF-8 bez BOM.

W DreamWeaver przejdź do Właściwości strony> Tytuł / Kodowanie> usuń zaznaczenie opcji Dołącz sygnaturę Unicode (BOM).

Gdy PHP imagejpeg lub imagepng nie działa, najprawdopodobniej jest to spowodowane faktem, że plik PHP został zakodowany za pomocą BOM, Bill of Material, a zatem dodatkowe informacje są wysyłane z obrazem przed danymi obrazu.

Funkcje PHP imagejpeg i PHP imagepng służą do wysyłania kodu obrazu bezpośrednio w odpowiedzi serwera.

PHP - imagepng nie działa poprawnie
PHP - funkcja imagepng
PHP - funkcja imagejpeg

Często Zadawane Pytania

Dlaczego nie mogę wyświetlić obrazu utworzonego za pomocą PHP GD w mojej przeglądarce?
Jeśli obraz generowany przez PHP GD nie wyświetla się i pokazuje błąd w przeglądarce, może to wynikać z kilku powodów, takich jak wcześniej wysyłane dane wyjściowe, autentyczne błędy podczas generowania obrazu, przy użyciu niewłaściwego typu obrazu lub biblioteki obrazu GD nie zainstalowany. Upewnij się, że nie wysyłano wcześniejszego wyjścia, sprawdź autentyczne błędy, zweryfikuj typ obrazu i nagłówek oraz potwierdź instalację biblioteki GD.
W jaki sposób programiści mogą naprawić problem obrazów generowanych przez PHP GD nie wyświetlanych w Firefox z powodu błędów?
Deweloperzy powinni sprawdzić kod generowania obrazu pod kątem błędów, upewnić się, że prawidłowy nagłówek typu treści jest wysyłany przed jakichkolwiek danych obrazu, i sprawdzić, czy nie są wysyłane żadne błędy ani ostrzeżenia PHP. Korzystanie z OB_CLEAN () Przed wyjściem obraz może również pomóc.

Yoann Bierling
O autorze - Yoann Bierling
YoAnn Bierling to specjalista od wydawnictwa i cyfrowego konsultingowego, który wywarł globalny wpływ dzięki wiedzy specjalistycznej i innowacji w technologiach. Pasjonowany wzmacnianiem osób i organizacji do prosperowania w erze cyfrowej, dąży do zapewniania wyjątkowych rezultatów i zwiększania rozwoju poprzez tworzenie treści edukacyjnych.

Tworzenie witryny Master: Zapisz teraz!

Przekształć swoją obecność cyfrową dzięki naszemu kompleksowej kursie tworzenia stron internetowych - rozpocznij swoją podróż, aby zostać ekspertem od sieci już dziś!

Zapisz tutaj

Przekształć swoją obecność cyfrową dzięki naszemu kompleksowej kursie tworzenia stron internetowych - rozpocznij swoją podróż, aby zostać ekspertem od sieci już dziś!




Komentarze (6)

 2018-08-19 -  Irvin Vasquez
Simple, clear and well explained, many thanks
 2018-08-19 -  Joyce Lawrence
ありがとう、非常に有益な
 2018-08-19 -  Catherine Roberts
Dokładnie tego, czego szukałem, idealnie
 2018-08-19 -  Headlinext
जानकारी का महान टुकड़ा, साझा करने के लिए धन्यवाद
 2018-08-19 -  Marshel
विश्वास नहीं कर सकता कि मुझे अंत में समाधान मिला, यह लंबे समय तक एक दुःस्वप्न था, अब हल हो गया
 2018-08-19 -  porcateraC
بالضبط ما كنت أبحث عنه ، مثالي

zostaw komentarz