创建包含损坏/不完整JPEG数据的UIImage时,控制台将打印出
<Error>: Corrupt JPEG data: premature end of data segment
将显示不完整的图像,灰色填满不完整的部分。我不希望这种情况发生。
我拼命尝试使用try-catch块,但它没有发现错误。有没有办法抓住错误?
答案 0 :(得分: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);
}
答案 1 :(得分:13)
取决于您如何获取数据等。也许这就是您所需要的:iphone-corrupt-jpeg-data-for-image-received-over-http
检查JPEG数据是否完整的简单方法是分别检查FF D8和FF D9的前两个字节。这两个字节分别标识JPEG文件的开头和结尾。