小程序转发图片尺寸如何设置
短信预约 -IT技能 免费直播动态提醒
本篇内容介绍了“小程序转发图片尺寸如何设置”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!
1. 创建Canvas画布
前端要裁剪图片,我们首先就要想到用Canvas,写H5如此,微信小程序当然也是如此。
<canvas style="position: absolute; top: -1000px; left: -1000px; width: 640px; height: 640px; background: #000" canvas-id="canvas"></canvas>
我们要用到的canvas当然不能直接在页面中显示,所以可以使用负定位值的方式将其隐藏。
下载网络图片
我们可以使用wx.downloadFile()来下载网络图片,也可以使用wx.getImageInfo(),因为我们这里需要获取到图片的宽高,所以这里就要用到wx.getImageInfo()来进行图片的下载。
wx.getImageInfo({class="lazy" data-src: "", // 这里填写网络图片路径success: (res) => {// 这个是我封装的裁剪图片方法(下面将会说到)clipImage(res.path, res.width, res.height, (img) => {console.log(img); // img为最终裁剪后生成的图片路径,我们可以用来做为转发封面图});}});
3. 裁剪图片并导出
以下是我封装的专门用于裁剪图片比例大于 5:4 的图片,裁剪方式是截取图片中间部分(当然你也可以试着写下裁剪小于 5:4 的图片):
const clipImage = (class="lazy" data-src, imgW, imgH, cb) => { // ‘canvas’为前面创建的canvas标签的canvas-id属性值let ctx = wx.createCanvasContext('canvas');let canvasW = 640, canvasH = imgH; if (imgW / imgH > 5 / 4) { // 长宽比大于5:4canvasW = imgH * 5 / 4;} // 将图片绘制到画布ctx.drawImage(class="lazy" data-src, (imgW - canvasW) / 2, 0, canvasW, canvasH, 0, 0, canvasW, canvasH)// draw()必须要用到,并且需要在绘制成功后导出图片ctx.draw(false, () => {setTimeout(() => {// 导出图片wx.canvasToTempFilePath({width: canvasW,height: canvasH,destWidth: canvasW,destHeight: canvasH,canvasId: 'canvas',fileType: 'jpg',success: (res) => {// res.tempFilePath为导出的图片路径typeof cb == 'function' && cb(res.tempFilePath);}})}, 1000);})}
“小程序转发图片尺寸如何设置”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注编程网网站,小编将为大家输出更多高质量的实用文章!
免责声明:
① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。
② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341