UIImage を長辺サイズ指定でリサイズする

投稿者: | 2013/02/05

カメラロールの画像をリサイズしようとするとエラーが出るので…

長辺の長さを指定して画像をリサイズする方法です。
CGImageGetBitsPerComponent を使うと、カメラロールの画像をリサイズする際だけ、以下のエラーが出るので、こちらの方法に変更しました。

 

CGBitmapContextCreate: でエラーが出る。

CGBitmapContextCreate: invalid data bytes/row:

 

こちらの方法だとエラーが出ない。

# ViewController.m

- (UIImage*)resizeAspectFit:(UIImage*)sourceImage longSide:(NSInteger)longSide {
    
    float ow = [sourceImage size].width;
    float oh = [sourceImage size].height;
    
    float rw = ow;
    float rh = oh;
    
    if ( ow > oh ) {  // 幅の方が長い
        rw = longSide;
        rh = oh * (longSide / ow);
    }
    else {            // 高さの方が長い
        rh = longSide;
        rw = ow * (longSide / oh);
    }
    
    // ここでサイズ変更
    CGSize rSize = CGSizeMake(rw, rh);
    UIGraphicsBeginImageContext(rSize);
    [sourceImage drawInRect:CGRectMake(0, 0, rSize.width, rSize.height)];
    UIImage* resizedImage = UIGraphicsGetImageFromCurrentImageContext();
    UIGraphicsEndImageContext();
    
    return resizedImage;
}

 

AnkiMobile と MOLESKINE の両方に記録

正直面倒くさいのでAnkiMobile に一本化したいところですが、MOLESKINE も早いところ使いきってThe HOBBIT Edition を使い始めたいので、当面は両方に記録です。

まあ、MOLESKINE に書いて、ブログに書いて、AnkiMobile に登録して復習すれば、さすがに身に付く…かな?

 



 

コメントを残す

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

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください