起步软件技术论坛
搜索
 找回密码
 注册

QQ登录

只需一步,快速开始

楼主: cin

[分享] wex5生成二维码名片

  [复制链接]

79

主题

581

帖子

3464

积分

论坛元老

Rank: 8Rank: 8

积分
3464
QQ
发表于 2016-5-27 10:30:35 | 显示全部楼层
cin 发表于 2016-5-27 10:08
恩,这块的参数没有暴露出来,你可以自己把这两个参数暴露出来,放在外部设置中 ...

在您的js中canvas在画img的时候,怎么去给图片设置样式,例如:加圆角、加边框

小尾巴~~世间万难,无非一拖二懒三不读书
回复 支持 反对

使用道具 举报

16

主题

63

帖子

244

积分

中级会员

Rank: 3Rank: 3

积分
244
QQ
 楼主| 发表于 2016-5-27 11:04:54 | 显示全部楼层
cc_day 发表于 2016-5-27 10:30
在您的js中canvas在画img的时候,怎么去给图片设置样式,例如:加圆角、加边框 ...

这个图片可以自己叠加的,参考我添加头像的部分,处理分为两部分
1、首先利用了原来qrcodejs作者在canvas输出的二维码,然后再在这上面添加一个头像,具体代码有些小坑,需要将添加图片部分放在onload中,是一个异步,因此是需要通过自己实现一个回调来完成的。
2、如果想为二维码加边框,有n种实现方式,不建议放在目前封装好的js中,你可以直接在外面放一个div,然后放个边框样式,然后在里面用相对位置在放一个div,div中再利用这段js添加二维码
3、如果只是头像加边框,直接改图片吧。
4、如果想做异形二维码,那需要涉及原作者底层生成二维码的逻辑算法,就会比较麻烦了。由于项目上并没有这种需求,我还没有具体去研究相关算法
回复 支持 反对

使用道具 举报

79

主题

581

帖子

3464

积分

论坛元老

Rank: 8Rank: 8

积分
3464
QQ
发表于 2016-5-27 11:55:41 | 显示全部楼层
cin 发表于 2016-5-27 11:04
这个图片可以自己叠加的,参考我添加头像的部分,处理分为两部分
1、首先利用了原来qrcodejs作者在canvas ...

base_image = new Image();
                        base_image.src = options.src;
                        base_image.onload = function() {
                                ctx.drawImage(base_image, 100, 100,50,50);
                                var img = new Image();
                                img.src = canvas.toDataURL("image/png");       
                                cb(img);
                        }        在这里能调用到什么方法可以给头像加入css,想给头像设置一个4px的圆角,和边框

小尾巴~~世间万难,无非一拖二懒三不读书
回复 支持 反对

使用道具 举报

79

主题

581

帖子

3464

积分

论坛元老

Rank: 8Rank: 8

积分
3464
QQ
发表于 2016-5-27 11:58:39 | 显示全部楼层
微信二维码中间头像那样

小尾巴~~世间万难,无非一拖二懒三不读书
回复 支持 反对

使用道具 举报

16

主题

63

帖子

244

积分

中级会员

Rank: 3Rank: 3

积分
244
QQ
 楼主| 发表于 2016-5-27 13:29:49 | 显示全部楼层
cc_day 发表于 2016-5-27 11:58
微信二维码中间头像那样

这个直接利用convas进行绘制即可,示例代码:ctx.beginPath();
ctx.lineWidth="6";
ctx.strokeStyle="red";
ctx.rect(100,100,50,50);
ctx.stroke();

这会在头像外面画一个红色方框
如果想让边角为圆角,可使用arcto方法来处理,具体的实现有很多例子,我就不再详细说了,可参考
http://www.108js.com/article/article7/70098.html?id=548
这篇文章,方框效果附图。
最后,convas是一个画布,你可以在上面绘制任何你想要的效果。
但是要注意一点,这会影响二维码的识别率。
因为目前二维码底层实现不是我自己写的,在二维码上绘制其他图形只是在利用二维码的容错机制。
在原有二维码上面叠加一个图形而已。
所以一定别让自己的图形占用太多空间,导致二维码容错失败,无法识别。
关于通过二维码拼接自己的图像的部分涉及二维码底层实现,需自行实现相应算法。

边框效果

边框效果
回复 支持 反对

使用道具 举报

48

主题

147

帖子

1575

积分

金牌会员

Rank: 6Rank: 6

积分
1575
QQ
发表于 2016-7-20 16:55:24 | 显示全部楼层
请问楼主 生成 二维码图片之后  怎样保存到手机端本地呢?
回复 支持 反对

使用道具 举报

718

主题

2841

帖子

5657

积分

论坛元老

Rank: 8Rank: 8

积分
5657
QQ
发表于 2016-7-20 16:59:28 | 显示全部楼层
WEX5初学者,欢迎初学者交流
QQ:597558229
tel:15857336322
回复

使用道具 举报

73

主题

345

帖子

1695

积分

金牌会员

Rank: 6Rank: 6

积分
1695
QQ
发表于 2017-2-20 20:00:20 | 显示全部楼层
请问楼主,如果想给二维加个背景要怎么实现。
换名话说,就是做个二维码海报,该怎么实现
timg.jpg
回复 支持 反对

使用道具 举报

16

主题

63

帖子

244

积分

中级会员

Rank: 3Rank: 3

积分
244
QQ
 楼主| 发表于 2017-3-21 16:42:04 | 显示全部楼层
底图单独放在某个div中,然后再写个div,设置下绝对位置,调用二维码生成就好,这些都是基本的html布局常识
回复 支持 反对

使用道具 举报

718

主题

2841

帖子

5657

积分

论坛元老

Rank: 8Rank: 8

积分
5657
QQ
发表于 2017-5-28 10:11:29 | 显示全部楼层
本帖最后由 郭德成 于 2017-5-28 10:44 编辑
cin 发表于 2016-5-27 10:08
恩,这块的参数没有暴露出来,你可以自己把这两个参数暴露出来,放在外部设置中 ...

当改变二维码大小,头像图片不居中了。怎么改变头像图片大小,我也遇到这个问题了,在哪里改呢?(居中问题己解决)另外qrcode.js文件有红叉报警怎么解决? QQ图片20170528095731.png
WEX5初学者,欢迎初学者交流
QQ:597558229
tel:15857336322
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|X3技术论坛|Justep Inc.    

GMT+8, 2024-5-14 03:07 , Processed in 0.074366 second(s), 23 queries .

Powered by Discuz! X3.4

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表