1. ホーム
  2. ios

[解決済み] UIImageのサイズを変更する最も簡単な方法?

2022-03-22 20:32:04

質問

iPhoneアプリで、カメラで撮影した写真を290*390ピクセルにリサイズしたいのですが、どうすればいいですか?この方法でリサイズしていました。

UIImage *newImage = [image _imageScaledToSize:CGSizeMake(290, 390)
                         interpolationQuality:1];    

完璧に動作しますが、ドキュメント化されていない機能なので、iPhone OS4ではもう使えません。

では、UIImageのサイズを変更する最も簡単な方法は何でしょうか?

解決方法は?

最も簡単な方法は、フレームを設定することです。 UIImageView を設定し contentMode をリサイズオプションのいずれかに設定します。

また、実際に画像のサイズを変更する必要がある場合は、このユーティリティの方法を使用することができます。

+ (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;
}

使用例です。

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