如何以椭圆形direct2d显示位图图

本帖子已过去太久远了,不再提供回复功能。当前位置:
& Swift - 圆形图片的生成及显示(两种办法)
Swift - 圆形图片的生成及显示(两种办法)
发布:hangge
有时我们需要将一些矩形图片处理成圆形并显示,比如:功能图标、用户头像等。下面介绍两种显示圆形图片的方法。&
1,通过设置imageView圆角来实现
这种方法实际上没有对原始图片进行处理。只不过在展示的时候,通过设置 UIImageView 圆角半径,从而显示成圆形图片。
//获取图片
let image = UIImage(named: "image1")
//创建imageView
let imageView = UIImageView(image: image)
imageView.frame = CGRect(x:40, y:40, width:100, height:100)
imageView.contentMode = .scaleAspectFill
//设置遮罩
imageView.layer.masksToBounds = true
//设置圆角半径(宽度的一半),显示成圆形。
imageView.layer.cornerRadius = imageView.frame.width/2
self.view.addSubview(imageView)
2,通过图片裁剪来实现
这种方式是通过遮罩剪切的方法,重新生成一张圆形的图片。
(1)扩展 UIImage,增加圆形裁剪方法
extension UIImage {
//生成圆形图片
func toCircle() -& UIImage {
//取最短边长
let shotest = min(self.size.width, self.size.height)
//输出尺寸
let outputRect = CGRect(x: 0, y: 0, width: shotest, height: shotest)
//开始图片处理上下文(由于输出的图不会进行缩放,所以缩放因子等于屏幕的scale即可)
UIGraphicsBeginImageContextWithOptions(outputRect.size, false, 0)
let context = UIGraphicsGetCurrentContext()!
//添加圆形裁剪区域
context.addEllipse(in: outputRect)
context.clip()
//绘制图片
self.draw(in: CGRect(x: (shotest-self.size.width)/2,
y: (shotest-self.size.height)/2,
width: self.size.width,
height: self.size.height))
//获得处理后的图片
let maskedImage = UIGraphicsGetImageFromCurrentImageContext()!
UIGraphicsEndImageContext()
return maskedImage
(2)使用样例
//获取图片
let image = UIImage(named: "image1")?.toCircle()
//创建imageView
let imageView = UIImageView(image: image)
imageView.frame = CGRect(x:40, y:40, width:100, height:100)
self.view.addSubview(imageView)评论列表(网友评论仅供网友表达个人看法,并不表明本站同意其观点或证实其描述)
第一章 CSS3 教程 (基础)
第二章 CSS3 教程(高级)

我要回帖

更多关于 3dmax位图不显示 的文章

 

随机推荐