ios-在定义好的path中修剪UIImage

问题描述

在定义好的path中修剪UIImage

在我的drawRect有一个path:

CGContextSetLineWidth(context, 1.5);
CGContextSetStrokeColorWithColor(context, [UIColor whiteColor].CGColor);
CGContextAddEllipseInRect(context, rect);
CGContextStrokePath(context);

CGContextClip(context);
CGContextTranslateCTM(context, 0.0, rect.size.height);
CGContextScaleCTM(context, 1.0, -1.0);
CGContextDrawImage(context, rect, self.image_.CGImage);

UIGraphicsBeginImageContext(rect.size);
UIImage * circleUserProfile = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();

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

CGContextRestoreGState(context);

有一个UIImage,我希望image能修剪成圆形,不知道怎么实现?

解决方案

当你调用UIGraphicsBeginImageContext,就创建了新context。新的context就会占用上一个(就是你话画好的那个)位置,然后用没有内容的新context就会成为当前context,所以需要在调用UIGraphicsGetCurrentContext之前开始图片context,然后进行绘画。

时间: 2024-12-03 12:29:07

ios-在定义好的path中修剪UIImage的相关文章

iOS原生如何加载HTML中img标签的图片

原文出自:iOS原生如何加载HTML中img标签的图片 前言 最近iOS App项目中使用Webview加载H5页面比较多,也有不少朋友经常问到这个问题,在这里我也学习学习如何通过iOS原生的方式来加载H5页面中的图片然后让webview显示图片. 相信有很多朋友也遇到过这样的问题,可是很多朋友都没有思路,不知如何入手.今天,刚好学习了一下,并写了一个简单的demo.下面让我们一起来学习一下吧! 本篇文章适合哪些人群阅读? 项目中有类似需求的,而又没有思路的 曾经做过类似需求的,可以参考两者的思

[译] iOS 响应式编程:Swift 中的轻量级状态容器

本文讲的是[译] iOS 响应式编程:Swift 中的轻量级状态容器, 原文地址:Reactive iOS Programming: Lightweight State Containers in Swift 原文作者:Tyler Tillage 译文出自:掘金翻译计划 本文永久链接:github.com/xitu/gold-m- 译者:deepmissea 校对者:FlyOceanFish iOS 响应式编程:Swift 中的轻量级状态容器 事物的状态 在客户端架构如何工作上,每一个 iOS

无效的bean定义与类路径中定义的名字“数据源”资源[spring-mybatis]

问题描述 无效的bean定义与类路径中定义的名字"数据源"资源[spring-mybatis] 错误如下: Invalid bean definition with name 'dataSource' defined in class path resource [spring-mybatis.xml]: Could not resolve placeholder 'driver' in string value "${driver}"; nested except

ios支付宝支付集成到项目中x86_64的错误

问题描述 ios支付宝支付集成到项目中x86_64的错误 解决方案 http://blog.csdn.net/m372897500/article/details/45790689

c++-为什么模板类的声明和实现必须定义在一个.h文件中?

问题描述 为什么模板类的声明和实现必须定义在一个.h文件中? "模板类的实现,脱离具体的使用,是无法单独的编译的:把声明和实现分开的做法也是不可取的,必须把实现全部写在头文件里面."这个的原理是啥啊,越详细越好. 解决方案 http://blog.csdn.net/lichengyu/article/details/6792135 这位博主讲的蛮好的 解决方案二: 模板类的定义和实现可以不在同一个文件中请将类模板的声明和实现都写在.h文件中模板函数的声明和定义都放在.h文件 解决方案三

Cocos2d-x与ios内存管理分析(在游戏中减少内存压力)

  Cocos2d-x与ios内存管理分析(在游戏中减少内存压力) 猴子原创,欢迎转载.转载请注明: 转载自Cocos2D开发网--Cocos2Dev.com,谢谢!  原文地址: http://www.cocos2dev.com/?p=281 注:自己以前也写过Cocos2d-x如何优化内存的使用,以及内存不足的情况下怎么处理游戏.今天在微博中看到有朋友介绍了下内存,挺详细的.不知道是谁写的,我记录下. 一,iOS与图片内存 在iOS上,图片会被自动缩放到2的N次方大小.比如一张1024*10

用来检测输入的选项$1是否在PATH中的shell脚本_linux shell

今天无意中发现一本挺有意思的shell编程的书,是e文的,内容是101个shell案例,坚持明天看一个,写点心得. 下面是例子001: #!/bin/sh # inpath - Verifies that a specified program is either valid as is, # or that it can be found in the PATH directory list. in_path() { # Given a command and the PATH, try to

Linux将命令添加到PATH中【转】

转自:http://www.jb51.net/LINUXjishu/150167.html 电脑中必不可少的就是操作系统.而Linux的发展非常迅速,有赶超微软的趋势.这里介绍Linux的知识,让你学好应用Linux系统.比如要把/etc/apache/bin目录添加到PATH中,方法有三: 1.#PATH=$PATH:/etc/apache/bin 使用这种方法,只对当前会话有效,也就是说每当登出或注销系统以后,PATH 设置就会失效 2.#vi /etc/profile 在适当位置添加 PA

苹果在iOS 8版的Safari浏览器中推出一项新功能

摘要: 很多时候大家网购都需要录入自己的信用卡信息,长长的数字在移动设备上录入是件麻烦事.因此,苹果在iOS 8版的Safari浏览器中推出了一项新功能来,该功能可让用户利用设备的摄像 很多时候大家网购都需要录入自己的信用卡信息,长长的数字在移动设备上录入是件麻烦事.因此,苹果在iOS 8版的Safari浏览器中推出了一项新功能来,该功能可让用户利用设备的摄像头来扫描信用卡,然后自动识别其中的数字并录入相应信息,从而避免了人工录入的麻烦. 此前苹果也提供了其他形式的便利录入手段,比方说用户可以在