[转]给UIImage添加圆角(圆角矩形),也可用于CCSprite
生活随笔
收集整理的這篇文章主要介紹了
[转]给UIImage添加圆角(圆角矩形),也可用于CCSprite
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
給UIImage添加圓角,也可用于CCSprite//給圖片添加圓角顯示
- (UIImage *) roundCorners: (UIImage*) img
{int w = img.size.width;int h = img.size.height;CGColorSpaceRef colorSpace = CGColorSpaceCreateDeviceRGB();CGContextRef context = CGBitmapContextCreate(NULL, w, h, 8, 4 * w, colorSpace, kCGImageAlphaPremultipliedFirst);CGContextBeginPath(context);CGRect rect = CGRectMake(0, 0, img.size.width, img.size.height);addRoundedRectToPath(context, rect, 10, 10);CGContextClosePath(context);CGContextClip(context);CGContextDrawImage(context, CGRectMake(0, 0, w, h), img.CGImage);CGImageRef imageMasked = CGBitmapContextCreateImage(context);CGContextRelease(context);CGColorSpaceRelease(colorSpace);[img release];return [UIImage imageWithCGImage:imageMasked];
}//這是被調(diào)用的靜態(tài)方法
static void addRoundedRectToPath(CGContextRef context, CGRect rect,float ovalWidth,float ovalHeight)
{float fw, fh;if (ovalWidth == 0 || ovalHeight == 0) {CGContextAddRect(context, rect);return;}CGContextSaveGState(context);CGContextTranslateCTM (context, CGRectGetMinX(rect),CGRectGetMinY(rect));CGContextScaleCTM (context, ovalWidth, ovalHeight);fw = CGRectGetWidth (rect) / ovalWidth;fh = CGRectGetHeight (rect) / ovalHeight;CGContextMoveToPoint(context, fw, fh/2);CGContextAddArcToPoint(context, fw, fh, fw/2, fh, 1);CGContextAddArcToPoint(context, 0, fh, 0, fh/2, 1);CGContextAddArcToPoint(context, 0, 0, fw/2, 0, 1);CGContextAddArcToPoint(context, fw, 0, fw, fh/2, 1);CGContextClosePath(context);CGContextRestoreGState(context);
}
經(jīng)測驗,可以正常使用。
經(jīng)測驗,可以正常使用。
?
轉(zhuǎn)載于:https://www.cnblogs.com/ygm900/archive/2013/05/18/3085480.html
總結(jié)
以上是生活随笔為你收集整理的[转]给UIImage添加圆角(圆角矩形),也可用于CCSprite的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Effective C++ 读书笔记之P
- 下一篇: 再读三命通会(9)