公司的需求要用电子员工卡代替用了N久的工作证,在各种场合刷二维码来代替刷卡。在钉钉小程序里实现。感觉这回又要躺坑里了。

钉钉小程序第一次做。我这个自封的GDI+大神才不要想用钉钉jsapi的方式用canvas来实现呢,怎么样,机智不。

我们看一眼官方的demo:

  1. example.restore = function (context) {
  2. [3, 2, 1].forEach(function (item) {
  3. context.beginPath();
  4. context.setStrokeStyle('#108ee9');
  5. context.save();
  6. context.scale(item, item);
  7. context.rect(10, 10, 100, 100);
  8. context.stroke();
  9. context.restore();
  10. });
  11.  
  12. };
  13.  
  14. example.drawImage = function (context) {
  15. context.drawImage('/image/api.png',100, 50);
  16. };
  17.  
  18. example.fillText = function (context) {
  19. context.beginPath();
  20. context.setStrokeStyle('#108ee9');
  21. context.moveTo(0, 10);
  22. context.lineTo(300, 10);
  23. context.stroke();
  24.  
  25. // context.save();
  26. // context.scale(1.5, 1.5);
  27. // context.translate(20, 20);
  28. context.setFontSize(10);
  29. context.fillText('Hello Dingtalk', 0, 30);
  30. context.setFontSize(20);
  31. context.fillText('Hello Dingtalk', 200, 30);
  32.  
  33. // context.restore();
  34.  
  35. context.beginPath();
  36. context.moveTo(0, 30);
  37. context.lineTo(300, 30);
  38. context.stroke();
  39. };
  40.  
  41. example.fill = function (context) {
  42. context.beginPath();
  43. context.setFillStyle('#108ee9');
  44. context.rect(20, 20, 150, 100);
  45. context.fill();
  46. };

实现的过程:

1)前端:

  1. <view class="page">
  2. <view class="page-section">
  3. <image style="background-color: #eeeeee; width: {{windowWidth}}px; height:{{windowHeight}}px;"
  4. mode="aspectFit"
  5. src="{{src}}" onError="imageError"
  6. onLoad="imageLoad" />
  7. </view>
  8. </view>
  1. Page({
  2. data: {
  3. src: '',
  4. windowHeight:488,
  5. windowWidth:298,
  6. },
  7. onLoad(query) {
  8. dd.getSystemInfo({
  9. success: (res) => {
  10. this.setData({
  11. windowHeight:res.windowHeight-32,
  12. windowWidth:res.windowWidth-26,
  13. src:query.src+'&imageWidth='+(res.windowWidth-26)+'&imageHeight='+(res.windowHeight-26)
  14. });
  15. console.log(query.src+'&imageWidth='+(res.windowWidth-26)+'&imageHeight='+(res.windowHeight-26));
  16. }
  17. });
  18. },
  19. imageError: function (e) {
  20. console.log('image3 发生错误', e.detail.errMsg)
  21. },
  22. imageLoad: function (e) {
  23. console.log('image 加载成功', e);
  24. }
  25. });

2)后端(ASP.NET CORE 3.1):

 搞定!

