记uni-app移动端签名图片竖版转横版

前景提示:公司uni-app移动端项目流程中有签名环节,形式是整个页面在手机横版显示,完成后转成base64图片保存

页面be like👇

问题:因为是手机横版签名,但是相对视觉还是竖着的,所以最后生成的签名图片是竖着保存的

be like👇

解决思路:再加一个横版canvas隐藏,签名生成图片后,用生成的图片在横版canvas上绘制一遍再生成签名图片

html 复制代码
<canvas :disable-scroll="true" :style="{width: h +'px',height: w +'px'}" canvas-id="tranCacnvs"></canvas>
js 复制代码
// canvas签名转为图片链接
uni.canvasToTempFilePath({
    canvasId: 'handWriting',
    fileType: 'png',
    quality: 1, //图片质量
    success(res) {
        const ctx = uni.createCanvasContext('tranCacnvs', this);
        ctx.translate(h / 2, w / 2); // 修改原点坐标(这里是以中心为坐标原点)
        ctx.rotate((-90 * Math.PI) / 180); // 逆时针旋转90度
        ctx.translate(-w / 2, -h / 2); // 修改原点坐标(这里是已左上角为坐标原点)
        ctx.drawImage(res.tempFilePath, 0, 0, w, h)
        ctx.draw();					
        uni.canvasToTempFilePath({
            canvasId: 'tranCacnvs',
            fileType: 'png',
            quality: 1, //图片质量
            success(data) {
                // 这里返回的data.tempFilePath就是横版的签名图片啦
            }
         })
}})

注意点:旋转的中心点和绘制的起点要注意,我这边是操作前都重置了成我习惯的中心点和原始点了,也可以用其他的逻辑,比如修改图片绘制的参数等

相关推荐
今天的接口写完了吗?5 小时前
uniapp 自定义地图组件(根据经纬度展示地图地理位置)
前端·javascript·uni-app
小钟H呀7 小时前
Uniapp实现多种文件类型上传
uni-app·notepad++
博主逸尘7 小时前
uniApp实战三:自定义插件的实现
uni-app·插件开发
weixin_422201307 小时前
Uniapp组件 Textarea 字数统计和限制
uni-app·统计·限制·输入框·textarea
小段hy7 小时前
uni-app中,调用收货地址方法 uni.chooseAddress()不生效的问题
uni-app
程序员王天8 小时前
微信H5登录怎么实现?uniapp+node.js一篇搞定! 附完整代码
前端·微信·uni-app
Echo-潔9 小时前
在 UniApp 中实现stream流式输出 AI 聊天功能,AI输出内容用Markdown格式展示
前端·uni-app·ai stream 流式输出
走,带你去玩9 小时前
uniapp简单table表
前端·javascript·uni-app
坚果的博客12 小时前
uniapp版本加密货币行情应用
人工智能·华为·uni-app·harmonyos
菲力蒲LY12 小时前
固定表头、首列 —— uniapp、vue 项目
前端·vue.js·uni-app