¿Cómo detectar o evitar la corrupción de los archivos png descargados de iOS?
Añadido: 26 de noviembre de 2014:
Descubrí que después de introducir ImageIO, las imágenes a veces todavía se corrompen. Cuando estaba a punto de rendirme, requirió mucho esfuerzo. Sin solución en stackoverflow y google, leí el código fuente y las instrucciones oficiales de UIImage, UIImageView e ImageIO, y encontré un problema complicado. El método requiere escribir lo siguiente. Código de dos pasos:
1. Leer los datos de la imagen. Luego llame al método en 2 para verificación
NSData* data = [NSData dataWithContentsOfFile:imagePath];
2. Determine si es una imagen PNG válida. Para JPG, utilice el. UIImageJPEGMétodo de representación
/**
* Verificar si la imagen es una imagen PNG válida
*
* @param imageData obtenidos directamente del objeto NSData del archivo de imagen
*
* * @return Si es una imagen PNG válida
*/
*/
>- (BOOL)isValidPNGByImageData: (NSData*)imageData
{
UIImage* imagen = [UIImage imageWithData:imageData];
//No. Un caso: pase [UIImage imageWithData:data]; al generar la imagen directamente, si la imagen es nula, imageData debe ser inválida
if (image == nil && imageData != nil ) {
Return NO;
}
// Segundo caso: Algunas partes de la imagen no tienen problemas, pero algunas partes están dañadas. el primer paso de la calibración. En este caso se debe utilizar el siguiente método. Convierta la imagen a datos PNG. Si los datos PNG se pueden generar correctamente, la imagen está completa. De lo contrario, la imagen está dañada.
NSData* tempData = UIImagePNGRepresentation(image);
if (tempData == nil) {
devuelve NO;
} else {
devuelve SÍ;
} p>
}
}
}