Slika generacije PHP GD Slika ni mogoče prikazati, ker vsebuje napake v Firefoxu

Slika generacije PHP GD Slika ni mogoče prikazati, ker vsebuje napake v Firefoxu

Pri ustvarjanju slike s PHP, na primer dodajanje vodnega žiga v shranjeno sliko na strežniku, ki uporablja spodnjo kodo ali podobno z JPEG namesto PNG, slika morda sploh ni ustvarjena in vrgel napako, ki je neposredno vidna v Firefoxu, vendar ne v Chromu.

Ta vrsta kode, kljub delu na nekaterih strežnikih, bi morda zdaj delala na drugih, včasih zaradi nejasnih razlogov. V mojem primeru je delovalo povsem fino na lokalni ravni, vendar je nastalo spodaj na internetnem strežniku, slika ni mogoče prikazati, ker vsebuje napake.

Vprašanje je lahko iz več razlogov, tukaj je nekaj:

Izhod je že nastavljen.

Resnična napaka pri ustvarjanju slike.

Uporablja se napačna oblika slike.

Knjižnica slik ni nameščena.

$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');

Izhod je že nastavljen

Tudi če ni namerno, se lahko zgodi, na primer, da so drugi končni skripti vsebovali presledke na koncu - da bi se izognili tej napaki, se prepričajte, kot priporoča PHP, da se ne zaprejo skripte s končno oznako PHP?>

Nato pred uporabo funkcije glave uporabite naslednjo kodo, da se prepričate, ali je predhodno nastavljena glava zavržena

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

In tudi to funkcijo, da se prepričajte, da pred glavo in sliko ni bilo ustvarjenih rezultatov

ob_end_clean();

V tem primeru sem rešil težavo in slika je bila ponovno prikazana pravilno.

Resnična napaka pri ustvarjanju slike

Če je med ustvarjanjem slike vržena resnična napaka, se prepričajte, da je PHP nastavljen tako, da prikaže vse možne vrste napak in preveri ustrezne dnevnike, da bi jih lahko izsledili in rešili.

Sledi kodi, bo PHP poročal o vseh napakah v dnevniku:

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

Morda boste nato ugotovili, da so poročali o nekaterih napakah, tudi če se niso pojavile v izhodnem html zaradi konfiguracije strežnika.

Uporablja se napačna oblika slike

Poskrbite, da so tipi slik, ki jih uporabljate, pravilni, na primer s to kodo, da razlikujete png in jpeg.

Poskrbite tudi, da je glava pravilna glede na uporabljeni izhod, odvisno od uporabljene funkcije ustvarjanja 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');

Knjižnica slik ni nameščena

Prepričajte se, da so knjižnice slik nameščene. Če želite to narediti, zaženite funkcijo phpinfo (); v skriptu in preverite izhod za naslednjo vrednost, povezano z PHP GD, knjižnico grafike, ki jo uporabljajo funkcije, kot je imagepng ();

V primeru, da manjkajo paketi, je način za njegovo rešitev odvisen od vaše lokalne konfiguracije, tako da dodate paket s pomočjo PEAR ukazov ali uporabite spletni strežnik, zgrajen v rešitvi za namestitev paketa.

Kaj storiti, ko imagejpeg ali imagepng ne deluje

V programu NotePad ++ odprite datoteko PHP, ki kliče funkcijo imagepng, in jo shranite, ko greste v meni Encoding> Convert to UTF-8 brez BOM-a.

V programu DreamWeaver pojdite na Lastnosti strani> Naslov / kodiranje> počistite možnost Vključi podpis Unicode (BOM).

Ko PHP imagejpeg ali imagepng ne deluje, je verjetno posledica dejstva, da je bila PHP datoteka kodirana z BOM, gradivo, zato se pošljejo dodatne informacije s sliko pred slikovnimi podatki.

Funkcije PHP imagejpeg in PHP imagepng so funkcije, ki se uporabljajo za pošiljanje slikovne kode neposredno v odziv strežnika.

PHP - imagepng ne deluje pravilno
Funkcija PHP - imagepng
Funkcija PHP - imagejpeg

Podobni članki

Komentarji (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
بالضبط ما كنت أبحث عنه ، مثالي

Pustite komentar