钉钉小程序不用canvas在后端绘图前端用image标签获取图片的实践的更多相关文章

  1. 微信小程序 在canvas画布上划动,页面禁止滑动

    要实现微信小程序 在canvas画布上划动,页面禁止滑动,不仅要设置disable-scroll="true",还要要给canvas绑定一个触摸事件才能生效. <canvas ...

  2. 微信小程序-基于canvas画画涂鸦

    代码地址如下:http://www.demodashi.com/demo/14461.html 一.前期准备工作 软件环境:微信开发者工具 官方下载地址:https://mp.weixin.qq.co ...

  3. 开发H5程序或者小程序的时候,后端Web API项目在IISExpress调试中使用IP地址,便于开发调试

    在我们开发开发H5程序或者小程序的时候,有时候需要基于内置浏览器或者微信开发者工具进行测试,这个时候可以采用默认的localhost进行访问后端接口,一般来说没什么问题,如果我们需要通过USB基座方式 ...

  4. 小程序利用canvas 绘制图案 (生成海报, 生成有特色的头像)

    小程序利用canvas 绘制图案 (生成海报, 生成有特色的头像) 微信小程序生成特色头像,海报等是比较常见的.下面我来介绍下实现该类小程序的过程. 首先选择前端来通过 canvas 绘制.这样比较节 ...

  5. 钉钉/支付宝小程序和微信小程序的区别及转换方案

    最近接到一个工作任务,是把钉钉小程序转微信小程序... 对,居然还有这种操作,之前只听过微信小程序转支付宝小程序的,钉钉转微信是什么鬼

  6. 兼容小程序的canvas画图组件jmGraph

    基于CANVAS的简单画图组件让你用类似于dom的方式,在canvas上画图,感觉会不会很爽. 主页:http://graph.jm47.com/示例:http://graph.jm47.com/ex ...

  7. 微信小程序之canvas绘制海报分享到朋友圈

    绘制canvas内容 首先,需要写一个canvas标签,给canvas-id命名为shareBox <canvas canvas-id="shareBox"></ ...

  8. 微信小程序之canvas 文字断行和省略号显示

    文字的多行处理在dom元素中很好办.但是canvas中没有提供方法,只有通过截取指定字符串来达到目的. 那么下面就介绍我自己处理的办法: wxml: <canvas canvas-id='wor ...

  9. 关于微信小程序使用canvas生成图片,内容图片跨域的问题

    最近有个项目是保存为名片(图片),让用户发送给朋友或朋友圈,找了很多方案都不适用,绞尽脑汁之后还是选了使用canvas,但是用这玩意儿生成图片最大的缺点就是,如果你的内容中有图片,并且这个图片是通过外 ...

随机推荐

  1. PAT甲级——1012 The Best Rank

    PATA1012 The Best Rank To evaluate the performance of our first year CS majored students, we conside ...

  2. 3.redis kyes命令

    Keys命令 1.1设置key的生存时间 Redis在实际使用过程中更多的用作缓存,然而缓存的数据一般都是需要设置生存时间的,即:到期后数据销毁. EXPIRE key seconds         ...

  3. iOS动画效果集合、 通过摄像头获取心率、仿淘宝滑动样式、瀑布流、分类切换布局等源码

    iOS精选源码 动画知识运用及常见动画效果收集 较为美观的多级展开列表 MUImageCache -简单轻量的图片缓存方案 iOS 瀑布流之栅格布局 一用就上瘾的JXCategoryView iOS ...

  4. OpenCV 特征描述

    #include <stdio.h> #include <iostream> #include "opencv2/core/core.hpp" #inclu ...

  5. IntelliJ IDEA 的便捷操作性

    快捷键 说明 IntelliJ IDEA 的便捷操作性,快捷键的功劳占了一大半,对于各个快捷键组合请认真对待.IntelliJ IDEA 本身的设计思维是提倡键盘优先于鼠标的,所以各种快捷键组合层出不 ...

  6. spring配置ConcurrentMap实现缓存

    spring本身内置了对Cache的支持,本次记录的是基于Java API的ConcurrentMap的CacheManager配置. 1.xml文件中增加命名空间 <beans xmlns=& ...

  7. AtomicBoolean介绍

    网上资料: 使用 AtomicBoolean 高效并发处理 "只初始化一次" 的功能要求: 1 privatestatic AtomicBoolean initialized = ...

  8. log4j.properties和log4j.xml配置

    >>>>1. 概述<<<< 1.1. 背景 在应用程序中添加日志记录总的来说基于三个目的:监视代码中变量的变化情况,周期性的记录到文件中供其他应用进行统 ...

  9. google搜索运算符+101个Google技巧 - Google技巧的终极收集

    下面内容整理自网络 搜索运算符 如果您使用我们的基本搜索技巧后,并未找到想要搜索的内容,可以尝试使用搜索运算符.您只需在 Google 搜索框中将这些符号或字词添加到搜索字词中,即可更好地掌控要显示的 ...

  10. windows的各种扩展名详解

    Windows系统文件按照不同的格式和用途分很多种类,为便于管理和识别,在对文件命名时,是以扩展名加以区分的,即文件名格式为: 主文件名.扩展名.这样就可以根据文件的扩展名,判定文件的种类,从而知道其 ...