首页 > 移动平台 > 详细

iOS错误:<Error>: ImageIO: PNG IDAT: invalid stored block lengths

时间:2015-03-28 01:15:56      阅读:421      评论:0      收藏:0      [点我收藏+]

解决方法:

1.读取图片数据,然后调用2中的方法进行校验

NSData* data = [NSData dataWithContentsOfFile:imagePath];

2.判断是否为有效的PNG图片,JPG的请使用UIImageJPEGRepresentation方法

/**
 *  校验图片是否为有效的PNG图片
 *
 *  @param imageData 图片文件直接得到的NSData对象
 *
 *  @return 是否为有效的PNG图片
 */
- (BOOL)isValidPNGByImageData:(NSData*)imageData
{
    UIImage* image = [UIImage imageWithData:imageData];
    //第一种情况:通过[UIImage imageWithData:data];直接生成图片时,如果image为nil,那么imageData一定是无效的
    if (image == nil && imageData != nil) {

        return NO;
    }

    //第二种情况:图片有部分是OK的,但是有部分坏掉了,它将通过第一步校验,那么就要用下面这个方法了。将图片转换成PNG的数据,如果PNG数据能正确生成,那么这个图片就是完整OK的,如果不能,那么说明图片有损坏
    NSData* tempData = UIImagePNGRepresentation(image);
    if (tempData == nil) {
        return NO;
    } else {
        return YES;
    }
}


iOS错误:<Error>: ImageIO: PNG IDAT: invalid stored block lengths

原文:http://blog.csdn.net/wxs0124/article/details/44687011

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!