iOS 画圆形头像

demo下载地址:http://pan.baidu.com/s/1mgBf6YG

_logoImageView.image = [self
getEllipseImageWithImage:[UIImage
imageNamed:@"1_wsq724439564.jpg"]];

-(UIImage*)getEllipseImageWithImage:(UIImage*)originImage

{

CGFloat padding =
5;//圆形图像距离图像的边距

UIColor* epsBackColor = [UIColor
greenColor];//图像的背景色

CGSize originsize = originImage.size;

CGRect originRect =
CGRectMake(0,
0, originsize.width, originsize.height);

UIGraphicsBeginImageContext(originsize);

CGContextRef ctx =
UIGraphicsGetCurrentContext();

//目标区域。

CGRect desRect = 
CGRectMake(padding, padding,originsize.width-(padding*2), originsize.height-(padding*2));

//设置填充背景色。

CGContextSetFillColorWithColor(ctx, epsBackColor.CGColor);

UIRectFill(originRect);//真正的填充

//设置椭圆变形区域。

CGContextAddEllipseInRect(ctx,desRect);

CGContextClip(ctx);//截取椭圆区域。

[originImage drawInRect:originRect];//将图像画在目标区域。

UIImage* desImage =
UIGraphicsGetImageFromCurrentImageContext();

UIGraphicsEndImageContext();

return desImage;

}

带有边框的圆形头像。

-(UIImage*)getEllipseImageWithImage:(UIImage*)originImage

{

CGFloat padding =
5;//圆形图像距离图像的边距

UIColor* epsBackColor = [UIColor
greenColor];//图像的背景色

CGSize originsize = originImage.size;

CGRect originRect =
CGRectMake(0,
0, originsize.width, originsize.height);

UIGraphicsBeginImageContext(originsize);

CGContextRef ctx =
UIGraphicsGetCurrentContext();

//目标区域。

CGRect desRect = 
CGRectMake(padding, padding,originsize.width-(padding*2), originsize.height-(padding*2));

//设置填充背景色。

CGContextSetFillColorWithColor(ctx, epsBackColor.CGColor);

UIRectFill(originRect);//真正的填充

//设置椭圆变形区域。

CGContextAddEllipseInRect(ctx,desRect);

CGContextClip(ctx);//截取椭圆区域。

[originImage drawInRect:originRect];//将图像画在目标区域。

//
边框 //

CGFloat borderWidth =
10;

CGContextSetStrokeColorWithColor(ctx, [UIColor
whiteColor].CGColor);//设置边框颜色

CGContextSetLineCap(ctx,
kCGLineCapButt);

CGContextSetLineWidth(ctx, borderWidth);//设置边框宽度。

CGContextAddEllipseInRect(ctx, desRect);//在这个框中画圆

CGContextStrokePath(ctx);
// 描边框。

//
边框 //

UIImage* desImage =
UIGraphicsGetImageFromCurrentImageContext();//
获取当前图形上下文中的图像。

UIGraphicsEndImageContext();

return desImage;

}

iOS 画圆形头像,码迷,mamicode.com

时间: 2024-10-11 15:04:40

iOS 画圆形头像的相关文章

iOS 裁剪圆形图像并显示(类似于微信头像)

本文主要讲解如何从照片库选择一张照片后将其裁剪成圆形头像并显示,类似于微信头像那种模式. 本文的方法也适用于当时拍照获取的图像,方法类似,所以不再赘述. 本文主要是在iOS 10环境下使用,此时如果要使用使用系统照片库.照相机等功能需要授权,授权方法如下: 右键点击工程目录中的"Info.plist文件-->Open As -->Source Code",打开复制以下你在应用中使用的隐私权限设置(描述自己修改): <key>NSVideoSubscriberAc

iOS实现头像选取(照相或者图片库)、大小等比缩放、生成圆形头像

//弹出actionsheet.选择获取头像的方式//从相册获取图片 -(void)takePictureClick:(UIButton *)sender { // /*注:使用,需要实现以下协议:UIImagePickerControllerDelegate, // UINavigationControllerDelegate // */ // UIImagePickerController *picker = [[UIImagePickerController alloc]init]; //

