捕获错误:损坏的JPEG数据:数据段的过早结束

sam*_*ize 14 iphone jpeg uiimage

创建具有损坏/不完整JPEG数据的UIImage时,控制台将打印出来

<Error>: Corrupt JPEG data: premature end of data segment

将显示不完整的图像,灰色填满不完整的部分.我不希望这种情况发生.

我拼命尝试使用try-catch块,但它没有捕获错误.有没有办法抓住错误?

rop*_*cks 23

针对Slee上面的问题,这是我使用的方法:

-(BOOL)dataIsValidJPEG:(NSData *)data
{
    if (!data || data.length < 2) return NO;

    NSInteger totalBytes = data.length;
    const char *bytes = (const char*)[data bytes];

    return (bytes[0] == (char)0xff && 
            bytes[1] == (char)0xd8 &&
            bytes[totalBytes-2] == (char)0xff &&
            bytes[totalBytes-1] == (char)0xd9);
}
Run Code Online (Sandbox Code Playgroud)


Vaa*_*ayu 13

取决于你如何获取数据等.也许这就是你要找的东西:iphone-corrupt-jpeg-data-for-image-received-over-http

检查JPEG数据是否完整的简单方法是分别检查FF D8和FF D9的前两个字节.这两个字节分别标识JPEG文件的开头和结尾.