IOS中测量和调整UIImage到指定CGSize
2012-06-21 16:38
453 查看
+(UIImage*)imageByScalingAndCroppingForSize:(UIImage*)selectedImage withTargetSize:(CGSize)size { // if (selectedImage.size.width > selectedImage.size.height) // { // float height = (size.height * selectedImage.size.height) / selectedImage.size.width ; // size = CGSizeMake(size.width, height); // } // else // { // float width = (size.height * selectedImage.size.width) / selectedImage.size.height ; // size = CGSizeMake(width, size.width); // } // UIGraphicsBeginImageContext(size); // [selectedImage drawInRect:CGRectMake(0, 0, size.width, size.height) blendMode:kCGBlendModePlusDarker alpha:1]; // // UIImage *scaledImage = UIGraphicsGetImageFromCurrentImageContext(); // UIGraphicsEndImageContext(); // return scaledImage; UIImage *newImage = nil; CGSize imageSize = selectedImage.size; CGFloat width = imageSize.width; CGFloat height = imageSize.height; CGFloat targetWidth = size.width; CGFloat targetHeight = size.height; CGFloat scaleFactor = 0.0; CGFloat scaledWidth = targetWidth; CGFloat scaledHeight = targetHeight; CGPoint thumbnailPoint = CGPointMake(0.0,0.0); if (CGSizeEqualToSize(imageSize, size) == 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(size); // this will crop CGRect thumbnailRect = CGRectZero; thumbnailRect.origin = thumbnailPoint; thumbnailRect.size.width = scaledWidth; thumbnailRect.size.height = scaledHeight; [selectedImage drawInRect:thumbnailRect]; newImage = UIGraphicsGetImageFromCurrentImageContext(); if(newImage == nil) // NSLog(@"could not scale image"); //pop the context to get back to the default UIGraphicsEndImageContext(); return newImage; }
相关文章推荐
- 【iOS开发笔记24/50】调整UIImage的大小
- ios图片缩放,根据UIImageView Frame的尺寸,自动调整UIImage缩放,保证图片显示不变形
- UIImage调整到指定大小尺寸
- ios uiimage图片缩放到指定大小尺寸
- iOS UIImageView 大小调整
- iOS开发>学无止境 - 截取UIImage指定大小区域
- iOS中 UIImage根据屏宽调整size的实例代码
- iOS 指定压缩大小(UIImage扩张)--Swift/OC版
- IOS常用第三方框架 --- UIImage+Resize 调整图片大小
- iOS UIImage根据屏宽调整size
- iOS 在TableViewCell中的UIImageView调整大小
- iOS: 聊聊 Designated Initializer(指定初始化函数)
- UIView 转 UIImage IOS
- ios开发 数组排序——根据数组内字典的指定属性排序
- iOS系统GCD学习(8):Dispatch Queue挂起恢复和目标指定
- IOS将UIView转化为UIImage
- IOS UIImage类介绍
- iOS开发,用UIColor创建UIImage
- IOS UI学习教程之使用UIImageView控件制作动画
- Ios中,在UIImage中写文字的一点心得。