2020/9/27 0:00:00
来源:不详
作者:未知
我们在分享一个微信小程序到微信群时,会显示一个封面图 ,这个封面图一般是由尺寸要求的,如果不符合尺寸要求,该如何设置呢?下面是这篇对话框微信小程序图片尺寸。
我们知道微信小程序的转发时的封面图片比例固定为5:4,具体内容详见小程序开发文档:
但是,在实际开发时我们有时需要将某张动态请求的网络图片作为转发封面图(比如文章封面),而这张图片又往往不符合 5:4 的比例要求。这时,如果我们直接将这张图片作为封面图其实也是可以的,只不过将长宽比大于 5:4 作为转发封面时,封面下可能会留有部分空白。
因此,为了更加美观,我们必须将图片按照 5:4 比例进行适当地裁剪,而我写本文的目的也正是如此。
1. 创建Canvas画布
前端要裁剪图片,我们首先就要想到用Canvas,写H5如此,微信小程序当然也是如此。
-
<canvas style="position: absolute; top: -1000px; left: -1000px; width: 640px; height: 640px; background: #000" canvas-id="canvas"></canvas>
我们要用到的canvas当然不能直接在页面中显示,所以可以使用负定位值的方式将其隐藏。
2. 下载网络图片
我们可以使用wx.downloadFile()来下载网络图片,也可以使用wx.getImageInfo(),因为我们这里需要获取到图片的宽高,所以这里就要用到wx.getImageInfo()来进行图片的下载。
-
wx.getImageInfo({
-
src: "", // 这里填写网络图片路径
-
success: (res) => {
-
// 这个是我封装的裁剪图片方法(下面将会说到)
-
clipImage(res.path, res.width, res.height, (img) => {
-
console.log(img); // img为最终裁剪后生成的图片路径,我们可以用来做为转发封面图
-
});
-
}
-
});
3. 裁剪图片并导出
以下是我封装的专门用于裁剪图片比例大于 5:4 的图片,裁剪方式是截取图片中间部分(当然你也可以试着写下裁剪小于 5:4 的图片):
-
/* 裁剪封面,
-
src为本地图片路径或临时文件路径,
-
imgW为原图宽度,
-
imgH为原图高度,
-
cb为裁剪成功后的回调函数
-
*/
-
const clipImage = (src, imgW, imgH, cb) => {
-
-
// ‘canvas’为前面创建的canvas标签的canvas-id属性值
-
let ctx = wx.createCanvasContext('canvas');
-
let canvasW = 640, canvasH = imgH;
-
-
if (imgW / imgH > 5 / 4) { // 长宽比大于5:4
-
canvasW = imgH * 5 / 4;
-
}
-
-
// 将图片绘制到画布
-
ctx.drawImage(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);
-
})
-
}
以上就是这篇小程序转发图片尺寸设置 ,需要更多小程序开发内容,可以查看本网站,谢谢。
小程序工具提供多类型商城/门店小程序制作,可视化编辑 1秒生成5步上线。通过拖拽、拼接模块布局小程序商城页面,所看即所得,只需要美工就能做出精美商城。更多小程序请查看:小程序商店
【本站声明】
1、本站文章中所选用的图片及文字来源于网络以及用户投稿,由于未联系到知识产权人或未发现有关知识产权的登记,如有知识产权人并不愿意我们使用,如果有侵权请立即联系。
2、本网站不对文章中所涉及的内容真实性、准确性、可靠性负责,仅系客观性描述,如您需要了解该类商品/服务详细的资讯,请您直接与该类商品/服务的提供者联系。
KESION 科汛软件
KESION 科汛软件是国内领先的在线教育软件及私域社交电商软件服务提供商,长期专注于为企业提供在线教育软件及社交电商SaaS平台解决方案。
公司核心产品云开店SaaS社交电商服务平台、在线教育SaaS服务平台、教育企业数字化SaaS云平台、企微营销助手、私有化独立部署品牌网校和在线教育咨询等。KESION 不断通过技术创新,提供产品和服务,助力企业向数字化转型,通过科技驱动商业革新,让商业变得更智慧!