A partir de iOS 4.0, el SDK de iOS incluye la CGImageSource...
functions (en el marco ImageIO). Es una API muy flexible para consultar metadatos sin cargar la imagen en la memoria. Obtener las dimensiones en píxeles de una imagen debería funcionar como esto (asegúrese de incluir el ImageIO.framework en su objetivo):
#import <ImageIO/ImageIO.h>
NSURL *imageFileURL = [NSURL fileURLWithPath:...];
CGImageSourceRef imageSource = CGImageSourceCreateWithURL((CFURLRef)imageFileURL, NULL);
if (imageSource == NULL) {
// Error loading image
...
return;
}
CGFloat width = 0.0f, height = 0.0f;
CFDictionaryRef imageProperties = CGImageSourceCopyPropertiesAtIndex(imageSource, 0, NULL);
CFRelease(imageSource);
if (imageProperties != NULL) {
CFNumberRef widthNum = CFDictionaryGetValue(imageProperties, kCGImagePropertyPixelWidth);
if (widthNum != NULL) {
CFNumberGetValue(widthNum, kCFNumberCGFloatType, &width);
}
CFNumberRef heightNum = CFDictionaryGetValue(imageProperties, kCGImagePropertyPixelHeight);
if (heightNum != NULL) {
CFNumberGetValue(heightNum, kCFNumberCGFloatType, &height);
}
// Check orientation and flip size if required
CFNumberRef orientationNum = CFDictionaryGetValue(imageProperties, kCGImagePropertyOrientation);
if (orientationNum != NULL) {
int orientation;
CFNumberGetValue(orientationNum, kCFNumberIntType, &orientation);
if (orientation > 4) {
CGFloat temp = width;
width = height;
height = temp;
}
}
CFRelease(imageProperties);
}
NSLog(@"Image dimensions: %.0f x %.0f px", width, height);
(adaptado de "Programación con cuarzo" por Gelphman y Laden, enumerando 9.5, página 228)
Esta es una buena pregunta. Android proporciona un medio para hacer esto, pero no sé de una solución iOS de forma directa. EDITAR: Esto se ha preguntado antes. http://stackoverflow.com/questions/1551300/get-size-of-image-without-loading-in-to-memory – Justin
busqué antes, ¡pero no pude encontrarlo! ¡muchas gracias! – koda