ImageIO: JPEG 损坏的 JPEG 数据:数据段过早结束 iphone - 如何捕获此问题?

2023-11-25

我通过 HTTP 下载图像时收到此错误。我看过在这里回答但即使有效的图像也不会返回YES从函数。

还有其他想法吗?

获取图像的代码很简单。这发生在后台线程中。

NSData *data = [NSData dataWithContentsOfURL:[NSURL URLWithString:urlString]];
UIImage *image = [UIImage imageWithData:data];

这是该线程的函数:

- (BOOL)isJPEGValid:(NSData *)jpeg {
    if ([jpeg length] < 4) return NO;
    const char * bytes = (const char *)[jpeg bytes];
    if (bytes[0] != 0xFF || bytes[1] != 0xD8) return NO;
    if (bytes[[jpeg length] - 2] != 0xFF || 
            bytes[[jpeg length] - 1] != 0xD9) return NO;
    return YES;
}

使用无符号字符。然后比较应该有效。

const unsigned char * bytes = (const unsigned char *)[jpeg bytes];

代替

const char * bytes = (const char *)[jpeg bytes];
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

ImageIO: JPEG 损坏的 JPEG 数据:数据段过早结束 iphone - 如何捕获此问题? 的相关文章

随机推荐

  • 如何在 aws lambda 机器上安装 ffmpeg?

    我正在尝试在使用 ffmpeg 的 AWS lambda 上运行节点 js 脚本 为此 我需要在计算机上安装 ffmpeg 我浏览了文档 但找不到如何连接到运行 lambda 的机器 这在 Python 中对我有用 获取 ffmpeg 的静
  • 导入/加载带块的库

    情况 我正在尝试使用 Webpack 加载库 该库本身已使用 Webpack 分成多个块 项目 A 依赖于项目 B 项目 B 是使用 Webpack 构建的 由多个块组成 项目 A 现在通过动态导入加载项目 B 当项目 A 构建时 我希望在
  • 如何更改 UITableViewCellStyleValue2 单元格上标签的大小? (UITableView iPhone)

    我在应用程序的 UITableView 中使用 UITableViewCellStyleValue2 单元格 我希望左列 蓝色文本 self textField 比默认值窄得多 我尝试在创建单元格后设置 self textField bou
  • Javascript 不上传二进制数据

    我的 javascript 函数只能正确上传文本文件 有人能帮我弄清楚如何让它也接受图像等吗 function fileUpload files if files length fileList innerHTML p No files s
  • 使用 Google Geolocation API 通过 MAC 地址对 802.11 接入点进行地理定位

    大多数浏览器现在都内置了对 Google 地理定位 API 的支持 他们通过向 Google 发送附近 802 11 接入点 其信标被您的计算机捕获的那些接入点 的 MAC 地址来实现这一点 我从不同位置捕获了大量 802 11 数据包 我
  • JSON.net:如何在不使用默认构造函数的情况下反序列化?

    我有一个类 它有一个默认构造函数和一个接受一组参数的重载构造函数 这些参数与对象上的字段匹配并在构造时分配 此时我需要默认构造函数用于其他目的 因此如果可以的话我想保留它 我的问题 如果我删除默认构造函数并传入 JSON 字符串 则对象会正
  • AVFoundation - 为视频添加模糊背景

    I am working on a video editing app in Swift In my case my output video looks like as following I am trying to fill the
  • 很好地在 gulp 任务中抛出错误

    我正在创建一个在某些情况下可能会失败的 gulp 任务 gulp task favicon function try require child process execSync icotool version catch e var er
  • 如何使用 sed 删除 \r 字符

    很简单 我有一个文件 每个换行符处都有 r n aaaa r nbbbb r ncccc 我想删除 r 字符 同时保留 n 我可以在 python 中轻松完成此操作 但使用简单的 sed 命令似乎更优雅 这可能吗 什么表达方式可以达到这个目
  • 如何使用 JavaScript 从电子邮件地址中提取用户名?

    鉴于以下电子邮件地址 电子邮件受保护 如何使用 javascript 从地址中提取某人 谢谢 正则表达式与匹配 有安全检查 var str email protected var nameMatch str match var name n
  • 我可以避免使用 JSSE 在命令行上输入密钥存储密码吗?

    我们正在使用 Maven 2 并拥有一个通过 SSL 客户端身份验证保护的 Maven 存储库管理器 为了使 Maven 能够访问存储库 必须将以下系统属性传递给 Java javax net ssl trustStore trust jk
  • 表达式模板:提高表达式求值的性能?

    通过表达式模板技术 矩阵表达式如 D A B sin C 3 就计算性能而言 几乎相当于手写的for loop 现在 假设我有以下两个表达式 D A B sin C 3 F D E cout lt lt F lt lt n 在表达式模板的
  • 如何在 Mac 上设置 LD_LIBRARY_PATH/DYLD_LIBRARY_PATH

    On macos catalina echo VARIABLE I see the value of the variable but java couldn t read the system variable 在linux中没有问题 所
  • 当 JasperViewer 出现并关闭它时,主框架/父框架也关闭[重复]

    这个问题在这里已经有答案了 When a JasperViewer出现并关闭它 主框架 父框架也关闭了 如何防止这种情况发生 这是我的代码 private void cmdprintidMouseClicked java awt event
  • Gerrit身份验证:如何禁用匿名用户

    如何阻止匿名用户在 gerrit 中查看我的项目活动 我已经用谷歌搜索了足够多的内容 但找不到所谓的项目访问控制列表的确切文件 如果您想禁止匿名用户浏览 阅读 搜索某个项目的所有更改 您只需删除Read项目中匿名用户的权限 为了允许修改权限
  • JUnit assertEquals 更改字符串

    我有一个 JUnit 测试 如下所示 Test public void testToDatabaseString DateConvertor convertor new DateConvertor Date date convertor c
  • 静态变量的实际内存位置是什么?

    静态变量是在程序执行的整个过程中分配的 因此堆栈不会 堆也不方便 那么这个变量在哪里呢 难道不应该有一个地方可以加载它吗 我们的记忆中有3段 堆栈段 包含局部变量和引用变量 保存堆中对象地址的变量 堆段 包含运行时创建的所有对象 仅对象加上
  • AX、AH、AL如何映射到EAX?

    我对x86寄存器的理解是 每个寄存器都可以被整个32位代码访问 并且它被分成多个可访问的寄存器 在这个例子中EAX作为一个 32 位寄存器 如果我们调用AX它应该返回前 16 位 如果我们调用AH or AL它应该返回 16 位之后的接下来
  • haskell中具有多参数函数的点运算符

    我想在 haskell 中编写一个无点函数 为了简单起见 我想创建这个函数 maxmin Ord a gt a gt a gt a gt a maxmin a b c max a min b c 我可以将其改进为 maxmin a b ma
  • ImageIO: JPEG 损坏的 JPEG 数据:数据段过早结束 iphone - 如何捕获此问题?

    我通过 HTTP 下载图像时收到此错误 我看过在这里回答但即使有效的图像也不会返回YES从函数 还有其他想法吗 获取图像的代码很简单 这发生在后台线程中 NSData data NSData dataWithContentsOfURL NS