PHP GD loodud kujutis Pilt ei saa kuvada, kuna see sisaldab Firefoxis vigu

PHP GD loodud kujutis Pilt ei saa kuvada, kuna see sisaldab Firefoxis vigu

Kui genereerite kujutist PHP-ga, näiteks lisades vesimärgi serverisse salvestatud pildile, kasutades alljärgnevat koodi või sarnast JPEG-vormingut PNG asemel, ei pruugi pilti üldse genereerita ja viska viga, mis on otse Firefoxis nähtav, kuid mitte Chrome'is

Selline kood, hoolimata mõnede serverite töötamisest, võib nüüd töötada mõne muu, mõnikord ka varjatud põhjusel. Minu puhul töötas see täiesti korras kohas, kuid toodetud veebiserveri all vea all, pilti ei saa kuvada, kuna see sisaldab vigu.

Probleem võib tulen mitmel põhjusel, siin on mõned neist:

Väljund on juba varem seadistatud.

Tõeline tõrge pildi genereerimisel.

Kasutatakse vale pilditüüpi.

Pildiraamatukogu pole installitud.

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

Väljund on juba varem seadistatud

Isegi kui see ei ole ettekavatsematu, võib see olla näiteks siis, kui mõni teine ​​eelmine skript sisaldas tühikuid lõpus - selle vea vältimiseks veenduge, et PHP soovitab mitte sulgeda PHP lõppjälje skripte?>

Seejärel peate enne päisefunktsiooni kasutamist kasutama järgmist koodi, et veenduda, et kõik eelnevalt määratud päised visatakse ära

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

Ja ka see funktsioon, et veenduda, et päise ja kujutise väljundit pole loodud

ob_end_clean();

See lahendas probleemi minu juhtumi puhul ja pilt kuvati õigesti uuesti.

Tõeline tõrge pildi genereerimisel

Kui pildi genereerimisel visatakse tõeline viga, veenduge, et PHP on seatud kõigi võimalike vigade kuvamiseks ja kontrollige vastavaid logisid, et saaksite neid jälgida ja lahendada.

Pärast koodi muudab PHP kõigi vigade logi:

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

Seejärel saate teada, et mõned vead on teatatud, isegi kui need ei ilmu html-vormingus serveri konfiguratsiooni tõttu.

Kasutatakse vale pilditüüpi

Veenduge, et kasutatavad pilditüübid on õiged, näiteks kasutades seda koodi png-i ja JPEG-de eristamiseks.

Samuti veenduge, et päis on vastavalt kasutatavale väljundile õige, olenevalt kasutatavast kujutise genereerimise funktsioonist

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

Pildiraamatukogu pole installitud

Veenduge, et pildiraamatud on installitud. Selleks käivitage funktsioon phpinfo (); skripti ja kontrollige järgmist väärtust, mis on seotud PHP GD-ga, graafikaraamatukoguga, mida kasutavad funktsioonid nagu imagepng ();

Juhul, kui paketid puuduvad, sõltub selle lahendus kohalikust konfiguratsioonist, lisades paketti PEAR-i käskude abil või kasutades pakettide paigaldamisel lahenduse jaoks sisseehitatud veebivõrku.

Mida teha, kui imagejpeg või imagepng ei tööta

Märkmikus ++ avage PHP-fail, mis kutsub funktsiooni imagepng, ja salvestage see menüüsse Kodeering> Teisenda UTF-8-ks ilma BOM-i.

DreamWeaveris minge lehele Lehekülje atribuudid> Pealkiri / kodeering> tühjendage valik Sisesta Unicode'i allkiri (BOM).

Kui PHP imagejpeg või imagepng ei tööta, on see tõenäoliselt tingitud asjaolust, et PHP-fail on kodeeritud BOM-i, materjaliarvega ja seetõttu saadetakse pildiga enne pildiandmeid täiendav teave.

PHP imagejpeg ja PHP imagepng funktsioonid on funktsioon, mida kasutatakse pildikoodi saatmiseks otse serveri vastusesse.

PHP - imagepng ei tööta korralikult
PHP - imagepng funktsioon
PHP - imagejpeg funktsioon

Sarnased artiklid

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

Jäta kommentaar