본문 바로가기

iPhone dev.

UIImage 방향 바꾸기

사진을 찍고 앨범에 저장한 뒤에 그 사진을 어딘가로 전송하는 것엔 문제가 없지만, 찍은 후 저장하지 않고 바로 NSData 형식으로 서버에 전송하면 사진이 찍힌 orientation에 따라 방향이 바뀌어 전송된다.

이를 해결하기 위해서는 UIImage로 저장된 그림의 .imageOrientation에 따라 그림을 돌려주면 된다:


// 방향 바꾸기

        CGAffineTransform transform = CGAffineTransformIdentity;

        switch (takenImage.imageOrientation) {        //    UIImage *takenImage는 해당되는 그림

            case UIImageOrientationDown:

            case UIImageOrientationDownMirrored:

                transform = CGAffineTransformTranslate(transform, takenImage.size.width, takenImage.size.height);

                transform = CGAffineTransformRotate(transform, M_PI);

                break;

                

            case UIImageOrientationLeft:

            case UIImageOrientationLeftMirrored:

                transform = CGAffineTransformTranslate(transform, takenImage.size.width, 0);

                transform = CGAffineTransformRotate(transform, M_PI_2);

                break;

                

            case UIImageOrientationRight:

            case UIImageOrientationRightMirrored:

                transform = CGAffineTransformTranslate(transform, 0, takenImage.size.height);

                transform = CGAffineTransformRotate(transform, -M_PI_2);

                break;

            case UIImageOrientationUp:

            case UIImageOrientationUpMirrored:

                break;