特点 1、纯CSS实现二维码展示功能,减少加载JS; 2、使用CSS3 transform 属性; 步 在需要展示二维码的地方添加如下代码,其中<a>标签内容可以根据需要修改成图片等,hr
顺晟科技
2021-06-16 10:41:44
266
用开放计算机视觉可以实现,识别二维码,并将其边框描绘出来,
如何换成苹果AVFoundation来扫描,如何描绘出二维码的边框呢?
我们知道,扫描结果AVCaptureMetadataOutputObjectsDelegate是返回了数组,而数组里面是一个个的avmetadamachinerredablecodeobject,而avmetadatamachinerredablecodeobject中有个困境数组,记录二维码的坐标,文档给出的解析如下:
/*!
@属性角
@摘要
定义机器可读代码角的(X,Y)位置的点。
@讨论
此属性的值是一组非对称字典,每个字典都是使用cgpointcreatedictionarymentation()从结构体创建的,表示对象的角相对于其所在图像的坐标。如果元数据来源于视频,则点可以表示为从0开始的标量值。- 1.角中的点与边界矩形的不同之处在于,边界与捕获图像的方向轴对齐,并且角的值位于边界矩形内。这些点按逆时针顺序排列(如果代码或图像是镜像的,则按顺时针顺序排列),从代码的左上角开始,以其规范方向排列。
*/
查阅了官方文档和相关资料,我们很容易联想到,通过困境来获取二维码的坐标,大小形状。从而进行描绘。
描绘边框主要代码如下:
/*** 专门用于保存描边的图层***/
@property(非原子,强)层*容器层
-(void)画线:(avmetadatamachinerredablecodeobject *)objc
{
NSArray * array=objc.corners
//1.创建形状图层,用于保存绘制的矩形
现金图层*图层=[[现金图层alloc]init];
//设置线宽
层。线宽=2;
//设置描边颜色
层。strokeColor=[ui Color GreenColor].背景颜色
层。fill COlOr=[ui COlOr clear COlOr].背景颜色
//2.创建UIBezierPath,绘制矩形
UIBezierPath * path=[[UIBezierPath alloc]init];
CGPoint点=CGPointZero
int index=0;
cf dictionary ref dict=(_ _ bridge cf dictionary ref()数组[index]);
//把点转换为不可变字典
//把字典转换为点,存在要点里,成功返回真实的其他错误的
cgpointmakewitticionarymentation(dict,point);
//设置起点
[路径移动到点:];
NSLog(@'X:%f - Y:%f ',点. x,点。y);
//2.2连接其它线段
for(int I=1;IAR雷。计数;i ) {
cgpointmakeinticonarymentation((_ _ bridge CFdictionary ReF)数组[i],点);
[路径addlinetoppoint : Point];
NSLog(@'X:%f - Y:%f ',点. x,点。y);
}
//2.3关闭路径
[路径close path];
layer.path=path .跳弹路径
//3.将用于保存矩形的图层添加到界面上
【自我。container layer add sublayer : layer];
}
16
2021-06
16
2021-06
16
2021-06
16
2021-06
16
2021-06
16
2019-08