社区
iOS
帖子详情
ios做不规则图片的镂空(中空)
教鞭
2020-04-11 09:09:37
问题:需要将效果图片中的人物图片周围画一个自定义的
画框,比如说脚丫子,梅花图案等等,边框中间镂空后显示人物图片
.
查看网络解决方案只有一个"CAShapeLayer和UIBezierPath",但是这些方案我做不到指定的不规则图案.请问大神如何解决?
边框图案:
效果图片:
...全文
476
1
打赏
收藏
ios做不规则图片的镂空(中空)
问题:需要将效果图片中的人物图片周围画一个自定义的画框,比如说脚丫子,梅花图案等等,边框中间镂空后显示人物图片. 查看网络解决方案只有一个"CAShapeLayer和UIBezierPath",但是这些方案我做不到指定的不规则图案.请问大神如何解决? 边框图案: 效果图片:
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
1 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
教鞭
2020-04-11
打赏
举报
回复
解决方案:使用蒙板即可. // // ViewController.m // TestBKColor // // Created by frank.zhai on 2020/4/2. // Copyright © 2020 frank.zhai. All rights reserved. // #import "ViewController.h" #import "MyView.h" @interface ViewController (){ } @end @implementation ViewController UIImageView *imageV; - (void)viewDidLoad { [super viewDidLoad]; UIImage *imgSource = [UIImage imageNamed:@"image原图"]; UIImage *imgMask = [UIImage imageNamed:@"a_41_2"]; UIImageView *imgView = [[UIImageView alloc] initWithFrame:CGRectMake(20, 20, 300, 300)]; imgView.layer.borderWidth = 3; imgView.backgroundColor = [UIColor whiteColor]; imgView.image = [ViewController maskImage:imgSource withMask:imgMask]; [self.view addSubview:imgView]; } +(UIImage*)maskImage:(UIImage*)originImage toPath:(UIBezierPath*)path{ UIGraphicsBeginImageContextWithOptions(originImage.size, NO, 0); [path addClip]; [originImage drawAtPoint:CGPointZero]; UIImage* img = UIGraphicsGetImageFromCurrentImageContext(); UIGraphicsEndImageContext(); return img; } + (UIImage*)maskImage:(UIImage *)image withMask:(UIImage *)maskImage { CGImageRef maskRef = maskImage.CGImage; CGImageRef mask = CGImageMaskCreate(CGImageGetWidth(maskRef), CGImageGetHeight(maskRef), CGImageGetBitsPerComponent(maskRef), CGImageGetBitsPerPixel(maskRef), CGImageGetBytesPerRow(maskRef), CGImageGetDataProvider(maskRef), NULL, false); CGImageRef sourceImage = [image CGImage]; CGImageRef imageWithAlpha = sourceImage; //add alpha channel for images that don't have one (ie GIF, JPEG, etc...) //this however has a computational cost // if (CGImageGetAlphaInfo(sourceImage) == kCGImageAlphaNone) { // // imageWithAlpha = CopyImageAndAddAlphaChannel(sourceImage); // } CGImageRef masked = CGImageCreateWithMask(imageWithAlpha, mask); CGImageRelease(mask); // release imageWithAlpha if it was created by CopyImageAndAddAlphaChannel if (sourceImage != imageWithAlpha) { CGImageRelease(imageWithAlpha); } UIImage* retImage = [UIImage imageWithCGImage:masked]; CGImageRelease(masked); return retImage; } //下面的是resize图片的代码 // resize the original image and return a new UIImage object + (UIImage *) resizeImage:(UIImage *)image size:(CGSize)newSize { UIGraphicsBeginImageContext(newSize); [image drawInRect:CGRectMake(0, 0, newSize.width, newSize.height)]; UIImage *newImage = UIGraphicsGetImageFromCurrentImageContext(); UIGraphicsEndImageContext(); return newImage; } @end
18个
ios
项目源代码
18个
ios
项目源代码 各种布局 控件使用 及扩展视图 自定义UITableViewCell。实现各种样式的表格输入界面、自定义Tab Bar的文字、颜色和
图片
加箭头、列表个性化列表项、
IOS
欢迎界面等。
Android 带清除功能的输入框控件ClearEditText,仿
IOS
的输入框
Android 带清除功能的输入框控件ClearEditText,仿
IOS
的输入框 ,点击右侧清除
图片
清除输入框内容,项目详情http://blog.csdn.net/xiaanming/article/details/11066685
emoji
图片
和编码表
467个emoji的文件和编码表数据 包括Unicode编码,UTF8编码,UTF16编码,SBUnicode编码
iOS
实现View
镂空
效果
需要通过一个mask图显示部分UI或者Icon资源。
ios
的控件自带alpha的值,但是这个值都是整个icon或者UI的透明效果,不能
做
到自定义的透明或者
镂空
效果。我们必须借助于mask资源图。 具体的方法:修改imageview的layer,即可完成这个工作。 CALayer *mask = [CALayer layer]; mask.contents = (id)[[UIImage
iOS
图片
不规则
剪切
最近项目中需求中增加了一个聊天
图片
剪切成
不规则
的要求,查看了一下相关资料。结果用
iOS
SDK自带的API就可以实现如下这个效果。 // 传进去一个UIView进行绘制,返回一个 CAShapeLayer 对象,然后把改对象设置为view.layer.mask属性。 UIImageView *tempView = [[UIImageView alloc]
iOS
29,027
社区成员
12,466
社区内容
发帖
与我相关
我的任务
iOS
主要讨论与iOS相关的软件和技术
复制链接
扫一扫
分享
社区描述
主要讨论与iOS相关的软件和技术
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章