一 概述

本文介绍对图片进行裁剪操作:

  • 裁剪图片成圆形图片
  • 裁剪图片成带边框的原型图片

二 原理

2.1 圆形图片的裁剪原理

  • 绘制旧图片
  • 依据就图片的尺寸,绘制圆,使得圆与图片正切(半径等于图片的宽度)
  • 裁剪后的图片就是圆形图片

2.2 带边框图片的裁剪原理

  • 绘制旧图片
  • 依次绘制2个圆,使得小圆与图片正切,大图等于小圆+圆环*2
  • 裁剪后的图片就是带边框的裁剪图片

三 裁剪图片成圆形图片

3.1 功能代码

- (void)viewDidLoad {[super viewDidLoad];// Do any additional setup after loading the view.//1.加载旧的图片UIImage *oldImage=[UIImage imageNamed:@"阿狸头像"];//2.开启上下文UIGraphicsBeginImageContextWithOptions(oldImage.size, NO, 0.0);//3.画圆:正切于上下文UIBezierPath *path=[UIBezierPath bezierPathWithOvalInRect:CGRectMake(0, 0, oldImage.size.width, oldImage.size.height)];//4.设置裁剪区域[path addClip];//5.画图片[oldImage drawAtPoint:CGPointZero];//6.生成一个新的图片UIImage *newImage=UIGraphicsGetImageFromCurrentImageContext();//7.关闭上下文UIGraphicsEndImageContext();_imageView.image=newImage;
}

3.2 圆形效果图

四 裁剪图片成带边框的原型图片

4.1 功能代码

- (void)viewDidLoad {[super viewDidLoad];// Do any additional setup after loading the view.//圆环的宽度CGFloat borderW=10;//加载旧的图片UIImage *oldImage=[UIImage imageNamed:@"阿狸头像"];//新的图片尺寸CGFloat imageW=oldImage.size.width+2*borderW;CGFloat imageH=oldImage.size.height+2*borderW;//设置新的图片尺寸CGFloat circleW=imageW>imageH?imageH:imageW;//开启上下文UIGraphicsBeginImageContextWithOptions(CGSizeMake(circleW, circleW), NO, 0.0);//画大圆UIBezierPath *path=[UIBezierPath bezierPathWithOvalInRect:CGRectMake(0, 0, circleW, circleW)];//获取上下文CGContextRef ctx=UIGraphicsGetCurrentContext();CGContextAddPath(ctx, path.CGPath);//渲染CGContextFillPath(ctx);CGRect clipR=CGRectMake(borderW, borderW, oldImage.size.width, oldImage.size.height);//画圆:正切于旧图片的圆UIBezierPath *clipPath=[UIBezierPath bezierPathWithOvalInRect:clipR];//设置裁剪区域[clipPath addClip];//画图片[oldImage drawAtPoint:CGPointMake(borderW, borderW)];//获取新的图片UIImage *newImage=UIGraphicsGetImageFromCurrentImageContext();//关闭上下文UIGraphicsEndImageContext();_imageView.image=newImage;
}

4.2 圆环效果图

