【发布时间】:2010-11-07 18:19:00
【问题描述】:
我正在使用 NSURLConnection 从网络下载并保存雷达图像(.gif 格式)。在 connectionDidFinishLoading: 方法中,我使用 [UIImage imageWithData:] 创建了一个图像。
- (void)connectionDidFinishLoading:(NSURLConnection *)connection
{
// Problem is here. mutableData declared earlier.
UIImage *baseImage = [UIImage imageWithData:mutableData];
if (baseImage)
{
// do stuff with image
}
[mutableData release];
}
问题是我正在下载的图像有时是空白的并且背景清晰。这不是图像中的错误(有时雷达上没有任何东西可以返回)。但是当这种情况发生时,我在控制台中收到了这个错误。当图像的像素数非常少(1 或 2)时,也会出现此错误。
Error: ImageIO: malformed GIF frame#0 (600 x 550)
发生错误时,创建的图像为零。 600x550 是我正在下载的图像的像素大小。所以返回的图片是 nil,看起来下载失败了。
值得注意的是,baseImage 可能在 2 种情况下失败,一种是上面提到的,另一种是当我下载服务器上列出但实际上还没有的图像时。在第二种情况下, mutableData 包含一个错误字符串。我仍然需要第二种情况失败,所以我知道图像没有成功下载。
在这种情况下我需要做的实际上是创建空白图像并保存它,以便用户能够看到下载正确执行。
有什么想法吗?
谢谢, 罗斯
【问题讨论】:
-
为了提供更多信息,我将附上一张图片样本。我基本上需要一种从中制作 UIImage 的方法。此图像并非完全空白(有 1 个像素),但仍然失败。 (files.me.com/ross.kimes/6cuagt)
标签: iphone objective-c ios uiimage