画像の縮小

iOSでOpenCV 3.0 で画像を扱う時に処理が速くしたかったので画像を縮小したかった。

環境

  • OS X EI Capitan 10.11.6
  • xcode7.3.1

 

//
// usage
// UIImage* destImage = [self ResizeImage:orgImage];
//
-(UIImage*) ResizeImage:(UIImage*)srcImage {
    
    CGSize orgImageSize = srcImage.size;
    
    NSLog(@"リサイズ前 画像サイズ:横 = %f x 縦 = %f", orgImageSize.width, orgImageSize.height);
    
    // このサイズにしたい
    // iPhoneのカメラで撮影しているものを対象としているので比率は同じ
    // 撮影時縦横が逆になる場合があるし、iPhoneの種類によってカメラの解像度が異なるので大きさを揃えます
    double BASE_WIDTH = 640.0;
    double BASE_HEIGHT = 480.0;
    
    // サイズの取得
    int width = srcImage.size.width;
    int height = srcImage.size.height;
    
    // 縦横の大きい方をBASE_WIDTHにする
    double destW;
    double destH;
    
    if (width > height) {
        // 横
        destW = BASE_WIDTH;
        destH = (BASE_WIDTH / width) * height;
    } else if (width < height) {
        // 縦
        destW = (BASE_WIDTH / height) * width;;
        destH = BASE_WIDTH;
    } else {
        // 正方形
        destW = BASE_WIDTH;
        destH = BASE_HEIGHT;
    }
    
    UIImage *destImage;  // リサイズ後UIImage
    
    // リサイズする
    UIGraphicsBeginImageContext(CGSizeMake(destW, destH));
    [srcImage drawInRect:CGRectMake(0, 0, destW, destH)];
    destImage = UIGraphicsGetImageFromCurrentImageContext();
    UIGraphicsEndImageContext();
    
    CGSize destImageSize = destImage.size;
    
    NSLog(@"リサイズ後 画像サイズ:横 = %f x 縦 = %f", destImageSize.width, destImageSize.height);

    return destImage;
}

カテゴリー: iOS

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

CAPTCHA