IOS开发之——图片裁剪(82)相关推荐

  1. iOS之实现图片裁剪的几种方式

    iOS之实现图片裁剪的几种方式 1.使用CGImageCreateWithImageInRect函数 CGImageCreateWithImageInRect函数是属于Core Graphics Fr ...

  2. iOS开发之头像裁剪

    iOS开发之头像裁剪  // //  CrapPhotoViewController.h //  StupidFM // //  Created by 寒竹子 on 15/6/18. //  Copy ...

  3. ios 将矩形图片裁剪成圆形图片

    在ios中将一个正方形的图片裁剪成圆形的图片是一件非常容易的事情, 直接设置 imageView.layer.cornerRadius 这个属性, 再设置 imageView.clipsToBound ...

  4. iOS开发中图片的一些处理操作(背景色,透明度,合成,大小)

    之前写过一篇有关更换图片背景色的文章,今天遇到一块儿了,就干脆重新整理一下了.iOS开发中常用的对图片的处理操作: 一.更换图片的背景颜色 /** * 改变图片背景为白色 * * @param ima ...

  5. 【ios开发】图片拉伸

    最近在做一个项目 其中要自己定制一个View 如图: 但是美工给了我的图片尺寸却是不一样的. 分别是599*80  26*61 于是就成了这样的效果. 很明显的发现取消四周不对劲. 于是我就去找美工姐 ...

  6. ios开发 微博图片缩放处理错误_H5响应式开发必会之Viewport(视窗)详解

    什么是 Viewport?viewport 是用户网页的可视区域. viewport 翻译为中文可以叫做"视区". 手机浏览器是把页面放在一个虚拟的"窗口"(v ...

  7. iOS开发之图片分辨率与像素对齐

    像素对齐的概念 在iOS中,有一个概念叫做像素对齐,如果像素不对齐,那么在GPU渲染时,需要进行插值计算,这个插值计算的过程会有性能损耗. 在模拟器上,有一个选项可以把像素不对齐的部分显示出来.  ...

  8. iOS开发-简单图片背景替换 实现抠图效果

    之前好奇, 想实现这样的功能   -----> iOS图像处理-(jpg去除白色背景) 把一张图片(.jpg)的白色背景抠掉,转成.png 格式的有alpha通道的透明图. 原图黑白分明, 像这 ...

  9. iOS开发-简单图片背景替换(实现抠图效果)

    之前好奇, 想实现这样的功能   -----> iOS图像处理-(jpg去除白色背景) 把一张图片(.jpg)的白色背景抠掉,转成.png 格式的有alpha通道的透明图. 原图黑白分明, 像这 ...

  10. IOS开发之——图片的内存优化

    一 概述 创建Image的方式有两种: UIImage *image=[UIImage imageNamed:imageName]-内存由系统管理 UIImage *image=[UIImage im ...

最新文章

  1. 人工智能专业就业前景如何?
  2. openMP 并行编程 基础
  3. RocketMQ:消息ACK机制源码解析
  4. css元素可拖动,使用css-transform实现更好的拖拽功能
  5. Reporting Services 错误案例一则
  6. 【Vegas原创】ASP 0131 不允许父路径的解决
  7. 设置访问权限_【新思考教学者思】李世松:不要对经典设置访问权限
  8. Ubuntu下Memcache的安装与基本使用
  9. 爱情才是程序员的第一生产力
  10. python3爬取青年文摘999篇精选文章
  11. 淘淘商城项目技术点-8:vsftpd
  12. Treejs+EasyUI+Vuejs实操
  13. 二分查找在java中的实现
  14. H5+springboot(集成ffmpeg)实现前端视频录制以及webm格式转mp4
  15. 计算机考研哪个专业好就业,计算机专业考研选择哪个方向比较好就业?
  16. Table 类 - Google Guava
  17. python 通达信公式函数,481009_易基策略二号
  18. 建设银行检测到设备已被Root的判断
  19. jsWeb Apis 05
  20. URL 转为QR code(二维码)

热门文章

  1. 【Arduino】IIC 1602液晶屏显示
  2. 安卓游戏《罗马帝国》游戏心得
  3. 实验验证二项分布(Binomial)公式正确性
  4. 计算机硬件基础英语ppt,计算机英语 第一单元 计算机硬件 computer hardware.ppt
  5. Http格林尼治时间和毫秒的相互转化EEE, dd MMM y HH:mm:ss 'GMT'
  6. 阿里云 ADAM 迁移工具测试问题记录
  7. 下厨房(istringstream的使用)----网易2017内推笔试编程题合集
  8. SSLv3 协议漏洞‘POODLE’修复与相关概念
  9. uniapp中使用阿里云视频点播功能
  10. WebStorm-2021.1.1下载及安装