php检查jpg图片是否损坏方法
可以教你个最简单的办法,对于JPG格式的图片,看最后两个字节是否是FFD9,如果不是的话,那么一般是不正常的,如果是其它格式的话,这个判断方式就不适用了.
正常的JPG文件都是以FFD8开头,FFD9结尾的,如果丢失了文件尾部,JPG仍然可以被识别,但是就会丢失部分图像数据.
当然,我说的这种只是简单的判断,可能丢失前的那段结尾的正好是FFD9,但显然还是不正确的,但基本够用,如果追求严谨,那么就得阅读JPEG的格式规范文档了,这已经不属于PHP的知识范畴了.
我试过判断图片格式和像素,你这显然不行,不够深入,要严谨,就必须深入了解JPG的存储.
至于php教程的GD库是否有相应的判断函数,我没关注过,你可以google,我就不多说了。欢迎你研究出来后共享,分享一个读取jpg的php文件,实例代码如下:
- $adress="IMG_XXX.JPG";
- $exif = read_exif_data ($adress);
- while(list($k,$v)=each($exif)) {
- if($k=="Thumbnail"){
- $fp=fopen ("/www/home/image/Thumbnail$adress",
- 'a');
- fwrite ($fp, $v);
- fclose ($fp);
- echo "<br />n";
- echo "n";
- echo "<br />n";
- }else{ //开源代码phpfensi.com
- echo "$k: $v<br />n";
- }
- }