当前位置: 首页 > news >正文

小榄做网站企业南京网站制作系统

小榄做网站企业,南京网站制作系统,网站不备案可以么,杭州seo管理分析 将生成的二维码图片#xff0c;以IO流的方式#xff0c;通过response响应体直接返回给请求方。 第一、不需要落到我们的磁盘#xff0c;操作在内存中完成#xff0c;效率比较高。 第二、所有生成二维码的请求#xff0c;都可以访问这里#xff0c;前端直接拿img标…分析 将生成的二维码图片以IO流的方式通过response响应体直接返回给请求方。 第一、不需要落到我们的磁盘操作在内存中完成效率比较高。 第二、所有生成二维码的请求都可以访问这里前端直接拿img标签的src就能访问你在浏览器直接输入这个路径也能得到一张图片减少了很多交互和逻辑处理。 第三、在前端实现因为前端可以将某个img标签的图片下载下来不需要消耗我们的服务器资源。 一、引入依赖 dependencygroupIdcom.google.zxing/groupIdartifactIdcore/artifactIdversion3.0.0/version/dependencydependencygroupIdcom.google.zxing/groupIdartifactIdjavase/artifactIdversion3.0.0/version/dependency 二、编写工具类 import java.io.IOException; import java.util.HashMap; import java.util.Map;import com.google.zxing.BarcodeFormat; import com.google.zxing.EncodeHintType; import com.google.zxing.MultiFormatWriter; import com.google.zxing.WriterException; import com.google.zxing.client.j2se.MatrixToImageWriter; import com.google.zxing.common.BitMatrix; import com.google.zxing.qrcode.decoder.ErrorCorrectionLevel;public class QRCodeUtils {/*** 生成二维码* param content 二维码的内容* return BitMatrix对象* */public static BitMatrix createCode(String content) throws IOException {//二维码的宽高int width 200;int height 200;//其他参数如字符集编码MapEncodeHintType, Object hints new HashMapEncodeHintType, Object();hints.put(EncodeHintType.CHARACTER_SET, UTF-8);//容错级别为Hhints.put(EncodeHintType.ERROR_CORRECTION , ErrorCorrectionLevel.H);//白边的宽度可取0~4hints.put(EncodeHintType.MARGIN , 0);BitMatrix bitMatrix null;try {//生成矩阵因为我的业务场景传来的是编码之后的URL所以先解码bitMatrix new MultiFormatWriter().encode(content,BarcodeFormat.QR_CODE, width, height, hints);//bitMatrix deleteWhite(bitMatrix);} catch (WriterException e) {e.printStackTrace();}return bitMatrix;}/*** 删除生成的二维码周围的白边根据审美决定是否删除* param matrix BitMatrix对象* return BitMatrix对象* */private static BitMatrix deleteWhite(BitMatrix matrix) {int[] rec matrix.getEnclosingRectangle();int resWidth rec[2] 1;int resHeight rec[3] 1;BitMatrix resMatrix new BitMatrix(resWidth, resHeight);resMatrix.clear();for (int i 0; i resWidth; i) {for (int j 0; j resHeight; j) {if (matrix.get(i rec[0], j rec[1]))resMatrix.set(i, j);}}return resMatrix;} }三、编写API接口 /*** 生成二维码* param type 二维码的类型为了演示效果1跳百度的2是跳京东* */GetMapping(value /activity/create/activity-code)ApiOperation(生成活动详情二维码)public void getCode(int type , HttpServletResponse response) throws IOException {// 设置响应流信息response.setContentType(image/jpg);response.setHeader(Pragma, no-cache);response.setHeader(Cache-Control, no-cache);response.setDateHeader(Expires, 0);OutputStream stream response.getOutputStream();//type是1生成活动详情、报名的二维码type是2生成活动签到的二维码String content (type 1 ? http://www.baidu.com : http://www.jd.com);//获取一个二维码图片BitMatrix bitMatrix QRCodeUtils.createCode(content);//以流的形式输出到前端MatrixToImageWriter.writeToStream(bitMatrix , jpg , stream);} 四、访问测试 注意添加type 这样的话二维码图片根本就不用落到服务器的磁盘以流的方式就可以让前端直接访问。而且这个生成二维码的接口完全可以共用因为它不保存二维码只是返回图片的二进制流你传入对应的参数我就生成不同的二维码再返回对应的流。甚至二维码的目标链接你也可以让前端作为参数传给你但是前端要进行URL Encode减少了复杂性。 五、下载前端的代码 这一步完全就是前端的工作 function downloadImage(imgsrc, name) {//下载图片地址和图片名let image new Image();// 解决跨域 Canvas 污染问题image.setAttribute(crossOrigin, anonymous);image.onload function() {let canvas document.createElement(canvas);canvas.width image.width;canvas.height image.height;let context canvas.getContext(2d);context.drawImage(image, 0, 0, image.width, image.height);let url canvas.toDataURL(image/jpg); //得到图片的base64编码数据let a document.createElement(a); // 生成一个a元素let event new MouseEvent(click); // 创建一个单击事件a.download name || photo; // 设置图片名称a.href url; // 将生成的URL设置为a.href属性a.dispatchEvent(event); // 触发a的单击事件};image.src imgsrc;} imgSrc就是图片的地址在这里指向我们上面的API就行因为我们的API响应的就是一张图片嘛。name就是下载之后的文件名。
http://www.pierceye.com/news/721498/

相关文章:

  • 铜川免费做网站公司个人博客页面
  • 织梦网站安装出现404 not found商务网站设计素材
  • 石家庄seo网站排名合肥做网站价格
  • 盘锦市城乡建设厅网站区域代理加盟项目
  • 源码如何做网站个人音乐网站源码搭建
  • 网站推广资讯网站注册界面设计
  • 凡网站建设网站线下推广怎么做
  • 简要描述创建商务站点的商务镇江海绵城市建设官方网站
  • 广东建设局网站首页物流官网网站
  • 网站首页做多大分辨率卖域名做非法网站
  • 内蒙古自治区建设厅网站首页网站如何做cdn
  • 代做计算机毕业设计网站福田庆三明星案例
  • 常用seo站长工具微商引流推广平台
  • 潍坊市作风建设年官方网站央视新闻
  • 东阳app开发广东seo网站设计价格
  • 医院网站开发门诊部网站建设
  • 卫生系统网站的建设和维护uc浏览器官网
  • 曲靖网站制作一条龙深圳网站建设的特殊性
  • 网站建设技术课程设计儿童教育网站怎么做有趣
  • 建设银行网站网址网站推广在线
  • 服务器上网站建设用什么搭建个人网站
  • 网站设计排版怎么做wordpress添加媒体
  • 网站服务器镜像外协加工网最新订单
  • 做网站要准备的资料广州响应式网站
  • 徐州网站建设方案维护wordpress主页访客记录
  • 西安网站优化招聘网多个网站 备案吗
  • 宣威网站wordpress 园林模板
  • 宁夏政务大厅城乡建设厅口网站怎么用抓爬工具做网站
  • 电影网站怎么建设深圳企业营销型网站
  • 天津工程建设网官方网站wordpress 静态化插件