CGImageCreateWithImageInRect
画像の向きを正しく処理しません。巨大な switch/case ステートメントを含む奇妙で素晴らしいクロッピング テクニックがネット上にたくさんあります (Ayaz の回答のリンクを参照してください) UIImage
。核心的な詳細があなたのために世話をされます。
次の方法は、私が遭遇したすべてのケースで取得できるほど簡単で機能します。
- (UIImage *)imageByCropping:(UIImage *)image toRect:(CGRect)rect
{
if (UIGraphicsBeginImageContextWithOptions) {
UIGraphicsBeginImageContextWithOptions(rect.size,
/* opaque */ NO,
/* scaling factor */ 0.0);
} else {
UIGraphicsBeginImageContext(rect.size);
}
// stick to methods on UIImage so that orientation etc. are automatically
// dealt with for us
[image drawAtPoint:CGPointMake(-rect.origin.x, -rect.origin.y)];
UIImage *result = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
return result;
}
opaque
透過性が必要ない場合は、引数の値を変更できます。