一、应用场景

在开发相机相关应用,如图片裁剪,二维码时,我们经常需要在最上层覆盖一层遮罩,如下图:
一个通常的做法(以上图为例),是将界面划分成几个部分,分别绘制,如阴影部分,分上下左右四个部分,然后分别绘制这四个部分,再绘制绿色边框。实现也不难,但太过于繁琐,现在给出一个更简单的方法
#import <UIKit/UIKit.h>@interface ILMaskView : UIView@property (unsafe_unretained, nonatomic)CGRect cropRect;
@property (strong, nonatomic) UIColor *borderColor;@end#import "ILMaskView.h"#define kMaskViewBorderWidth 2.0f@interface ILMaskView ()
@end@implementation ILMaskView- (void)drawRect:(CGRect)rect {[super drawRect:rect];CGContextRef ctx = UIGraphicsGetCurrentContext();CGContextSetRGBFillColor(ctx, 0, 0, 0, 0.6);CGContextFillRect(ctx, self.bounds);CGContextSetStrokeColorWithColor(ctx, self.borderColor.CGColor);CGContextStrokeRectWithWidth(ctx, _cropRect, kMaskViewBorderWidth);CGContextClearRect(ctx, _cropRect);
}
@end

二维码相机遮罩层快速实现相关推荐

  1. Android二维码扫描之ZXing快速项目集成

    <Android二维码扫描之ZXing快速项目集成> 二维码扫描现在是一直比较多的应用场景,Android的开源项目ZXing提供了完整.成熟的解决方案,如果仅仅是出于快速开发的目的,可以 ...

  2. 二维码如何制作?快速制作二维码的教程在这里

    二维码如何制作?在我们的日常生活中总是会看到形形色色的二维码图片,在我们的日常生活中少不了需要时时接触二维码,除了系统自动生成二维码之外,其实我们还可以借助一些软件来进行二维码的生成,这里小编就来给大 ...

  3. 安卓框架之二维码框架zxing的快速上手

    Zxing的使用 导入依赖: compile 'cn.yipianfengye.android:zxing-library:2.2' 申请权限: <!--震动权限--><uses-p ...

  4. java二维码生成代码_java快速开发平台功能特点之代码生成器

    要说做代码生成器的初衷,还是因为在做公司项目的时候,有太多的功能页面需要处理,在前后端上面,虽然也选择了一个基础的SSH框架系统作为基础,但还是耗费了大量的时间去一点点补代码,再加上业务的需求并不是非 ...

  5. Android 基于Zxing二维码扫描的光速实现

    Android 十分钟光速实现二维码扫描 前言 在项目中要使用到二维码的相关内容,我们第一时间想到的是使用大名鼎鼎的zxing或者ZBar开源框架: github-zxing官方库的地址 github ...

  6. 学习:二维码、QR码、J4L-QRCode、java

    转自:http://baijinshan.iteye.com/blog/1004554 学习:二维码.QR码.J4L-QRCode.java Java企业应用网络应用Rails应用服务器  开源码 J ...

  7. 手机QQ浏览器“有码女神”惊现!意在推广二维码

    近日,新浪微博.腾讯微博.天涯论坛.猫扑上关于"有码女神"的帖子满天飞,三个身上贴着二维码的模特女瞬间走红网络.很多网友认为这是一场有策划的营销活动,但是具体是谁策划的,由于没法现 ...

  8. 二维码提取(不包括识别)

    二维码提取(不包括识别) 实验室相关课题需要对二维码中心点作为特征点来提取,得到其像素坐标,然后利用深度相机恢复其三维空间坐标,用于后续实验.本文主要针对二维码中心点像素坐标提取做介绍. 二维码概述 ...

  9. 关于二维码的一些基础知识和问题

    什么是二维条码/二维码: 二维条码/二维码 (2-dimensional bar code) 是用某种特定的几何图形按一定规律在平面(二维方向上)分布的黑白相间的图形记录数据符号信息的:在代码编制上巧 ...

最新文章

  1. web设计页面跳转的方法
  2. C++ 性能剖析 (四):Inheritance 对性能的影响
  3. Android自绘制控件
  4. 编码的喜悦……以及Java中的变异测试
  5. 耿美玉起诉饶毅名誉侵权,法院判了!驳回请求,但对饶毅方也应给予批评
  6. LETTERS (信息学奥赛一本通-T1212)
  7. css中关于transform、transition、animate的区别
  8. WPF中查找指定类型的父控件
  9. [转]FTP搜索引擎的设计与实现(优化版)
  10. 吴恩达深度学习——人脸识别与神经风格转换
  11. 总结web压力测试工具
  12. 小米6显示服务器出错,小米6解锁BL显示未连接手机解决办法以及各种小技巧汇总......
  13. 常用youtube快捷键,让看视频学技术起飞
  14. 软件测试薪资标准,软件测试月薪过万需要具备哪些技能?
  15. 新开通了我的CSDN博客,写个处女篇
  16. java模拟器怎么打开apk文件,APK是什么 APK文件怎么打开【详解】
  17. 胆囊结石在我们的生活中有哪些危害呢?
  18. Git - 版本穿梭(时光穿梭机)
  19. 《TCP/IP详解》中文版下载地址
  20. We‘re sorry but XXX doesn‘t work properly without JavaScript enabled.

热门文章

  1. Java学习笔记:案例:计算发送工资条
  2. 汽车覆盖件冲压模具铸造工艺研究
  3. 刚刚,联通和华为发布《5G车路协同白皮书》| 附下载
  4. LPC1768PWM实验
  5. 思泰克IPO过会:上半年营收1.9亿 元禾璞华与赛富金钻是股东
  6. linux访问nfs文件夹,linux配置NFS网络共享文件夹目录
  7. 数据库中的锁机制(数据库中有哪些锁)
  8. XSS-labs通关游戏
  9. python_day10のPython操作 RabbitMQ、Redis、Memcache
  10. 控制 input 输入框不能输入中文,即不能在输入框中使用输入法