画像の回転に完全に機能するメソッドの実装があります。唯一の問題は、コンソールでメモリ警告が発生し、メモリ不足のためにアプリがクラッシュすることです。
同じ結果を達成するが、メモリの問題やアプリのクラッシュを引き起こさない新しい方法を見つける必要があります。
現在使用しているメソッドの実装は次のとおりです。
-(UIImage*) rotate:(UIImage*) src andOrientation:(UIImageOrientation)orientation
{
UIGraphicsBeginImageContext(src.size);
CGContextRef context=(UIGraphicsGetCurrentContext());
if (orientation == UIImageOrientationRight) {
CGContextRotateCTM (context, 90/180*M_PI) ;
} else if (orientation == UIImageOrientationLeft) {
CGContextRotateCTM (context, -90/180*M_PI);
} else if (orientation == UIImageOrientationDown) {
// NOTHING
} else if (orientation == UIImageOrientationUp) {
CGContextRotateCTM (context, 90/180*M_PI);
}
[src drawAtPoint:CGPointMake(0, 0)];
UIImage *img=UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
return img;
}
メモリの問題の 90% を引き起こす特定のステートメントは次のとおりです。
[src drawAtPoint:CGPointMake(0, 0)];
したがって、解決策はそのステートメントの代わりになるか、まったく新しいメソッドの実装になる可能性があります。
助けてくれてありがとう。