Objective-Cで画像のリサイズ
画像トリミングについて imagePickerControllerで取得した画像をリサイズしてから使う方が何かと便利かも.
-(void)imagePickerController:(UIImagePickerController*)picker didFinishPickingMediaWithInfo:(NSDictionary*)info
ピッカーで画像選択後,infoにNSDictionary型で画像データが格納されているので,
UIImage *image = [info objectForKey:UIImagePickerControllerOriginalImage];
縦横比率を保ちながら縮小。 例えばどちらかの辺(縦か横か)を320pxにする。
CGImageRef imageRef = [image CGImage]; size_t w = CGImageGetWidth(imageRef); size_t h = CGImageGetHeight(imageRef); if (w < h) { //縦辺が長い場合 resize_w = 320; resize_h = h * resize_w / w; //横幅と同じ比率 } else { //横辺が長い場合 resize_h = 320; resize_w = w * resize_h / h; } //得た画像サイズをUIGraphicsBeginImageContext()にセットして書き込む UIImage *newImage = [UIImage alloc] init]; UIGraphicsBeginImageContext(CGSizeMake(resize_w, resize_h)); [newImage drawInRect:CGRectMake(0, 0, resize_w, resize_h)]; newImage = UIGraphicsGetImageFromCurrentImageContext(); UIGraphicsEndImageContext();
newImageにはリサイズされたImageが入る.