IOS开发之——图片裁剪(82)
一 概述
本文介绍对图片进行裁剪操作:
- 裁剪图片成圆形图片
- 裁剪图片成带边框的原型图片
二 原理
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)相关推荐
- iOS之实现图片裁剪的几种方式
iOS之实现图片裁剪的几种方式 1.使用CGImageCreateWithImageInRect函数 CGImageCreateWithImageInRect函数是属于Core Graphics Fr ...
- iOS开发之头像裁剪
iOS开发之头像裁剪 // // CrapPhotoViewController.h // StupidFM // // Created by 寒竹子 on 15/6/18. // Copy ...
- ios 将矩形图片裁剪成圆形图片
在ios中将一个正方形的图片裁剪成圆形的图片是一件非常容易的事情, 直接设置 imageView.layer.cornerRadius 这个属性, 再设置 imageView.clipsToBound ...
- iOS开发中图片的一些处理操作(背景色,透明度,合成,大小)
之前写过一篇有关更换图片背景色的文章,今天遇到一块儿了,就干脆重新整理一下了.iOS开发中常用的对图片的处理操作: 一.更换图片的背景颜色 /** * 改变图片背景为白色 * * @param ima ...
- 【ios开发】图片拉伸
最近在做一个项目 其中要自己定制一个View 如图: 但是美工给了我的图片尺寸却是不一样的. 分别是599*80 26*61 于是就成了这样的效果. 很明显的发现取消四周不对劲. 于是我就去找美工姐 ...
- ios开发 微博图片缩放处理错误_H5响应式开发必会之Viewport(视窗)详解
什么是 Viewport?viewport 是用户网页的可视区域. viewport 翻译为中文可以叫做"视区". 手机浏览器是把页面放在一个虚拟的"窗口"(v ...
- iOS开发之图片分辨率与像素对齐
像素对齐的概念 在iOS中,有一个概念叫做像素对齐,如果像素不对齐,那么在GPU渲染时,需要进行插值计算,这个插值计算的过程会有性能损耗. 在模拟器上,有一个选项可以把像素不对齐的部分显示出来.  ...
- iOS开发-简单图片背景替换 实现抠图效果
之前好奇, 想实现这样的功能 -----> iOS图像处理-(jpg去除白色背景) 把一张图片(.jpg)的白色背景抠掉,转成.png 格式的有alpha通道的透明图. 原图黑白分明, 像这 ...
- iOS开发-简单图片背景替换(实现抠图效果)
之前好奇, 想实现这样的功能 -----> iOS图像处理-(jpg去除白色背景) 把一张图片(.jpg)的白色背景抠掉,转成.png 格式的有alpha通道的透明图. 原图黑白分明, 像这 ...
- IOS开发之——图片的内存优化
一 概述 创建Image的方式有两种: UIImage *image=[UIImage imageNamed:imageName]-内存由系统管理 UIImage *image=[UIImage im ...
最新文章
- 人工智能专业就业前景如何?
- openMP 并行编程 基础
- RocketMQ:消息ACK机制源码解析
- css元素可拖动,使用css-transform实现更好的拖拽功能
- Reporting Services 错误案例一则
- 【Vegas原创】ASP 0131 不允许父路径的解决
- 设置访问权限_【新思考教学者思】李世松:不要对经典设置访问权限
- Ubuntu下Memcache的安装与基本使用
- 爱情才是程序员的第一生产力
- python3爬取青年文摘999篇精选文章
- 淘淘商城项目技术点-8:vsftpd
- Treejs+EasyUI+Vuejs实操
- 二分查找在java中的实现
- H5+springboot(集成ffmpeg)实现前端视频录制以及webm格式转mp4
- 计算机考研哪个专业好就业,计算机专业考研选择哪个方向比较好就业?
- Table 类 - Google Guava
- python 通达信公式函数,481009_易基策略二号
- 建设银行检测到设备已被Root的判断
- jsWeb Apis 05
- URL 转为QR code(二维码)
热门文章
- 【Arduino】IIC 1602液晶屏显示
- 安卓游戏《罗马帝国》游戏心得
- 实验验证二项分布(Binomial)公式正确性
- 计算机硬件基础英语ppt,计算机英语 第一单元 计算机硬件 computer hardware.ppt
- Http格林尼治时间和毫秒的相互转化EEE, dd MMM y HH:mm:ss 'GMT'
- 阿里云 ADAM 迁移工具测试问题记录
- 下厨房(istringstream的使用)----网易2017内推笔试编程题合集
- SSLv3 协议漏洞‘POODLE’修复与相关概念
- uniapp中使用阿里云视频点播功能
- WebStorm-2021.1.1下载及安装