今天就跟大家聊聊有关怎么在小程序中实现图片长按识别功能,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。
1。文档中有一句提示:
“图像组件中二维码/小程序码图片不支持长按识别,仅在wx。previewImage中支持长按识别“
2。即便实现了”的天气。previewImage”效果,但依旧是不支持二维码识别的
附录文档位置:小程序图片长按识别
<强>代码设计强>
好在这也是一个不错的知识点,在此进行一番实现流程的记录,欢迎指摘。
①。wxml页面元素设计
作为引导界面,只需放置一张图片即可,以我的代码为例
//#,使用简单的实现方式,直接赋值一个图片链接得了 https://www.yisu.com/zixun/& lt; image  src=" https://img.fetow.com/Public/Index/images/shewm.jpg "模式=皐idthFix” data-src=" https://img.fetow.com/Public/Index/images/shewm.jpg " bindtap=" previewImage "> 图像>
②。js文件实现“previewImage”方法
在对应的js文件中,添加了如下的方法
,/* * ,*图片预览方法 ,*此处注意的一点就是,调用,“wx.previewImage"时,第二个参数要求为数组形式哦 *大敌;当然,做过图片上传功能的应该会注意到,如果涉及到多张图片预览,图片链接数组集合即为参数,网址! ,*/,previewImage:函数(e), { ,var current =, e.target.dataset.src; ,wx.previewImage ({ 当前的才能:目前, url:才能,(目前) ,}) },
③。实现效果
可以发现,下图中是没有“识别图中二维码”的选项
如果发送给了好友或者自行保存后,在微信中打开的并长按的效果如下:
<强> 强>
<强>出现问题:强>
1。服务器上发送过来的图片路径直接插进ctx。drawImage上,手机上显示不了。
解决方案:利用wx。downloadFile将图片下载再保存好这个新图片路径,然后放到ctx。drawImage上
,//下载图片 ,onShow1: function (对象),{=,let _this ; ,_this.setData ({ isShowCav才能:真实 ,}) ,wx.downloadFile ({ url:才能,object.avatarurl, ,,成功:function (sr), { _this.setData({才能 ,,canvasUserPic: sres.tempFilePath ,,}); wx.downloadFile({才能 ,,,url: object.show_img, ,,,成功:function (sres1), { ,,_this.setData ({ ,,,canvasShowImg: sres1.tempFilePath ,,}); ,,_this.canvas(对象); ,,} })才能 ,,} ,}) },
2。帆布出现在手机上的顶层,不管z - index设置多少层都没有用。
解决方案:利用天气:如果=皗{isShowCav}},将画布临时隐藏,要用到的时候再显示。不用再隐藏掉。
3。画布里面的文字如何居中,官方文档虽然提供了案例,但是没有说具体是怎么用的。
解决方案:
const ctx =, wx.createCanvasContext (& # 39; myCanvas& # 39;) ctx.setStrokeStyle(& # 39;红色# 39;) ctx.moveTo (150, 20) ctx.lineTo (150,, 170) ctx.stroke () ctx.setFontSize (15) ctx.setTextAlign(& # 39;左# 39;) ctx.fillText (& # 39; textAlign=左# 39;,,150年,60) ctx.setTextAlign(& # 39;中心# 39;) ctx.fillText (& # 39; textAlign=中心# 39;,,150,,80) ctx.setTextAlign(& # 39;对# 39;) ctx.fillText (& # 39; textAlign=正确# 39;,,150,,100) ctx.draw ()
看完上述内容,你们对怎么在小程序中实现图片长按识别功能有进一步的了解吗?如果还想了解更多知识或者相关内容,请关注行业资讯频道,感谢大家的支持。