Je télécharge et enregistre une image radar (au format .gif) à partir d'un site Web à l'aide d'une connexion NSURLConnection. Dans la méthode connectionDidFinishLoading:, je crée une image en utilisant [UIImage imageWithData:].Téléchargement et enregistrement d'une image pouvant être vide
- (void)connectionDidFinishLoading:(NSURLConnection *)connection
{
// Problem is here. mutableData declared earlier.
UIImage *baseImage = [UIImage imageWithData:mutableData];
if (baseImage)
{
// do stuff with image
}
[mutableData release];
}
Le problème est que les images que je télécharge sont parfois vides et ont un arrière-plan clair. Ce n'est pas une erreur dans l'image (parfois il n'y a rien sur le radar pour revenir). Mais quand cela arrive, je reçois cette erreur dans la console. L'erreur peut également se produire lorsque l'image a un très petit nombre de pixels (1 ou 2).
Error: ImageIO: malformed GIF frame#0 (600 x 550)
Lorsque l'erreur se produit, l'image créée est nulle. Le 600x550 est la taille en px de l'image que je télécharge. Donc, l'image retournée à zéro, ce qui donne l'impression que le téléchargement a échoué.
Il est à noter que baseImage peut échouer dans 2 cas, celui mentionné ci-dessus ou lorsque je télécharge une image qui est listée sur le serveur qui n'est pas encore là. Dans le second cas, mutableData contient une chaîne d'erreur. J'ai toujours besoin que le 2ème cas échoue donc je sais qu'une image n'a pas été téléchargée avec succès.
Ce que je dois faire dans ce cas est en fait créer l'image vide et l'enregistrer afin que l'utilisateur sera en mesure de voir que le téléchargement effectué correctement.
Des idées?
Merci, Ross
Pour tenter de donner plus d'informations, je vais fixer un échantillon d'une image. J'ai fondamentalement besoin d'un moyen d'en faire un UIImage. Cette image n'est pas complètement vide (a 1 pixel), mais échoue toujours. (https://files.me.com/ross.kimes/6cuagt) –