PHP GD generált kép A kép nem jeleníthető meg, mert hibákat tartalmaz a Firefoxban

PHP GD generált kép A kép nem jeleníthető meg, mert hibákat tartalmaz a Firefoxban [Magyar]

Ha PHP-t generál egy képhez, például egy vízjel hozzáadásával a kiszolgáló tárolt képéhez, az alábbi kóddal vagy hasonlóval JPG helyett PNG helyett, egyáltalán nem jelenik meg a kép, és hibát dob, amely közvetlenül látható a Firefoxon, de nem a Chrome-ban.

Ez a fajta kód, annak ellenére, hogy néhány szerveren dolgozik, most más, néha homályos okokból is működhet. Az én esetemben tökéletesen jól működött helyileg, de az internetkiszolgáló hibája alatt készült, a kép nem jeleníthető meg, mert hibákat tartalmaz.

A probléma több okból is származhat, ezek közül néhány:

Korábban már beállított kimenet.

Valódi hiba a képalkotásból.

A rossz képtípust használják.

A képkönyvtár nincs telepítve.

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

Korábban már beállított kimenet

Még ha nem szándékosan is, lehet, hogy például a korábbi korábbi szkriptek a végén tartalmaznak szóközöket - a hiba elkerülése érdekében győződjön meg róla, hogy a PHP nem javasolja a PHP végcímkékkel történő szkriptek bezárását?>

Ezután a fejléc funkció használata előtt a következő kódot használva győződjön meg róla, hogy az előzőleg beállított fejlécet eldobták

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

És ez a funkció annak biztosítása érdekében, hogy a fejléc és a kép előtt ne legyen kimenet

ob_end_clean();

Ez megoldotta a problémát az én esetemben, és a kép helyesen került megjelenítésre.

Valódi hiba a képalkotásból

Abban az esetben, ha a képalkotás során valódi hiba keletkezett, győződjön meg róla, hogy a PHP minden lehetséges hiba megjelenítésére van beállítva, és ellenőrizze a megfelelő naplókat annak érdekében, hogy nyomon követhesse és megoldhassa.

A kód után a PHP minden hibát jelent a naplóban:

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

Ezután megtudhatja, hogy bizonyos hibákat jelentettek, még akkor is, ha a kiszolgáló konfiguráció miatt nem jelentek meg a kimeneti html-ben.

A rossz képtípust használják

Győződjön meg róla, hogy a használt kép típusok helyesek, például a png és a jpeg közötti különbségtételt használva.

Győződjön meg róla, hogy a fejléc a használt kimenet függvényében helyes-e, a használt képalkotási funkciótól függően

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

A képkönyvtár nincs telepítve

Annak érdekében, hogy a képkönyvtárak telepítve legyenek. Ehhez futtassa a phpinfo () függvényt; egy szkriptben, és ellenőrizze a kimenetet a következő értékhez a PHP GD-hez, a grafikus könyvtárat, amelyet olyan funkciók használnak, mint a imagepng ();

Abban az esetben, ha a csomagok hiányoznak, a megoldás módja a helyi konfigurációtól függ, vagy a csomag PEAR parancsokkal történő hozzáadásával, vagy a webes megoldás beépített megoldásában csomag telepítéshez.

Mi a teendő, ha a imagejpeg vagy imagepng nem működik

A NotePad ++ programban nyissa meg a imagepng függvényt hívó PHP fájlt, majd mentse el a kódolás menü> Átváltás UTF-8-ra BOM nélkül menüpontra.

A DreamWeaver alkalmazásban keresse meg az Oldaltulajdonságok> Cím / kódolás> Uncheck Unicode Signature (BOM) elemet.

Amikor a PHP imagejpeg vagy imagepng nem működik, valószínűleg annak a ténynek köszönhető, hogy a PHP fájlt egy BOM, a Bill of Material kódolja, és ezért a képadatok előtt extra információ kerül elküldésre a képpel.

A PHP imagejpeg és PHP imagepng függvények funkciók a képkód közvetlen küldésére szolgálnak.

PHP - imagepng nem működik megfelelően
PHP - imagepng funkció
PHP - imagejpeg függvény

Hasonló cikkek

Hozzászólások (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
بالضبط ما كنت أبحث عنه ، مثالي

Szólj hozzá

Az Ezoic segítségével növelje a hirdetési bevételt 50-250% -kal. A Google Certified Publishing Partner.
Az Ezoic segítségével növelje a hirdetési bevételt 50-250% -kal. A Google Certified Publishing Partner.
 
Az Ezoic segítségével növelje a hirdetési bevételt 50-250% -kal. A Google Certified Publishing Partner.
Az Ezoic segítségével növelje a hirdetési bevételt 50-250% -kal. A Google Certified Publishing Partner.