UIImage的扩展方法——裁剪图片和等比列缩放图片
来源:互联网 发布:巴黎高等师范学院 知乎 编辑:程序博客网 时间:2024/05/21 11:02
[原文转自:http://xbiii3s.iteye.com/blog/1188008]
首先创建一个UIImage类别,如下:
@interface UIImage(UIImageScale)
-(UIImage*)getSubImage:(CGRect)rect;
-(UIImage*)scaleToSize:(CGSize)size;
@end
@implementation UIImage(UIImageScale)
//截取部分图像
-(UIImage*)getSubImage:(CGRect)rect
{
CGImageRef subImageRef = CGImageCreateWithImageInRect(self.CGImage, rect);
CGRect smallBounds = CGRectMake(0, 0, CGImageGetWidth(subImageRef), CGImageGetHeight(subImageRef));
UIGraphicsBeginImageContext(smallBounds.size);
CGContextRef context = UIGraphicsGetCurrentContext();
CGContextDrawImage(context, smallBounds, subImageRef);
UIImage* smallImage = [UIImage imageWithCGImage:subImageRef];
UIGraphicsEndImageContext();
return smallImage;
}
//等比例缩放
-(UIImage*)scaleToSize:(CGSize)size
{
CGFloat width = CGImageGetWidth(self.CGImage);
CGFloat height = CGImageGetHeight(self.CGImage);
float verticalRadio = size.height*1.0/height;
float horizontalRadio = size.width*1.0/width;
float radio = 1;
if(verticalRadio>1 && horizontalRadio>1)
{
radio = verticalRadio > horizontalRadio ? horizontalRadio : verticalRadio;
}
else
{
radio = verticalRadio < horizontalRadio ? verticalRadio : horizontalRadio;
}
width = width*radio;
height = height*radio;
int xPos = (size.width - width)/2;
int yPos = (size.height-height)/2;
// 创建一个bitmap的context
// 并把它设置成为当前正在使用的context
UIGraphicsBeginImageContext(size);
// 绘制改变大小的图片
[self drawInRect:CGRectMake(xPos, yPos, width, height)];
// 从当前context中创建一个改变大小后的图片
UIImage* scaledImage = UIGraphicsGetImageFromCurrentImageContext();
// 使当前的context出堆栈
UIGraphicsEndImageContext();
// 返回新的改变大小后的图片
return scaledImage;
}
@end
- UIImage的扩展方法——裁剪图片和等比列缩放图片
- UIImage的扩展方法——裁剪图片和等比列缩放图片-翻转-圆形等
- UIImage的扩展方法——裁剪图片和等比列缩放图片
- UIImage 裁剪图片和等比列缩放图片
- iOS开发笔记之二十七——UIImage图片的移动、旋转、缩放和裁剪
- 网络图片 和本地图片 显示 ——等比缩放
- 实现图片的等比裁剪
- Xamarion.IOS UIImage图片的裁剪缩放等
- 关于UIImage图片类别-裁剪图片和等比例缩放图片实现
- 图片上传裁剪&等比缩放处理(html5+Canvas)
- 图片上传前预处理,等比缩放、裁剪 (html5 + canvas)
- Html5新特性 canvas画板画直线和等比缩放居中裁剪图片
- background-size布局和移动端图片的等比缩放
- js等比缩放图片
- iphone图片等比缩放
- js图片等比缩放
- JavaScript图片等比缩放
- iphone图片等比缩放
- SIM卡体系结构 本文来自:我爱研发网(52RD.com) - R&D大本营 详细出处:http://www.52rd.com/bbs/Archive_Thread.asp?SID=46239&TI
- MyEclipse 8.6手动安装svn (测试可用)
- linux中shell变量$#,$@,$0,$1,$2的含义解释
- 格式化I/O
- android下载源码
- UIImage的扩展方法——裁剪图片和等比列缩放图片
- Delphi 系统托盘 TrayIcon(1)
- C#调用VC的DLL的接口函数参数类型转换一览表
- ASM【转】
- 解决animation循环中停止时卡顿一下的问题
- 将三角形类用一个项目多个文件”的方式实现
- LeetCode: First Missing Positive
- big endian vs little endian
- php不常用的函数