カメラロールの画像をリサイズしようとするとエラーが出るので…
長辺の長さを指定して画像をリサイズする方法です。
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 に登録して復習すれば、さすがに身に付く…かな?