zoukankan      html  css  js  c++  java
  • iOS圆形图片裁剪,原型图片外面加一个圆环

    /**

     *  在圆形外面加一个圆环

     */

    - (void)yuanHuan{

        //0.加载图片

        UIImage *image = [UIImage imageNamed:@"AppIcon1024"];

        //图片的宽度

        CGFloat imageWH = image.size.width;

        //设置圆环的宽度

        CGFloat border = 1;

        //大圆形的宽度高度

        CGFloat ovalWH = imageWH + 2 * border;

        

        //1、开启位图上下文

        UIGraphicsBeginImageContextWithOptions(CGSizeMake(ovalWH, ovalWH), NO, 0);

        

        //2、画大圆

        UIBezierPath *path = [UIBezierPath bezierPathWithOvalInRect:CGRectMake(0, 0, ovalWH, ovalWH)];

        [[UIColor redColor] set];

        [path fill];

        

        //3、设置裁剪区(小圆)

        UIBezierPath *clipPath = [UIBezierPath bezierPathWithOvalInRect:CGRectMake(border, border, imageWH, imageWH)];

        

        [clipPath addClip];

        

        //4、绘制图片

        [image drawAtPoint:CGPointMake(border, border)];

        

        //5、获取图片

        UIImage *clipImage = UIGraphicsGetImageFromCurrentImageContext();

        

        //6、关闭上下文

        UIGraphicsEndImageContext();

        

        

        self.imageView.image = clipImage;

    }

     

     

     

    /**

     *  裁剪一个原型图片

     */

    - (void)yuan{

        //获取图片

        UIImage *image = [UIImage imageNamed:@"AppIcon1024"];

        //1.开启位图上下文,跟图片尺寸大小一样

        //NO:不透明  0:scale不缩放

        UIGraphicsBeginImageContextWithOptions(image.size, NO, 0);

        //2.设置图形裁剪区域,正切图片

        //2.1创建一个圆形路径

        UIBezierPath *path = [UIBezierPath bezierPathWithOvalInRect:CGRectMake(0, 0, image.size.width, image.size.width)];

        //2.2把路径设置裁剪区

        [path addClip];

        //3.绘制图片

        [image drawAtPoint:CGPointMake(0, 0)];

        //4.从上下文中获取图片

        UIImage *clipImage = UIGraphicsGetImageFromCurrentImageContext();

        //5.关闭上下文

        UIGraphicsEndImageContext();

        

        _imageView.image = clipImage;

        

    }

  • 相关阅读:
    【转】Geary's C
    ArcGIS中影像与影像,影像与点云之间的配准
    [转] EPSG CODE的含义
    地图投影
    【从翻译mos文章】oracle linux 和外部存储系统 关系
    找呀志_使用SQLiteDatabase增删改提供的搜索方法和事务
    [049] 微信公众平台视频公开课1说话-基础知识
    我看到西电通院考试——学生应该做的事情?
    使用 Eclipse 的 SVN 主要插件创建项目/支/标签
    【SSH三个框架】Hibernate第十篇基础:inverse属性具体解释
  • 原文地址:https://www.cnblogs.com/soulDn/p/5626314.html
Copyright © 2011-2022 走看看