2016-12-27 6 views
-1

손상되었지만 여전히 모든 데스크탑 이미지 뷰어에로드되지만, PHP가 아닌 png가 있습니다. imagecreatefrompng 호출PHP에서 손상된 png (잘린 데이터)를 수정했습니다.

오류 :

Warning: imagecreatefrompng(): gd-png: fatal libpng error: Read Error: truncated data in test.php on line 45

Warning: imagecreatefrompng(): gd-png error: setjmp returns error condition in test.php on line 45

Warning: imagecreatefrompng(): 'test.png' is not a valid PNG file in test.php on line 45

Here is the image in question 어쨌든 더 전에 PHP의 화상 정착을 처리 있는가? 데스크톱 이미지 뷰어를 연 다음 png로 다시 저장하여 문제를 해결할 수 있지만이 손상된 형식으로 제공되는 모든 이미지 서버 측을 수정해야합니다. 오류가 이미지가 IEND 청크가없는 말했듯이

pngcheck test.png 
test.png file doesn't end with an IEND chunk 

답변

0

섹션 중요한 덩어리에서 PNG standard의 11.2.1 항은

A valid PNG datastream shall begin with a PNG signature, immediately followed by an IHDR chunk, then one or more IDAT chunks, and shall end with an IEND chunk. Only one IHDR chunk and one IEND chunk are allowed in a PNG datastream.

을 말한다. 유효한 PHP 이미지가 아니므로 PHP는 이미지 처리를 거부 할 권리가 있습니다.

그런 말로 이미지가 어떻게 나옵니까? 다른 시스템에 연결하여 이미지를 검색하거나, 데이터베이스에서 이미지를 가져 오거나, 사용자가 이미지를 업로드하고 있습니까?

+0

그들은 도구를 통해 제어 할 수 없으므로 언제나 손상 될 수 있으므로 CLI 도구 나 유사한 도구를 찾아서 (현재는 바탕 화면 이미지 도구로 열고 다시 저장하여 수정합니다.). – Titan