The simplest way to resize an UIImage?

ios, resize, uiimage

Solution

The simplest way is to set the frame of your `UIImageView` and set the `contentMode` to one of the resizing options.

Or you can use this utility method, if you actually need to resize an image:

+ (UIImage *)imageWithImage:(UIImage *)image scaledToSize:(CGSize)newSize {
    //UIGraphicsBeginImageContext(newSize);
    // In next line, pass 0.0 to use the current device's pixel scaling factor (and thus account for Retina resolution).
    // Pass 1.0 to force exact pixel size.
    UIGraphicsBeginImageContextWithOptions(newSize, NO, 0.0);
    [image drawInRect:CGRectMake(0, 0, newSize.width, newSize.height)];
    UIImage *newImage = UIGraphicsGetImageFromCurrentImageContext();    
    UIGraphicsEndImageContext();
    return newImage;
}

Example usage:

#import "MYUtil.h"
…
UIImage *myIcon = [MYUtil imageWithImage:myUIImageInstance scaledToSize:CGSizeMake(20, 20)];

Problem

In my iPhone app, I take a picture with the camera, then I want to resize it to 290*390 pixels. I was using this method to resize the image : ``` UIImage *newImage = [image _imageScaledToSize:CGSizeMake(290, 390) interpolationQuality:1]; ``` It works perfectly, but it's an undocumented function, so I can't use it anymore with iPhone OS4. So... what is the simplest way to resize an UIImage ?

Original source

Related problems