iphone - icon - Comprime UIImage a cierto tamaño en megabytes
splash screen ios (1)
Esta pregunta ya tiene una respuesta aquí:
- compresión de imagen por tamaño - iPhone SDK 6 respuestas
En obj-с
¿cómo se obtiene el tamaño de un cierto UIImage
almacenado en un NSMutableArray
personalizado? Eso es lo primero que quiero hacer. Y el segundo es saber que la imagen es más grande en tamaño de archivo (digamos que 15 MB) que mi propio límite de tamaño de archivo (digamos 5 MB) cómo comprime la imagen para que esté más cerca del límite de tamaño de archivo, digamos 4.99 ¿MEGABYTE?
He visto esto en otra pregunta sobre stacj overflow link is - compresión de imagen por tamaño - iPhone SDK
pero combino dos respuestas de allí, también usé este código para hacer la compresión.
CGFloat compression = 0.9f;
CGFloat maxCompression = 0.1f;
int maxFileSize = 250*1024;
NSData *imageData = UIImageJPEGRepresentation(yourImage, compression);
while ([imageData length] > maxFileSize && compression > maxCompression)
{
compression -= 0.1;
imageData = UIImageJPEGRepresentation(yourImage, compression);
}
Una forma de hacerlo es volver a comprimir el archivo en un bucle, hasta que encuentre el tamaño deseado. Primero puede encontrar el alto y el ancho, y adivinar el factor de compresión (imagen más grande más compresión) luego de comprimirlo, verificar el tamaño y dividir la diferencia nuevamente.
Sé que esto no es muy eficiente, pero no creo que haya una sola llamada para lograr una imagen de un tamaño específico.