Slika generirane u PHP GD-u Slika se ne može prikazati jer sadrži pogreške u Firefoxu

Slika generirane u PHP GD-u Slika se ne može prikazati jer sadrži pogreške u Firefoxu [Hrvatski]

Prilikom generiranja slike s PHP-om, primjerice dodavanjem vodenog žiga na poslužiteljsku sliku pohranjenom pomoću niže navedenog koda ili sličnog s JPEG umjesto PNG-a, slika možda neće biti generirana i baciti pogrešku koja je izravno vidljiva na Firefoxu, ali ne na Chromeu.

Ova vrsta koda, unatoč rad na nekim poslužiteljima, sada može raditi na nekim drugim, ponekad iz nejasnih razloga. U mom slučaju, to je savršeno dobro funkcioniralo na lokalnoj razini, ali ispod pogreške na internetskom poslužitelju, slika se ne može prikazati jer sadrži pogreške.

Ovo pitanje može proizaći iz nekoliko razloga, ovdje su neki od njih:

Izlaz je već postavljen.

Izvorna pogreška iz stvaranja slike.

Koristi se pogrešna vrsta 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 već postavljen

Čak i ako ne namjerno, može biti slučaj, na primjer, da su ostale prethodne skripte sadržavale razmake na kraju - kako bi se izbjegla ta pogreška, provjerite, kako PHP preporučuje, da ne zatvaraju skripte s PHP krajnjom oznakom?>

Zatim prije korištenja funkcije zaglavlja upotrijebite sljedeći kôd da biste bili sigurni da je bilo koji prethodno postavljen zaglavlje odbijen

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

A također i ovu funkciju kako biste bili sigurni da nema izlaza prije zaglavlja i slike

ob_end_clean();

Ovo je riješilo pitanje u mom slučaju, a slika je ispravno ponovno prikazana.

Izvorna pogreška iz stvaranja slike

U slučaju stvarne pogreške tijekom generiranja slike, provjerite je li PHP postavljen na prikaz svih mogućih vrsta pogrešaka i provjeriti odgovarajuće zapise kako bi je mogao pratiti i riješiti.

Slijedeći kôd će PHP prijaviti sve pogreške u zapisniku:

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

Tada ćete saznati da su neke pogreške prijavljene, čak i ako se ne pojavljuju u izlaznom htmlu, zbog konfiguracije poslužitelja.

Koristi se pogrešna vrsta slike

Provjerite jesu li vrste slika koje koristite ispravne, primjerice pomoću ovog koda da biste razlikovali png i jpeg.

Također provjerite je li zaglavlje u skladu s korištenim izlazom, ovisno o korištenoj funkciji generiranja 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

Provjerite jesu li instalirane biblioteke slika. Da biste to učinili, pokrenite funkciju phpinfo (); u skripti i provjeriti izlaz za sljedeću vrijednost vezanu za PHP GD, grafičku biblioteku koju koriste funkcije poput imagepng ();

U slučaju nestanka paketa, način rješavanja ovisi o vašoj lokalnoj konfiguraciji, dodavanjem paketa pomoću naredbi PEAR ili korištenjem web host-a ugrađenog u rješenje za instalaciju paketa.

Što učiniti kada imagejpeg ili imagepng ne rade

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 Svojstva stranice> Naslov / Kodiranje> poništite oznaku Uključi Unicode potpis (BOM).

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

Funkcije PHP imagejpeg i PHP imagepng služe za slanje koda slike izravno 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% pomoću usluge Ezoic. Googleov certificirani partner za objavljivanje.
Povećajte prihod od oglasa za 50-250% pomoću usluge Ezoic. Googleov certificirani partner za objavljivanje.
 
Povećajte prihod od oglasa za 50-250% pomoću usluge Ezoic. Googleov certificirani partner za objavljivanje.
Povećajte prihod od oglasa za 50-250% pomoću usluge Ezoic. Googleov certificirani partner za objavljivanje.