2010-11-16 65 views
2

我一直在尝试使用常用的方法调整图像大小。如果不使用这种方法,这里是需要一个图像的URL的代码。简单调整大小的图像

NSData *data = [NSData dataWithContentsOfURL:url]; 
UIImage *img = [[UIImage alloc] initWithData:data]; 

cell.imageView.image = img; 

这工作正常。但是,当我尝试使用这种方法:

-(UIImage*)imageWithImage:(UIImage*)image scaledToSize:(CGSize)newSize; 
{ 
    UIGraphicsBeginImageContext(newSize); 
    [image drawInRect:CGRectMake(0,0,newSize.width,newSize.height)]; 
    UIImage* newImage = UIGraphicsGetImageFromCurrentImageContext(); 
    UIGraphicsEndImageContext(); 
    return newImage; 
} 

,并使用该称呼它:

UIImage *scaledImage = [self imageWithImage:img scaledToSize:CGSizeMake(10.0f,10.0f)]; 

然后投入我的表是这样的:

cell.imageView.image = scaledImage; 

什么也不显示。有什么我在这里失踪?

回答

1

这类似于Exporting customized UITableViewCells into UIImage

下面是你需要什么你-imageWithImage做:scaledToSize:方法,从我的回答修改为这个问题:

-(UIImage*)imageWithImage:(UIImage*)image scaledToSize:(CGSize)newSize 
{ 
    // Create a bitmap context. 
    CGColorSpaceRef colorSpace = CGColorSpaceCreateDeviceRGB(); 
    CGContextRef bitmapContextForScaledImage = CGBitmapContextCreate(nil, newSize.width, newSize.height, 8, 0, colorSpace, kCGImageAlphaNone); 
    CGColorSpaceRelease(colorSpace); 

    // Draw the image's layer into the context. 
    UIImageView * imageView = [[UIImageView alloc] initWithImage:image]; 
    [imageView.layer renderInContext:bitmapContextForCell]; 
    [imageView release]; 

    // Create a CGImage from the context. 
    CGImageRef cgScaledImage = CGBitmapContextCreateImage(bitmapContextForScaledImage); 

    // Create a UIImage from the CGImage. 
    UIImage * scaledImage = [UIImage imageWithCGImage:cgScaledImage]; 

    // Clean up. 
    CGImageRelease(cgScaledImage); 
    CGContextRelease(bitmapContextForScaledImage); 

    return scaledImage; 
} 
+0

它不应该是'的UIImage * scaledImage = [UIImage imageWithCGImage:cgScaledImage];'? – vikingosegundo 2010-11-17 00:51:04

+0

你是对的,谢谢。 – Ryan 2010-11-17 00:59:40

+0

谢谢..我在这一行上得到一个错误 [image.layer renderInContext:bitmapContextForCell]; 要求成员“层”的东西不是一个结构或联盟 – Allen 2010-11-17 03:44:22