본문 바로가기

프로그래밍/iOS

[iOS]  UIImage Resize

최근 하는 프로젝트에서는 이전 인식기 보다 높은 화질의 사진이 필요하다.


따라서 1920*1080사이즈를 쓰지 않고 PhotoSize를 쓰는데

이 또한 800만 화소로 이미지 처리시간이 너무 긴 단점이 있다.


이 이미지 처리 시간을 줄이기 위해 Resize함수를 사용한다.


- (UIImage*)resizeImage : (UIImage*) image

{

    float actualHeight = image.size.height;

    float actualWidth = image.size.width;

float minWidth = 1920;

float minHeight=1080;

float resizedWidth = 2600.0;

float resizedHeight = 1950.0;   

    if (actualHeight*actualWidth < (minWidth* minHeight))

    {

        return image;

    }

    float imgRatio = actualWidth/actualHeight;

    float maxRatio = resizedWidth/resizedHeight;

    

        if(imgRatio < maxRatio){

            imgRatio = resizedHeight / actualHeight;

            actualWidth = imgRatio * actualWidth;

            actualHeight = resizedHeight;

        }

        else{

            imgRatio = resizedWidth / actualWidth;

            actualHeight = imgRatio * actualHeight;

            actualWidth = resizedWidth;

        }

    CGRect rect = CGRectMake(0.0, 0.0, actualWidth, actualHeight);

    UIGraphicsBeginImageContext(rect.size);

    [image drawInRect:rect];

    UIImage *img = UIGraphicsGetImageFromCurrentImageContext();

    UIGraphicsEndImageContext();

    return img;

 

}