步骤:

0.加载原生图片;

1.获取上下文;

2.绘制原生图片;

3.给原生图片添加文字;

4.获取绘制后的图片;

5.关闭上下文

代码:

- (void)viewDidLoad {
    [super viewDidLoad];
    // Do any additional setup after loading the view, typically from a nib.
    
    //1.加载原生图片
    UIImage *image = [UIImage imageNamed:@"高圆圆"];
    
    //2.获取(开启)一个位图上下文,位图上下文与view无关联,所以不需要在drawRect方法中获取
    // size:位图上下文的尺寸(新图片的尺寸)
    // opaque: 不透明度 YES:不透明 NO:透明,通常我们一般都弄透明的上下文
    // scale:通常不需要缩放上下文,取值为0,表示不缩放
    UIGraphicsBeginImageContextWithOptions(image.size, NO, 0);
    
    //3.绘制原生图片
    [image drawAtPoint:CGPointZero];
    
    NSString *name = @"赵又廷loves高圆圆";
    
    //4.给原生图片添加文字,并且给文字添加相应的属性,例如颜色大小等
    NSMutableDictionary *dict = [NSMutableDictionary dictionary];
    dict[NSForegroundColorAttributeName] = [UIColor yellowColor];
    dict[NSFontAttributeName] = [UIFont systemFontOfSize:14];
    [name drawAtPoint:CGPointMake(120, 200) withAttributes: dict];
    
    //5.获取会之后的图片
    UIImage *waterMrk = UIGraphicsGetImageFromCurrentImageContext();
    
    self.imageView.image = waterMrk;
    
    //6.关闭上下文
    UIGraphicsEndImageContext();
}

原图:

绘制后水印如下图:

目标:裁剪一张圆形图片

步骤:

1. 加载要截取的图片

2. 设置圆形裁剪区域

2.1 创建圆形的路径

2.2 把路径设置为裁剪区域

3. 绘制图片

4. 从上下文中获取图片

5. 关闭上下文

代码:

- (void)viewDidLoad {
    [super viewDidLoad];
    
    self.view.backgroundColor = [UIColor colorWithWhite:0.819 alpha:1.000];
    //0.加载要截取的图片
    UIImage *image = [UIImage imageNamed:@"高圆圆"];
    //1.获取(开启)图形上下文(该图形上下文是一个正方形)
    UIGraphicsBeginImageContextWithOptions(CGSizeMake(image.size.width, image.size.width), NO, 0);
    
    //2.设置圆形裁剪区域,正切于图片
    //2.1创建圆形的路径
    UIBezierPath *path = [UIBezierPath bezierPathWithRoundedRect:CGRectMake(0, 0, image.size.width, image.size.width) cornerRadius:image.size.width/2];
    //2.2把路径设置为裁剪区域
    [path addClip];
    
    //3.绘制图片
    [image drawAtPoint:CGPointZero];
    
    //4.从上下文中获取图片
    UIImage *clipedImage = UIGraphicsGetImageFromCurrentImageContext();
    
    //5.关闭上下文
    UIGraphicsEndImageContext();
    
    self.imageView.image = clipedImage;
}

原图:


裁剪后如下图:

步骤:

1. 加载原生图片

2. 开启上下文

3. 画大圆并填充路径

4. 设置裁剪区域

5. 绘制图形

6. 获取图片

7. 关闭上下文

代码:

Xcode裁剪图片并添加圆环

原理:开启一个比图片稍大的位图上下文,然后在位图上下文上绘制一个内切圆,最后绘制一个比位图上下文小的图片,并切去边缘。如下图所示。

步骤:

1. 加载原生图片

2. 开启上下文

3. 画大圆并填充路径

4. 设置裁剪区域

5. 绘制图形

6. 获取图片

7. 关闭上下文

代码:

步骤:

1. 加载原生图片

2. 开启上下文

3. 画大圆并填充路径

4. 设置裁剪区域

5. 绘制图形

6. 获取图片

7. 关闭上下文

代码:

- (void)viewDidLoad {
    [super viewDidLoad];
    //1.加载原生图片
    UIImage *image = [UIImage imageNamed:@"高圆圆"];
    //self.imageView.image = image;
    
    //图片的宽度和高度
    CGFloat imageWH = image.size.width;
    
    //边界宽度
    CGFloat border = 1.5;
    //圆环的高度和宽度
    CGFloat ovalWH = imageWH + 2 * border;
    
    //2.开启上下文
    UIGraphicsBeginImageContextWithOptions(CGSizeMake(ovalWH, ovalWH), NO, 0);
    
    //3.画大圆
    UIBezierPath *path = [UIBezierPath bezierPathWithOvalInRect:CGRectMake(0, 0, ovalWH, ovalWH)];
    
    [[UIColor colorWithRed:1.000 green:0.138 blue:0.046 alpha:1.000] set];
    
    [path fill];
    
    //4.设置裁剪区域
    UIBezierPath *clipedPath = [UIBezierPath bezierPathWithOvalInRect:CGRectMake(border, border, imageWH, imageWH)];
    
    [clipedPath addClip];
    
    //5.绘制图形
    [image drawAtPoint:CGPointMake(border, border)];
    
    //6.获取图片
    UIImage *clipedImage = UIGraphicsGetImageFromCurrentImageContext();
    
    //7.关闭上下文
    UIGraphicsEndImageContext();
    self.imageView.image = clipedImage;
}

