【问题标题】:Jpeg from server is corrupted来自服务器的 Jpeg 已损坏
【发布时间】:2013-01-14 20:46:19
【问题描述】:

我有一个接收图像并将它们发送给客户端的服务器。问题是每当我从 iPad 发送图像时,图像都会损坏,但如果我从模拟器发送它,它不会。在UIImageJPEGRepresentation 上,我使用了 0.2 的压缩率,但它仍然损坏了。

我什至试过这个方法(没用):

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

我做错了什么?

【问题讨论】:

  • 有人知道吗?

标签: ios xcode uiimage jpeg


【解决方案1】:

根据服务器软件的不同,通常会有大小限制。如果您发送的图像在 iPad 上自然会比 iPhone 大,这可能就是问题所在。

要测试是否是这种情况,请尝试将图像缩小一半,然后将 JPEGRep 发送到服务器。 (祝你好运,这些很难追)

【讨论】:

  • 问题是,如果我从模拟器发送图像,图像不会损坏,但如果我做相反的事情,那就是。所以我认为缩小图像不是一个好的选择。此外,图像不得缩小,因为用户会看到它全部模糊
  • 缩小图像是一种测试机制,用于确定服务器是否可能存在大小问题。同样,当之前遇到同样的问题时,我已经从应用程序上传了一个相同的图像(作为资源加载)并查看所有设备的行为是否相似