uniapp 开发微信小程序用相机拍照后使用Canvas翻转图片

这篇具有很好参考价值的文章主要介绍了uniapp 开发微信小程序用相机拍照后使用Canvas翻转图片。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

傻逼了,兄弟们,uniapp和微信都有一个专门调用手机拍照和相册的api ,拍完照片后会自动根据设备方向翻转,从而始终是正面。如果还想看canvas翻转下面也有

uni.chooseMedia({
  mediaType: ['image'],
  sourceType: ['album','camera'],
  sizeType:  ['compressed'],
  camera: 'back',
  success: (res) => {
    // 成功后处理事件
  }
})
                        

 

 离谱,canvas实例要在onReady里面定义,我找了几个小时才找到。

onReady() {
   this.canvas = uni.createCanvasContext('myCanvas', this)
},

 由于开发需求是要竖着拍照横着返回,所以就必须要旋转图片上传,不然图片上传是竖着,获取也是竖着的,影响观看。

这里我用的是网上找到的画布这个方法,改进了一下画布翻了一倍就是乘以2,清晰度还行吧。

	<canvas class="canvas" :style="'width:' + canvasWidth * 2 + 'px;height:' + canvasHeight* 2 + 'px'" canvas-id="myCanvas"
			:width="canvasWidth" :height="canvasHeight" id="myCanvas"></canvas>

uni.canvasToTempFilePath(object, component) | uni-app官网 uniapp 官网

小程序旋转canvas,uni-app,javascript,开发语言,vue,微信小程序

因为画布翻倍了,输出翻倍就正好覆盖,就是最后输出图像的宽高像素翻倍。

这也是别人改的,我就拿来用了,也算是学到了。我之前确实没想到还能这么搞。

