Estoy tratando de crear un UIPickerView con algunas imágenes, pero parece que no puedo encontrar la forma de hacer que las imágenes encajen en la vista (ahora son demasiado grandes y superposición entre sí).Redimensionar UIImage en UIImageView
Estoy tratando de usar una función para cambiar el tamaño de cada imagen cuando se dibuja, pero recibo errores cuando se llama a la función, aunque el programa se compila y funciona bien (con la excepción de que la imagen no cambia de tamaño). Las funciones de función y de inicialización de cambio de tamaño son:
-(UIImage *)resizeImage:(UIImage *)image width:(int)width height:(int)height {
NSLog(@"resizing");
CGImageRef imageRef = [image CGImage];
CGImageAlphaInfo alphaInfo = CGImageGetAlphaInfo(imageRef);
//if (alphaInfo == kCGImageAlphaNone)
alphaInfo = kCGImageAlphaNoneSkipLast;
CGContextRef bitmap = CGBitmapContextCreate(NULL, width, height, CGImageGetBitsPerComponent(imageRef),
4 * width, CGImageGetColorSpace(imageRef), alphaInfo);
CGContextDrawImage(bitmap, CGRectMake(0, 0, width, height), imageRef);
CGImageRef ref = CGBitmapContextCreateImage(bitmap);
UIImage *result = [UIImage imageWithCGImage:ref];
CGContextRelease(bitmap);
CGImageRelease(ref);
return result;
}
- (void)viewDidLoad {
UIImage *h1 = [UIImage imageNamed:@"h1.png"];
h1 = [self resizeImage:h1 width:50 height: 50];
UIImageView *h1View = [[UIImageView alloc] initWithImage:h1];
NSArray *imageViewArray = [[NSArray alloc] initWithObjects:
h1View, nil];
NSString *fieldName = [[NSString alloc] initWithFormat:@"column1"];
[self setValue:imageViewArray forKey:fieldName];
[fieldName release];
[imageViewArray release];
[h1View release];
}
Salida de consola:
TabTemplate [29322: 207] cambio de tamaño
TabTemplate [29322]: CGBitmapContextCreate: espacio de color no soportado
TabTemplate [ 29322]: CGContextDrawImage: contexto no válido
TabTempla te [29322]: CGBitmapContextCreateImage: contexto no válido
No puedo entender qué está pasando mal. Cualquier ayuda es muy apreciada.
¿verificó si el valor devuelto por CGImageGetColorSpace (imageRef) es uno de los valores aceptados por CGBitmapContextCreate? – Bemmu