PHP GD generated image Slika se ne može prikazati jer sadrži greške u Firefox-u

PHP GD generated image Slika se ne može prikazati jer sadrži greške u Firefox-u [Bosanski]

Kada generišete sliku sa PHP-om, na primer dodavanje vodenog žiga na serveru sačuvane slike, koristeći ispod koda ili sličan sa JPEG umesto PNG-a, slika možda neće biti generisana i baciti grešku, direktno vidljivu na Firefoxu, ali ne na Chrome-u.

Ova vrsta koda, uprkos radu na nekim serverima, sada može raditi na nekoj drugoj, ponekad zbog nejasnih razloga. U mom slučaju, radio je savršeno fino lokalno, ali proizvedeno ispod greške na internet serveru, slika se ne može prikazati jer sadrži greške.

Pitanje može doći iz nekoliko razloga, evo nekih od njih:

Izlaz je prethodno podešen.

Prava greška u stvaranju slike.

Koristi se pogrešan tip slike.

Biblioteka slika nije instalirana.

$stamp = imagecreatefrompng('watermark.png');
if(!$im = imagecreatefrompng('image.png')) die('Error generating image');
$marge_right = $marge_bottom = 10;
$sx = imagesx($stamp);
$sy = imagesy($stamp);

$copyimage = imagecopy($im, $stamp, imagesx($im) - $sx - $marge_right, imagesy($im) - $sy - $marge_bottom, 0, 0, imagesx($stamp), imagesy($stamp));

header('Content-type: image/png');
if(!imagepng($im)) die('Error generating image');
if(!imagedestroy($im)) die('Error generating image');
if(!imagedestroy($stamp)) die('Error generating image');

Izlaz je prethodno podešen

Čak i ako nije namerno, možda je slučaj na primjer da druge prethodne skripte sadrže prostore na kraju - kako bi se izbjegla ova greška, pobrinite se, kako PHP preporučuje, da ne zatvorite skripte sa PHP end tag?>

Zatim, pre upotrebe funkcije zaglavlja, koristite sledeći kod kako biste bili sigurni da će prethodno postavljeni zaglavlje biti odbačen

foreach (getallheaders() as $name => $value) {
header_remove($name);
}

I takodje i ova funkcija kako bi se osiguralo da nema izlaza prije zaglavlja i slike

ob_end_clean();

Ovo je rešilo problem u mom slučaju, a slika je ponovo prikazana pravilno.

Prava greška u stvaranju slike

U slučaju da je bačena stvarna greška tokom generisanja slike, uverite se da je PHP postavljen tako da prikazuje sve moguće greške i proverite odgovarajuće evidencije kako biste ga mogli pratiti i riješiti.

Sledeći kod će učiniti PHP prijavama sve greške u dnevniku:

error_reporting(E_ALL);
ini_set('display_errors', '1');

Potom biste saznali da su prijavljene neke greške, čak i ako se nisu pojavile u izlaznom HTML-u, zbog konfiguracije servera.

Koristi se pogrešan tip slike

Uverite se da su tipovi slika koje koristite tačni, na primer koristeći ovaj kôd da biste razlikovali između png i jpeg.

Takođe proverite da li je zaglavlje tačno prema izlazu koji se koristi, ovisno o korištenoj funkciji generisanja slike

//to generate png image
header('Content-type: image/png');
if(!imagepng($im)) die('Error generating image');
//to generate jpeg image
header('Content-type: image/jpeg');
if(!imagejpeg($im)) die('Error generating image');

Biblioteka slika nije instalirana

Da biste bili sigurni da su biblioteke slika instalirane. Da biste to uradili, pokrenite funkciju phpinfo (); u skriptu i proverite izlaz za sledeću vrijednost vezanu za PHP GD, grafičku biblioteku koja se koristi od funkcija kao što je imagepng ();

U slučaju nedostatka paketa, način njegovog rešavanja zavisi od vaše lokalne konfiguracije, bilo dodavanjem paketa pomoću PEAR komandi ili korišćenjem web hosta ugrađenog u rešenje za instalaciju paketa.

Šta raditi kada imagejpeg ili imagepng ne radi

U NotePad ++, otvorite PHP datoteku koja poziva funkciju imagepng i spremite je nakon odlaska u izbornik Encoding> Convert to UTF-8 bez BOM-a.

U programu DreamWeaver idite na Properties> Title / Encoding> Ukloni Unicode potpis (BOM).

Kada PHP imagejpeg ili imagepng ne radi, to je najvjerovatnije zbog činjenice da je PHP datoteka kodirana sa BOM-om, Bill of Material, i stoga se dodatne informacije šalju sa slikom prije slikovnih podataka.

PHP imagejpeg i PHP imagepng funkcije su funkcija koja se koristi za slanje koda slike direktno u odgovoru poslužitelja.

PHP - imagepng ne radi ispravno
PHP - imagepng funkcija
PHP - imagejpeg funkcija

Slični članci

Komentari (6)

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

Ostavite komentar

Povećajte prihod od oglasa za 50-250% sa Ezoic-om. Google Certified Publishing Partner.
Povećajte prihod od oglasa za 50-250% sa Ezoic-om. Google Certified Publishing Partner.
 
Povećajte prihod od oglasa za 50-250% sa Ezoic-om. Google Certified Publishing Partner.
Povećajte prihod od oglasa za 50-250% sa Ezoic-om. Google Certified Publishing Partner.