2013-05-25 289 views
-2

我創建了一個包含高分辨率圖像的UIImageView。問題是該圖像的分辨率太高而無法放入imageView。 imageView的大小是92 x 91(所以它很小)。它包含一個UIImage,它的分辨率太高,所以在UIImageView中看起來很醜。 那麼我該如何降低UIImage的分辨率呢?降低分辨率UIImage/UIImageView

我的UIImageView的代碼:

UIImageView *myImageView = [[UIImageView alloc] initWithImage:[UIImage imageWithContentsOfFile:pngFilePath]]; 
    myImageView.frame = CGRectMake(212.0, 27, 92,91); 
+0

您對分辨率的定義是什麼?它通常用作每個單元的像素數。這聽起來像你把它定義爲圖像的尺寸。 –

回答

2

看看這個

https://stackoverflow.com/a/2658801

這將幫助您根據您的需要

Add方法將你的代碼調整圖片大小,並調用這樣

UIImage *myImage =[UIImage imageWithContentsOfFile:pngFilePath]; 
UIImage *newImage =[UIImage imageWithImage:myImage scaledToSize:CGSizeMake(92,91)]; 
+0

如何實現該類方法? – user2420219

+0

請在最新的答案中找到它 – George

0

嘗試用這種

 myImageView.contentMode = UIViewContentModeScaleToFill; 
+0

這怎麼回答這個問題呢? – Rambatino

0

您需要縮小圖像,這會降低分辨率,使其更容易儲存。我實際上寫了一個類(建立在SO的一些東西上),就是這樣做的。這是我的github上,我們來看一看:

https://github.com/pavlovonline/UIImageResizer

的主要方法是

-(UIImage*)resizeImage:(UIImage*)image toSize:(CGFloat)size 

所以你把這個方法的尺寸要縮小圖像。如果高度大於寬度,它會自動計算中間值,併爲您提供完美居中的正方形。寬度大於高度相同。如果你需要一個不是方形的圖像,請自行調整。

所以你會找回縮小的UIImage,然後你可以把它放到你的UIImageView中。節省一些內存。

1

您可以使用此方法調整圖像大小以返回已調整大小的圖像:

-(UIImage *)imageWithImage:(UIImage *)image scaledToSize:(CGSize)newSize { 
    UIGraphicsBeginImageContextWithOptions(newSize, NO, 0.0); 
    // Here pass new size you need 
    [image drawInRect:CGRectMake(0, 0, newSize.width, newSize.height)]; 
    UIImage *newImage = UIGraphicsGetImageFromCurrentImageContext();  
    UIGraphicsEndImageContext(); 
    return newImage; 
} 

希望它可以幫助你。

+0

如何使用我的UIImage實現此代碼? – user2420219

相關問題