网店系统H5版(五) 给商品图片添加二维码水印并下载

2020-4-5 21:32:41 星期日

网店需要提供分享并下载商品图片的功能, 这里使用jquery-qrcode + h5的canvas实现这个功能

并没有请求后端, 全是在客户端浏览器上执行的

 1 function createShareImage(goodsId, goodsImgUrl) {
 2     let urlGoodsDetail = location.origin + ‘/vstore_goodsinfo_‘ + goodsId; //商品详情页链接
 3     let urlGoodsImg = location.origin + goodsImgUrl; //商品图片链接
 4
 5     let image = new Image();
 6     image.onload = function () {
 7         //创建画布
 8         let canvasElement = document.getElementById(‘goodsCanvas‘); //已有或者通过 createElement 实时创建
 9         let ctx = canvasElement.getContext(‘2d‘);
10
11         //将图片画到canvas上去
12         let imageW = image.width;
13         let imageH = image.height;
14         let w = imageW;
15         let h = imageH;
16         let maxWidth = 500;
17         if (imageW > maxWidth) {
18             w = maxWidth;
19             h = parseInt((maxWidth * imageH) / imageW);
20         }
21         canvasElement.setAttribute(‘width‘, w+‘px‘);
22         canvasElement.setAttribute(‘height‘, h+‘px‘);
23         ctx.drawImage(image, 0, 0, w, h);
24
25         //生成商品二维码
26         $(‘#goodsQR‘).qrcode({text:urlGoodsDetail,quiet:2}); //需要引入jquery-qrcode
27         let canvasQR = document.getElementById(‘goodsQR‘).getElementsByTagName(‘canvas‘)[0];
28
29         //将二维码画上去
30         let qrWidth = 80;
31         ctx.drawImage(canvasQR, w-qrWidth, h-qrWidth, qrWidth, qrWidth);
32
33         //下载图片
34         let MIME_TYPE = "image/png";
35         let imgURL = canvasElement.toDataURL(MIME_TYPE);
36         let dlLink = document.createElement(‘a‘);
37         dlLink.download = goodsId.substring(0,10)+‘.png‘;
38         dlLink.href = imgURL;
39         dlLink.dataset.downloadurl = [MIME_TYPE, dlLink.download, dlLink.href].join(‘:‘);
40
41         document.body.appendChild(dlLink);
42         dlLink.click();
43         document.body.removeChild(dlLink);
44     };
45
46     image.src = urlGoodsImg;
47 }

源码(码云)

原文地址:https://www.cnblogs.com/iLoveMyD/p/12639245.html

时间: 2024-10-27 18:50:36

网店系统H5版(五) 给商品图片添加二维码水印并下载的相关文章

在树莓派(Debian系统)上通过usb摄像头扫描识别QR二维码

树莓派(Debian系统)自带Python开发环境IDLE(Python 2.7.3),接上摄像头,就能通过Python实行对QR code的创建和识别: 首先,需要在树莓派上安装如下工具: sudo apt-get install python-imaging sudo apt-get install zbar-tools sudo apt-get install qrencode sudo apt-get install python-pygame 然后创建qrcode.py文件: #!/u

二维码点餐系统开发app

二维码点餐系统开发(陈琦:138-2848-7919可微)二维码点餐模式开发,二维码点餐系统平台,二维码点餐平台APP,二维码点餐定制开发,二维码点餐软件APP,二维码点餐定制模式,二维码点餐商城平台. 微信自助点餐系统将精致的菜单推送给客户.通过微信自助点餐系统让客户方便的自助点菜,完成支付后,厨房无线打印机立即收到订单并打印出菜单,且告知是哪个桌台的客户的订单.另外还有短信.邮件提醒店主以防漏单. 一.如何用微信自助点餐系统来点菜 1.扫下餐桌的二维码 2.微信自助点餐系统自动采集用户所在的

通过生成支付二维码来实现微信支付的解决方案 - EasyWechat版(转)

上一篇我们讲了在微信浏览器内实现微信支付的功能,它特别适合于一些基于微信公众号的h5站点等,支付流程也相当流畅,但是... 还有一种情况,比如现在北哥兄弟连PC版,是生成了一个二维码,这个二维码是专属的,扫描后直接就蹦出了支付页面.现在告诉你它如何实现的~ 本文相关框架 Yii2 EasyWechat 忆往昔 上节课我们讲了一个很重要的概念,那就是预支付交易回话标识 "我们先调用接口在微信支付服务后台生成预支付交易单,返回正确的预支付交易回话标识后再按扫码.JSAPI.APP等不同场景生成交易串

二维码营销系统开发二维码营销系统模式详解

二维码营销系统开发(李想.185.6504.8478)二维码营销系统是什么?二维码营销系统有什么用?我为什么要需求购买二维码营销系统?二维码营销系统到底能给我带来解决什么问题?如果你想了解这些,那就跟随笔者一起往下看!市场营销是指,企业发现或挖掘准消费者需求,从整体氛围的营造以及自身产品形态的营造去推广和销售产品,主要是深挖产品的内涵,切合准消费者的需求,从而让消费者深刻了解该产品进而购买的过程.营销的目的是:产生可持续性收益.营销的本质是:抓住用户的需求,并快速把需求商品化.笔者下面介绍二维码

h5开发app之在线生成二维码

h5通过jquery和qrcode在线生成二维码 首先我们需要下载一个qrcode.js文件,然后依次引入jquery和qrcode文件. 1.创建一个输入框以便做演示使用: <input id="text" type="text" value="http://www.baidu.com" style="width:80%" /> 2.创建一个div以用来放置二维码图片(div的id定义为“qrcode”): &l

H5混合开发二维码扫描以及调用本地摄像头

今天主管给了我个需求,说要用混合开发,用H5调用本地摄像头进行扫描二维码,我之前有做过原生安卓的二维码扫一扫,主要是通过调用zxing插件进行操作的,其中还弄了个闪光灯.但是纯H5的没接触过,心里没底,于是晚上回家开始网上各处找方案.以下是我对于H5扫描二维码以及调用本地摄像头的理解以及代码. 科普网址: H5如何生成安卓组件对象 H5调用安卓本地摄像头api 在线二维码图片生成器 二维码扫描:(使用的是mui的框架,下面是html代码) <!doctype html> <html>

ECshop网店系统百万级商品量性能优化-简单的一些Cache内存配置

ECshop网店系统对于产品的数据.模板.Query都可以缓存,也就是把一些商品详情页.分类页.Search页的数据经过一次访问后,用文件的形式保存下来,下次有人访问相同的页面时,不用再查数据库,直接读取Cache展示出来,减少服务器数据库压力. 这样的做法的确可以加速访问,减少资源浪费,对于流量比较大,或者页面重复访问Hit Rate比较高的很有用,但这个也只能解决一部分问题,对于一个有几十万商品的ECshop网店来说,最大的压力不是来自于自然访问的流量,而是勤劳的Google Bot或者Bi

让Ecshop网店系统用户自动登陆

让Ecshop网店系统用户户自动登陆,打开ecshop includes/init.php文件,可以发现Ecshop系统判断用户的SESSION不存在的时候会去读取存储在COOKIES里面的值.如下代码片段所示: if (empty($_SESSION['user_id'])) { if ($user->get_cookie()) { /* 如果会员已经登录并且还没有获得会员的帐户余额.积分以及优惠券 */ if ($_SESSION['user_id'] > 0) { update_user

会点网袁帅: O2O实际运用:二维码详解

会点网袁帅: O2O实际运用:二维码详解 [导读]:在O2O实际运作中,小小的二维码有着至关重要的作用.具体有什么作用和怎么来实现二维码的价值呢? 相对于传统模式来说,移动互联网的移动状态和随时随地的特性,让内容商对于消费者的接触越来越全方位,200多年来工业社会形成的基于信息不对称构建的商业模式面临着一个全新的挑战,现在很多企业这2年对O2O的关注和实战越来越多,很多企业如果如果简单在线上搞个网店,线下搞了实体店,在面向消费者的营销.交易和消费体验没有让消费者感觉创意性和立体感,这样的O2O是