步骤:

1. 加载原生图片

2. 开启上下文

3. 画大圆并填充路径

4. 设置裁剪区域

5. 绘制图形

6. 获取图片

7. 关闭上下文

代码:

原图:

裁剪后的图形:

步骤:

1. 加载原生图片

2. 开启上下文

3. 画大圆并填充路径

4. 设置裁剪区域

5. 绘制图形

6. 获取图片

7. 关闭上下文

代码:

Xcode 图片裁剪相关推荐

  1. ipad html 自定义裁剪图片大小,移动端图片裁剪上传插件 Mavatar.js(原创)

    插件描述:移动端头像上传,支撑头像预览和放大缩小平移,内置上传至后端请求方法. 注:请在移动端用手势查看缩放效果,PC端无法缩放 Mavatar 移动端头像上传,支撑头像预览和放大缩小平移,内置上传至 ...

  2. jquery 图片裁剪 java_[Java教程]5 款最新的 jQuery 图片裁剪插件

    [Java教程]5 款最新的 jQuery 图片裁剪插件 0 2015-05-18 16:00:20 这篇文章主要介绍最新的 5 款 jQuery 图片裁剪插件,可以帮助你轻松的实现你网站需要的图像裁 ...

  3. android 壁纸 裁剪,Android图片裁剪之自由裁剪

    客户的需求都是非常怪的.我有时候在给客户做项目的时候就想骂客户是sb.可是请你相信我,等你有需求,自己变成客户的时候,给你做项目的哥哥肯定也会骂你是sb. 是这种,客户须要做一个图片上传的功能,这个图 ...

  4. PHP图片裁剪_图片缩放_PHP生成缩略图

    2019独角兽企业重金招聘Python工程师标准>>> 在制作网页过程中,为了排版整齐美观,对网页中的图片处理成固定大小尺寸的图片,或是要截去图片边角中含有水印的图片,对于图片量多, ...

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

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

  6. 模拟系统照相机图片裁剪的功能

    模拟系统照相机图片裁剪的功能 效果如下: 源码: // // RootViewController.m // ScrollView // // Copyright (c) 2014年 Y.X. All ...

  7. PHP实现将任意尺寸的图片裁剪后等比缩放到任意尺寸的透明图片上,并实现图片翻转...

    类库地址 github.com/jinqiubj/Pi- 此类库满足以下需求 将任意尺寸的图片等比缩放到任意尺寸的透明图片上,如图1是一张200*200的正方形图片. 在等比缩放的同时,此类库可根据图 ...

  8. Java实现图片裁剪预览功能

    Java实现图片裁剪预览功能 在项目中,我们需要做些类似头像上传,图片裁剪的功能,ok看下面文章! 需要插件:jQuery Jcrop 后端代码: package org.csg.upload;imp ...

  9. 图片裁剪的js有哪些(整理)

    图片裁剪的js有哪些(整理) 一.总结 一句话总结:如果用了amaze框架就去amaze框架的插件库里面找图片裁剪插件,如果没用,jcrop和cropper都不错. 1.amazeui的插件库中有很多 ...

最新文章

  1. python进程间通信 listener_python进程间通信之Queue
  2. 我的软件工程之路(二)
  3. 线程库 c语言实现,130行C语言实现个用户态线程库——后续(一)
  4. MongoDB导出-导入-迁移
  5. 再也回不去的 GitHub。。。
  6. 重构Webpack系列之一 ---- 概念篇
  7. iOS开发 在图片上添加文字,图片合成文字,图片上添加富文本,美图秀秀,美颜相机文字编辑
  8. Javaweb面试题及答案
  9. 微信防撤回是怎么实现的?
  10. Table表格边框线、样式
  11. Failed to execute ‘btoa‘ on ‘Window‘: The string to be encoded contains characters outside of the La
  12. 应用程序无法正常启动(0x000007b)的不常见的解决过程
  13. 前后坐人书柜书桌的标准做法
  14. 调查计算机对运算能力的影响,计算器对运算能力的影响的报告.docx
  15. 计算机词汇店名,电脑店名字200例
  16. Premier Bob的算法模板库(II)
  17. CardView的详细使用
  18. 今年的奥运会延期至2021年夏季举行,盘点一下历届奥运会数据
  19. HTML中的图片如何自适应屏幕?这篇文章有图片的自适应用法介绍
  20. bash输出颜色字体

热门文章

  1. Excel 2021 for Mac 中的新增功能
  2. Java计划任务(任务调度),定时器,定时安排任务,如定时发送Excel表格到用户邮箱(quartz+poi+javax.mail)
  3. 网络性能测试 - MiniSMB网络性能测试仪表 工控机免费版 如何配置VLAN数据流
  4. STM32Fatfs遍历文件(C语言实现)
  5. conda list 与 pip list 命令的区别
  6. 用python写一个抽号
  7. MFC 将CDC绘图保存为bmp图片
  8. 字符 字符集 编码 以及乱码
  9. C语言课程设计(房屋管理系统)
  10. Milvus 实战|基于 Milvus 的图文检索系统