UIImage: Resize, then Crop

后端 未结 16 2498
夕颜
夕颜 2020-11-22 11:51

I\'ve been bashing my face into this one for literally days now and even though I feel constantly that I am right on the edge of revelation, I simply cannot achieve my goal.

16条回答
  •  暖寄归人
    2020-11-22 12:09

    + (UIImage *)scaleImage:(UIImage *)image toSize:(CGSize)targetSize {
        //If scaleFactor is not touched, no scaling will occur      
        CGFloat scaleFactor = 1.0;
    
        //Deciding which factor to use to scale the image (factor = targetSize / imageSize)
        if (image.size.width > targetSize.width || image.size.height > targetSize.height)
            if (!((scaleFactor = (targetSize.width / image.size.width)) > (targetSize.height / image.size.height))) //scale to fit width, or
                scaleFactor = targetSize.height / image.size.height; // scale to fit heigth.
    
        UIGraphicsBeginImageContext(targetSize); 
    
        //Creating the rect where the scaled image is drawn in
        CGRect rect = CGRectMake((targetSize.width - image.size.width * scaleFactor) / 2,
                                 (targetSize.height -  image.size.height * scaleFactor) / 2,
                                 image.size.width * scaleFactor, image.size.height * scaleFactor);
    
        //Draw the image into the rect
        [image drawInRect:rect];
    
        //Saving the image, ending image context
        UIImage *scaledImage = UIGraphicsGetImageFromCurrentImageContext();
        UIGraphicsEndImageContext();
    
        return scaledImage;
    }
    

    I propose this one. Isn't she a beauty? ;)

提交回复
热议问题