UWP 画一个圆形头像

经常需要做一个圆形头像的样式,like this 做法很简单,直接上xaml. <Ellipse Width="80" Height="80"> <Ellipse.Fill> <ImageBrush ImageSource="photo address"></ImageBrush> </Ellipse.Fill> </Ellipse> 创建一个椭圆(长和宽一样就是圆),用Im

【Android】自定义圆形ImageView(圆形头像 可指定大小)

最近在仿手Q的UI,这里面经常要用到的就是圆形头像,看到 在android中画圆形图片的几种办法 这篇文章,了解了制作这种头像的原理.不过里面提供的方法还有一个不足的地方就是不能根据实际需求改变图片的大小,也就是说提供的原图是大尺寸的,转换之后的图片也是大尺寸的,这显然不符合我们实际项目中的需求.于是我对里面介绍的第一种方法做了一番改进,使其能直接在XML中指定图片的大小. 大体步骤 将原图居中裁剪成正方形 根据指定的宽度对正方形进行缩放 裁剪成圆形 效果 代码实现 package com.de

Android_AsyncTaskDemo之QQ记步数(画圆形图片知识)

今天学习了AsyncTask Android 的异步机制.我简单的实现我的一个小小案例--qq记步数.然后穿插一个画圆形图片的知识点. 由于所学知识有限,目前我计数,还有排名等等我就简单的利用随机数实现.多有不是之处见谅啊. 我们的xml layout布局文件 1 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 2 xmlns:tools="http://schemas.a

自定义控件 编辑和选取圆形头像

android大家都有很多需要用户上传头像的需求,有的是选方形,有的是圆角矩形,有的是圆形. 首先我们要做一个处理图片的自定义控件,把传入的图片,经过用户选择区域,处理成一定的形状. 有的app是通过在图片上画一个矩形区域表示选中的内容,有的则是通过双指放大缩小,拖动图片来选取图片.圆形头像,还是改变图片比较好 圆形区域可调节大小. 这个自定义View的图像部分分为三个,背景图片,半透明蒙层,和亮色区域--还是直接贴代码得了 package com.example.jjj.widget; imp

【Android】自己定义圆形ImageView(圆形头像 可指定大小)

近期在仿手Q的UI,这里面常常要用到的就是圆形头像,看到 在android中画圆形图片的几种办法 这篇文章,了解了制作这样的头像的原理.只是里面提供的方法另一个不足的地方就是不能依据实际需求改变图片的大小,也就是说提供的原图是大尺寸的,转换之后的图片也是大尺寸的,这显然不符合我们实际项目中的需求.于是我对里面介绍的第一种方法做了一番改进,使其能直接在XML中指定图片的大小. 大体步骤 将原图居中裁剪成正方形 依据指定的宽度对正方形进行缩放 裁剪成圆形 效果 代码实现 package com.de

Android自定义控件实例,圆形头像(图库 + 裁剪+设置),上传头像显示为圆形,附源码

Android项目开发中经常会遇见需要实现圆角或者圆形的图片功能,如果仅仅使用系统自带的ImageView控件显然无法实现此功能,所以通过系列文章的形式由简到繁全方位的介绍一下此功能的实现,巩固一下自身的学习,同时,和广大网友交流分享 本项目源码下载地址:链接:http://pan.baidu.com/s/1sljdvtF 密码:xj85 首先看效果图 首先看一下CircleImageView的主要流程 1. 首先通过setImageXxx()方法设置图片Bitmap: 2. 进入构造函数Cir

Android实现本地上传图片并设置为圆形头像

我们在做项目的时候会用到圆形的图片,比如用户头像,类似QQ.用户在用QQ更换头像的时候,上传的图片都是矩形的,但显示的时候确是圆形的.那么这是如何实现的呢,下面我们就来探讨下吧. 先从本地把图片上传到服务器,然后根据URL把头像处理成圆形头像. 因为上传图片用到bmob的平台,所以要到bmob(http://www.bmob.cn)申请密钥. 效果图: 核心代码如下: public class MainActivity extends Activity {        private Imag