2010-11-16 46 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