IOS圖片壓縮的類

jopen 11年前發布 | 17K 次閱讀 IOS iOS開發 移動開發

//

// UIImage+UIImageExt.m

// MyHomeBuy

//

// Created by first on 13-9-13.

// Copyright (c) 2013年 MyCompanyName. All rights reserved.

//

import "UIImage+UIImageExt.h"

@implementation UIImage (UIImageExt)

  • (UIImage*)imageByScalingAndCroppingForSize:(CGSize)targetSize;

{

UIImage *sourceImage = self;

UIImage *newImage = nil;

CGSize imageSize = sourceImage.size;

CGFloat width = imageSize.width;

CGFloat height = imageSize.height;

CGFloat targetWidth = targetSize.width;

CGFloat targetHeight = targetSize.height;

CGFloat scaleFactor = 0.0;

CGFloat scaledWidth = targetWidth;

CGFloat scaledHeight = targetHeight;

CGPoint thumbnailPoint = CGPointMake(0.0,0.0);

if (CGSizeEqualToSize(imageSize, targetSize) == NO)

{

    CGFloat widthFactor = targetWidth / width;

    CGFloat heightFactor = targetHeight / height;

    if (widthFactor > heightFactor)

        scaleFactor = widthFactor; // scale to fit height

    else

        scaleFactor = heightFactor; // scale to fit width

    scaledWidth= width * scaleFactor;

    scaledHeight = height * scaleFactor;

    // center the image

    if (widthFactor > heightFactor)

    {

        thumbnailPoint.y = (targetHeight - scaledHeight) * 0.5;

    }

    else if (widthFactor < heightFactor)

    {

        thumbnailPoint.x = (targetWidth - scaledWidth) * 0.5;

    }

}

UIGraphicsBeginImageContext(targetSize); // this will crop

CGRect thumbnailRect = CGRectZero;

thumbnailRect.origin = thumbnailPoint;

thumbnailRect.size.width= scaledWidth;

thumbnailRect.size.height = scaledHeight;

[sourceImage drawInRect:thumbnailRect];

newImage = UIGraphicsGetImageFromCurrentImageContext();

//if(newImage == nil)

//NSLog(@"could not scale image");

//pop the context to get back to the default

UIGraphicsEndImageContext();

return newImage;

}

@end

//

// UIImage+UIImageExt.h

// MyHomeBuy

//

// Created by first on 13-9-13.

// Copyright (c) 2013年 MyCompanyName. All rights reserved.

//

import <UIKit/UIKit.h>

@interface UIImage (UIImageExt)

  • (UIImage*)imageByScalingAndCroppingForSize:(CGSize)targetSize;

@end</pre>

 本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!