Jump to content
php.lv forumi

imagecreatefromjpeg - invalīds JPEG fails


Toms

Recommended Posts

Bilde, kas nākusi no NOKIA 6020 un vēl dažiem citiem telefoniem - met erroru, kad gribu to resaizot. Rezultātā parādās resaizota bilde, bet viss pilnīgi melns + šis errors:

 

Warning: imagecreatefromjpeg(): 'att.jpg' is not a valid JPEG file in D:\celjsh\index.php on line 39

 

Atradu info:

I have noticed that Nokia's old camera-phones create non-standard JPEG's.

 

Nokias' JPEG doesn't end with 0xFFD9. Add 0xFFD9 end of file and image works fine with imagecreatefromjpeg().

Atvēru to bildi ar WinHex editoru - nekā, ir beigās tai bildei 0xFFD9. tātad šis nevarētu būt pie vainas.

 

Kādi citi varianti, kā apiet erroru?

Link to comment
Share on other sites

nav gan...

 

re kur risinājums...

// Atdod atpakaļ GD_ImageResource
function imageCreateFromJpegEx($file)
{
$data = file_get_contents($file);
$im = @imagecreatefromstring($data);
while (!$im)
{
	$data = substr_replace($data, "", -3, -2);
	$im = @imagecreatefromstring($data);
}
return $im;
}

 

PS: Ja `pārtulkojām` cilvēku valodā... nahrinizē visu biegās izņemot tos 0xFFD9, līdz izdodas atvērt JPEG

Edited by Delfins
Link to comment
Share on other sites

imagemagicks saprot ar mogrify resaizoja un pamainīja kvalitāti/sharpingu abām bildēm. pēc tam resaizotā bilde ir 'pareiza' un imagecreatefromjpeg() nelamājas. vari mēģināt 'nepareizās' bildes šādi pārseivot par 'pareizām'.

Link to comment
Share on other sites

×
×
  • Create New...