把图片切成圆角代码

原创 2011年01月16日 23:24:00

把图片切成圆角代码   


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);  // Start at lower right corner
    CGContextAddArcToPoint(context, fw, fh, fw/2, fh, 1);  // Top right corner
    CGContextAddArcToPoint(context, 0, fh, 0, fh/2, 1); // Top left corner
    CGContextAddArcToPoint(context, 0, 0, fw/2, 0, 1); // Lower left corner
    CGContextAddArcToPoint(context, fw, 0, fw, fh/2, 1); // Back to lower right
    
    CGContextClosePath(context);
    CGContextRestoreGState(context);
}


+ (id) createRoundedRectImage:(UIImage*)image size:(CGSize)size
{
    // the size of CGContextRef
    int w = size.width;
    int h = size.height;
    
    UIImage *img = image;
    CGColorSpaceRef colorSpace = CGColorSpaceCreateDeviceRGB();
    CGContextRef context = CGBitmapContextCreate(NULL, w, h, 8, 4 * w, colorSpace, kCGImageAlphaPremultipliedFirst);
    CGRect rect = CGRectMake(0, 0, w, h);
    
    CGContextBeginPath(context);
    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);
    return [UIImage imageWithCGImage:imageMasked];
}

直接调用createRoundedRectImage....
返回圆角图片
圆角大小自行修改CGContextAddArcToPoint....

相关文章推荐

用Photoshop把图片切成圆角

使用圆角矩形工具,首选选择矩形工具,点击鼠标不松开,矩形工具区就回弹出多个选项,这个时候你就可以选择到圆角矩形工具了。     这里要注意一下矩形工具默认的是形状图层,一定要选择路径,才...
  • wbw1985
  • wbw1985
  • 2012年10月17日 20:44
  • 6941

生成阴影,根据image主色来设置阴影,切成圆角之类的阴影仍然存在

仿照一个GitHub安卓端效果做的,可以根据图片的主题色显示不同的阴影 项目下载地址: https://github.com/gofey/MagicShadowMaker 使用...

html5 css3 将长方形图片 切成 直角梯形显示

效果图如上 skew test html,body,div,img{ margin:0; padding:0; } img{ border:0 none; } .pic1{ w...

前端实战(一)-----用ps把PSD切成HTML能用的图片

本章实际操作使用ps来进行切图,分成四部分来讲解: 1.切图的常规步骤 2.如何只保留某一部分 3.删除切片 4去掉默认切片线 切图的常规步骤 我现在有一张登录框的psd,...

unity3d将一张图片切成多张图片

unity3d将一张图片切成多张图片

Imageloader四种图片显示(圆形,淡入,圆角,修饰)代码分析

ImageLoader是款非常好的开源图片加载控件,android中加载图片是一个非常头疼的事,图片列表卡,内存溢出等,项目中自从用了ImageLoder之后这种问题省心多了,尽管给链接给控件图片就加...
  • whr0227
  • whr0227
  • 2016年08月19日 17:02
  • 927

Android图片缩放、圆角处理以及倒影特效代码

public class ImageUtil { //缩放图片 public static Bitmap zoomBitmap(Bitmap bitmap, int w, ...
  • life02
  • life02
  • 2012年05月29日 09:38
  • 675

Android图片加载神器之Fresco-Java代码实现圆形圆角效果

转载自:http://blog.csdn.net/y1scp/article/details/49734429 RoundingParams 百学须先立志—学前须知: 之前我们学会了一...

Android BitmapShader 实战 实现圆形、圆角图片——代码分析

下文为阅读鸿洋大神的博文 Android BitmapShader 实战 实现圆形、圆角图片后,自己的理解。 博文地址:http://blog.csdn.net/lmj623565791/art...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:把图片切成圆角代码
举报原因:
原因补充:

(最多只允许输入30个字)