PHP GD pwodwi imaj Imaj la pa ka parèt paske li gen erè nan Firefox

PHP GD pwodwi imaj Imaj la pa ka parèt paske li gen erè nan Firefox

Lè génération yon imaj ak PHP, pou egzanp ajoute yon filigran nan yon sèvè ki estoke foto, lè l sèvi avèk anba a kòd, oswa yon sèl menm jan ak JPEG olye pou yo PNG, imaj pa ta ka pwodwi nan tout epi jete yon erè, dirèkteman vizib sou Firefox, men se pa sou Chrome.

Sa a kalite kòd, malgre k ap travay sou kèk serveurs, ta ka kounye a travay sou kèk lòt, pafwa pou rezon fènwa. Nan ka mwen an, li te travay parfe amann lokalman, men pwodui anba a erè sou sèvè entènèt, imaj la pa ka parèt paske li gen erè.

Pwoblèm lan ka soti nan plizyè rezon, isit la se kèk nan yo:

Gen yon pwodiksyon deja mete deja.

Yon erè otantik soti nan jenerasyon imaj.

Kalite imaj la mal yo itilize.

Bibliyotèk Imaj pa enstale.

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

Gen yon pwodiksyon deja mete deja

Menm si se pa entansyonèlman, li ta ka ka a pou egzanp ke lòt Scripts anvan yo te gen espas nan fen a - pou fè pou evite erè sa a, asire w, jan PHP rekòmande, pa fèmen Scripts ak fen fen PHP?>

Lè sa a, anvan ou sèvi ak fonksyon an header, sèvi ak kòd sa a asire w ke nenpòt ki header te abandone yo abandone

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

Epi tou li fonksyon sa a asire w ke pa gen okenn pwodiksyon te pwodwi anvan header a ak imaj

ob_end_clean();

Sa a te rezoud pwoblèm nan nan ka mwen an, ak imaj la te kòrèkteman parèt ankò.

Yon erè otantik soti nan jenerasyon imaj

Nan ka te yon erè reyèl jete pandan jenerasyon imaj, asire w ke PHP mete yo montre tout kalite posib nan erè, epi tcheke mòso bwa ki koresponn yo, nan lòd pou kapab swiv li desann ak rezoud li.

Apre kòd ap fè PHP rapòte tout erè nan boutèy la:

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

Ou ta ka Lè sa a, jwenn ke kèk erè yo te rapòte, menm si yo pa t 'parèt nan randman nan html, akòz konfigirasyon sèvè.

Kalite imaj la mal yo itilize

Asire ke kalite imaj ou itilize yo kòrèk, pou egzanp lè l sèvi avèk kòd sa a pou fè distenksyon ant png ak jpeg.

Epitou asire ke header a kòrèk dapre pwodiksyon an te itilize, depann sou fonksyon an jenerasyon imaj yo itilize

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

Bibliyotèk Imaj pa enstale

Pou asire ke bibliyotèk imaj yo enstale. Pou fè sa, kouri fonksyon an phpinfo (); nan yon script, epi tcheke pwodiksyon an pou valè sa a ki gen rapò ak PHP GD, bibliyotèk la grafik ki itilize pa fonksyon tankou imagepng ();

Nan ka pakè yo ki disparèt, wout la yo rezoud li depann de konfigirasyon lokal ou a, swa pa ajoute pake a lè l sèvi avèk PEAR kòmandman, oswa lè l sèvi avèk lame a entènèt bati nan solisyon pou enstalasyon pake.

Ki sa ki fè lè imagejpeg oswa imagepng pa ap travay

Nan NotePad ++, louvri dosye a PHP ki apèl fonksyon an imagepng, epi sove li apre ale nan meni kodaj> Konvèti nan UTF-8 san yo pa BOM.

Nan DreamWeaver, ale nan Pwopriyete paj> Tit / kodaj> dezaktive enkli siyati Unikod (BOM).

Lè PHP imagejpeg oswa imagepng pa ap travay, li gen plis chans akòz lefèt ke dosye a PHP te kode ak yon BOM, yon bòdwo nan materyèl, ak Se poutèt sa se enfòmasyon siplemantè voye ak imaj la anvan done yo imaj.

PHP imagejpeg la ak PHP imagepng fonksyon yo se fonksyon itilize voye yon kòd foto dirèkteman nan repons lan sèvè.

PHP - imagepng pa travay byen
PHP - fonksyon imagepng
PHP - imagejpeg fonksyon

Atik menm jan an

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

Kite yon kòmantè