你好,歡迎來到IOS教程網

 Ios教程網 >> IOS編程開發 >> IOS開發綜合 >> iOS錯誤:(Error): ImageIO: PNG IDAT: invalid stored block lengths

iOS錯誤:(Error): ImageIO: PNG IDAT: invalid stored block lengths

編輯:IOS開發綜合

解決方法:

 

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;
    }
}


  1. 上一頁:
  2. 下一頁:
蘋果刷機越獄教程| IOS教程問題解答| IOS技巧綜合| IOS7技巧| IOS8教程
Copyright © Ios教程網 All Rights Reserved