2012-10-30 63 views
2

我對處理圖像有點新,有很多事情我不知道,所以請耐心等待。基本上我用相機拍攝圖像,並將其呈現在UIImageView內,這是小視圖60:80。圖像自動調整大小以適合UIImageView,並且一切看起來都很好。iOS調整大拇指圖片大小?

我的問題是 - 我是否需要做更多的圖像操作(爲了最大限度地提高效率),或者這一切?

回答

2

Resizeimagefunction是:在document directoryunique names

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

Save調整後的圖像。後來從document directoryaccess thumbnail image

如果圖像的數量是more比使用圖像顯示圖像的lazy loading

6

請使用如下代碼這將讓你更好的縮略圖

-(UIImage *)generatePhotoThumbnail:(UIImage *)image 
    { 
    CGSize size = image.size; 
    CGSize croppedSize; 
    CGFloat ratio = 120.0; 
    CGFloat offsetX = 0.0; 
    CGFloat offsetY = 0.0; 

    if (size.width > size.height) { 
     offsetX = (size.height - size.width)/2; 
     croppedSize = CGSizeMake(size.height, size.height); 
    } else 
     { 
     offsetY = (size.width - size.height)/2; 
     croppedSize = CGSizeMake(size.width, size.width); 
    } 

    CGRect clippedRect = CGRectMake(offsetX * -1, offsetY * -1, croppedSize.width, croppedSize.height); 
    CGImageRef imageRef = CGImageCreateWithImageInRect([image CGImage], clippedRect); 

    CGRect rect = CGRectMake(0.0, 0.0, ratio, ratio); 

    UIGraphicsBeginImageContext(rect.size); 
    [[UIImage imageWithCGImage:imageRef] drawInRect:rect]; 
    UIImage *thumbnail = UIGraphicsGetImageFromCurrentImageContext(); 
    UIGraphicsEndImageContext(); 
     CGImageRelease(imageRef); 

    return thumbnail; 
    } 
0

如果你很高興與顯示畫面的方式,那麼你不需要任何額外的代碼。圖像視圖對您的圖像重新縮放沒有任何問題,它們在這方面效率很高,所以不要擔心。