(UIImage的)resizeImageToSize:(CGSize)的targetSize图像:(UIImage的)captureImage { 的UIImage * sourceImage = captureImage; 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);
如果(CGSizeEqualToSize(IMAGESIZE,的targetSize)==否){
CGFloat widthFactor = targetWidth/width;
CGFloat heightFactor = targetHeight/height;
if (widthFactor < heightFactor)
scaleFactor = widthFactor;
else
scaleFactor = heightFactor;
scaledWidth = width * scaleFactor;
scaledHeight = height * scaleFactor;
// make image center aligned
if (widthFactor < heightFactor)
{
thumbnailPoint.y = (targetHeight - scaledHeight) * 0.5;
}
else if (widthFactor > heightFactor)
{
thumbnailPoint.x = (targetWidth - scaledWidth) * 0.5;
}
}
UIGraphicsBeginImageContext(的targetSize); CGRect thumbnailRect = CGRectZero; thumbnailRect.origin = thumbnailPoint; thumbnailRect.size.width = scaledWidth; thumbnailRect.size。height = scaledHeight;
[sourceImage drawInRect:thumbnailRect]; newImage = UIGraphicsGetImageFromCurrentImageContext(); UIGraphicsEndImageContext();
if(newImage == nil) CCLogs(@“could not scale image”);
return newImage;
谢谢shiju86所以是缩放/压缩是问题,现在是100倍倍的速度,我跟着这个链接http://stackoverflow.com/questions/17018617/how-to-resize- an-image-in-ios – abcf
嘿,太棒了! :) –