imgRotate(fileUrl) {

		console.log('imgRotate', fileUrl)
		//获取图片信息,获取图片的宽高,也可省略这一步
		uni.getImageInfo({
			src: fileUrl,
			success: res => {
			console.log('getImageInfo', res)
						
            // 逆时针反转90度以画布0,0为中心反转
			this.canvas.rotate(-90 * Math.PI / 180);
            //图片资源位置 y轴 x轴 height width
			this.canvas.drawImage(fileUrl,-res.width,0, res.width, res.height);
            this.canvas.draw()
			setTimeout(() => {
              uni.canvasToTempFilePath({
                canvasId: 'myCanvas',
                x: 0,
                y: 0,
                quality: 1,
                width: res.height,
                height: res.width,
            //翻倍输出宽度
                destWidth: res.height * 2,
            //翻倍输出高度
                destHeight: res.width * 2,
                success: function (res) {
                  console.log(res.tempFilePath);
                  // 微信上传api
                  wx.uploadFile({
                    url: "填写你的上传地址",
                    filePath: res.tempFilePath,
                    name: 'file',
                    success: (val) => {
                      // 成功后要做的业务
                      
                    },
                    fail: (err) => {
                      uni.showToast({
                        title: '上传失败'+err,
                        icon: 'none',
                        duration: 1200
                      })
                    }
                  })
                },
                fail: function (res) {
                  console.log(res);
                  uni.showToast({
                    title: '拍照失败'+res,
                    icon: 'none',
                    duration: 1200
                  })
                }
              });
              },400)

故居人何在,唏嘘满头白文章来源地址https://www.toymoban.com/news/detail-639368.html

到了这里,关于uniapp 开发微信小程序用相机拍照后使用Canvas翻转图片的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • uniapp开发微信小程序使用base64进行加密解密

    涉及场景:uniapp开发微信小程序需要使用base64进行加解密。 涉及依赖包:base-64,utf8 涉及到问题描述:首先尝试引入js-base64这个包,经过尝试后发现无法使用,为什么无法使用不晓得,没研究出来。再搜索中找到一篇关于《uniapp使用base64》的文章,文章中使用base64这个包,经

    2024年02月16日
    浏览(60)
  • 使用uniapp开发微信小程序的人脸采集功能/人脸识别功能

    ✅作者简介:大家好我是瓜子三百克,励志成为全栈工程师的一枚程序猿,也是喜欢在学习和开发中记录笔记的小白博主! 📃个人主页:瓜子三百克的主页 🔥系列专栏:uniapp前端 💖如果觉得博主的文章还不错的话,请点赞👍+收藏⭐️+留言📝支持一下博主哦🤞 本篇文章

    2024年02月11日
    浏览(60)
  • uniapp 使用canvas画海报(微信小程序)

    效果展示:  项目要求:点击分享绘制海报,并实现分享到好友,朋友圈,并保存 先实现绘制海报   下面是海报下面的分享弹窗 因为分享到朋友圈实在没找到有使用自定义按钮的可能,所以还是需要点击右上角胶囊    以上就是画海报以及分享的全部过程了,另有一个点:

    2024年02月13日
    浏览(65)
  • uniapp中使用原生canvas标签绘制视频帧来模拟拍照,拍照后将图绘制在另外一个canvas上编辑画图,这样反复操作

    uniapp中使用原生canvas标签绘制视频帧来模拟拍照,拍照后将图绘制在另外一个canvas上编辑画图,这样反复操作会导致ios系统上白屏,canvas2d上下文为null,经查阅找到相关资料 IOS 创建Canvas过多导致getContext(‘2d’) 返回null 总 Canvas 内存使用超过最大限制 (Safari 12) 从一个 bug 中延伸

    2024年02月10日
    浏览(44)
  • uniapp开发微信小程序 ,使用本地图片做背景图应该怎么处理

    注意,把获取可用的base64地址的方法放在computed 里面是非常必要的。如果放在methods里面初次进入这个页面时候会报错(除了首页之外)。这里就是跟methods和computed特性有关。

    2024年02月16日
    浏览(62)
  • uniapp微信小程序使用canvas自定义分享名片

    template js 需要分享的页面加上onShareAppMessage,在methods中定义绘画方法createCanvasImage css这里是画布的内容设置

    2024年02月14日
    浏览(57)
  • uniapp 开发微信小程序使用TCP/UDP通信以16进制发送数据

    在微信小程序中实现像网络调试工具按16进制发送的功能。 如下图调试工具接收到微信小程序发送的16进制数据 以上代码是在 uniapp 开发工具进行编写,然后编译 运行到小程序模拟器才能正常使用。如果直接用微信开发者工具编译,会报错: ReferenceError: Buffer is not defined 源码

    2024年02月15日
    浏览(48)
  • uniapp开发微信小程序实现语音识别,使用微信同声传译插件,

    第一步:在微信小程序管理后台:“设置”-》“第三方设置”-》“插件管理”中添加插件。 但是这个地方,没有搜索到插件,就到微信服务市场 搜索到以后添加到需要的小程序里面,然后返回管理中心查看,就可以看到了 第二步:在配置文件中引入插件 第三步:在需要使

    2024年02月05日
    浏览(52)
  • uniapp开发微信小程序使用painter将页面转换为图片并保存到本地相册

    我使用到painter的原因是,在uniapp开发微信小程序时,需要将一个页面的内容转换成图片保存到本地相册。 起初在网上找到很多都是在 uniapp 中使用 html2canvas 将 网页转换成图片再 jspdf 将图片转换为pdf ,但是这种方式在小程序环境不支持,只在 h5 环境下适用, 当然这个方式是

    2024年02月12日
    浏览(44)
  • uniapp开发微信小程序,使用微信同声传译插件,实现语音识别输入文本

    第一步:现在微信小程序管理后台:“设置”-》“第三方设置”-》“插件管理”中添加插件。 但是这个地方,没有搜索到插件,就到微信服务市场去搜微信服务市场  搜索到以后添加到需要的小程序里面,然后返回管理中心查看,就可以看到了 第二步:在配置文件中引入插

    2024年02月09日
    浏览(70)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包