versiones guia español descargar actualizar objective-c cocoa-touch ios uiimage

objective c - guia - cambiar el tamaño de un UIImage sin cargarlo por completo en la memoria?



qgis manual (1)

Debería echarle un vistazo a CGImageSource en ImageIO.framework, pero solo está disponible desde iOS 4.0.

Ejemplo rápido:

-(UIImage*)resizeImageToMaxSize:(CGFloat)max path:(NSString*)path { CGImageSourceRef imageSource = CGImageSourceCreateWithURL((CFURLRef)[NSURL fileURLWithPath:path], NULL); if (!imageSource) return nil; CFDictionaryRef options = (CFDictionaryRef)[NSDictionary dictionaryWithObjectsAndKeys: (id)kCFBooleanTrue, (id)kCGImageSourceCreateThumbnailWithTransform, (id)kCFBooleanTrue, (id)kCGImageSourceCreateThumbnailFromImageIfAbsent, (id)@(max), (id)kCGImageSourceThumbnailMaxPixelSize, nil]; CGImageRef imgRef = CGImageSourceCreateThumbnailAtIndex(imageSource, 0, options); UIImage* scaled = [UIImage imageWithCGImage:imgRef]; CGImageRelease(imgRef); CFRelease(imageSource); return scaled; }

Estoy desarrollando una aplicación en la que un usuario podría intentar cargar imágenes muy grandes. Estas imágenes se muestran primero como miniaturas en una vista de tabla. Mi código original se bloqueaba en imágenes grandes, así que lo estoy reescribiendo para descargar primero la imagen directamente en el disco.

¿Hay alguna manera conocida de cambiar el tamaño de una imagen en el disco sin cargarla completamente en la memoria a través de UIImage ? Actualmente estoy intentando redimensionar usando las categorías en UIImage como se detalla here , pero mi aplicación falla al intentar hacer una miniatura de una imagen muy grande (como, por ejemplo, this - advertencia, imagen grande).