我正在使用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是我下載的圖像的像素大小。所以返回的圖像在零,這使得它看起來像下載失敗。
值得注意的是,baseImage可能會在兩種情況下失敗,一種是上面提到的,或者我下載的服務器上列出的圖像實際上還沒有。在第二種情況下,mutableData包含一個錯誤字符串。我仍然需要第二種情況下失敗,所以我知道一個圖像沒有成功下載。
我在這種情況下需要做的是實際創建空白圖像並保存,以便用戶能夠看到下載正確執行。
任何想法?
感謝, 羅斯
要儘量給一些更多的信息,我要附加一個圖像的樣本。我基本上需要一種方法來從這個UIImage。該圖像不是完全空白的(有1個像素),但仍然失敗。 (https://files.me.com/ross.kimes/6cuagt) – 2010-11-11 02:40:54