UIImage得一个Category, Resizes(调整尺寸)

转自:http://www.cocoachina.com/bbs/read.php?tid-3158.html

写在最前边: Category得用法很方便, 举例来说: 新建一个Class文件, 文件名随意需要建立UIImage得Category就按照如下格式添加函数,括号内名称随意, 这种格式, 编译器即认为是一个Category
@interface UIImage (xxx)
@end

@implementation UIImage (xxx)
@end

完整代码如下, 用法见附件Sample Code:

01 @interface UIImage (Category)
02 /*
03 * Resizes and/or rotates an image.
04 */
05 - (UIImage*)transformWidth:(CGFloat)width
06                                   height:(CGFloat)height;
07 @end
08   
09 @implementation UIImage (Category)
10   
11 - (UIImage*)transformWidth:(CGFloat)width
12                     height:(CGFloat)height {
13   
14     CGFloat destW = width;
15     CGFloat destH = height;
16     CGFloat sourceW = width;
17     CGFloat sourceH = height;
18   
19     CGImageRef imageRef = self.CGImage;
20     CGContextRef bitmap = CGBitmapContextCreate(NULL,
21                                                 destW,
22                                                 destH,
23                                                 CGImageGetBitsPerComponent(imageRef),
24                                                 4*destW,
25                                                 CGImageGetColorSpace(imageRef),
26                                                 (kCGBitmapByteOrder32Little | kCGImageAlphaPremultipliedFirst));
27   
28     CGContextDrawImage(bitmap, CGRectMake(0, 0, sourceW, sourceH), imageRef);
29   
30     CGImageRef ref = CGBitmapContextCreateImage(bitmap);
31     UIImage *result = [UIImage imageWithCGImage:ref];
32     CGContextRelease(bitmap);
33     CGImageRelease(ref);
34   
35     return result;
36 }
37 @end
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值