微信小程序canvas绘制自适应图片,UniApp canvas绘制自适应图片

这篇具有很好参考价值的文章主要介绍了微信小程序canvas绘制自适应图片,UniApp canvas绘制自适应图片。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

 需求:画布宽高为686 * 686 的正方形(可以进行调整根据自身需要来)

            当图片宽度大于高度时,对图片宽度进行裁剪

             当图片高度大于宽度时,对图片高度进行裁剪

             我是用uniApp进行开发的,如果是小程序原生,直接把“uni” 改为 “wx”’

<canvas style="width:686rpx, height:686rpx" type="2d"  canvas-id="firstCanvas" id="firstCanvas"></canvas>

 

init() {
				const query = uni.createSelectorQuery().select('#firstCanvas').fields({
					node: true,
					size: true
				}).exec((res) => {
                    //这里的代码不能少 适配start
					const canvas = res[0].node;
					const ctx = canvas.getContext('2d');
					const dpr = wx.getSystemInfoSync().pixelRatio
					canvas.width = res[0].width * dpr     // 获取宽
					canvas.height = res[0].height * dpr  // 获取高
					ctx.scale(dpr, dpr)
                    //这里的代码不能少 适配end
			
					
					// 绘制背景图片 , 
					ctx.beginPath();
					let imgDrawWidth = this.rpxToPx(686); // 图片绘制区域的宽度 (可以调整)
					let imgDrawHeight = this.rpxToPx(686); // 图片绘制区域的高度(可以调整)
					let canvasRatio = imgDrawWidth / imgDrawHeight;// 图片绘制区域的宽高比例
					let image = canvas.createImage(); //创建iamge实例
					image.src ='https://img0.baidu.com/it/u=1885009107,1276967789&fm=253&app=138&size=w931&n=0&f=JPEG&fmt=auto?sec=1677258000&t=6f5b311ecc21d4c80e5b932b95590ddd';
					// 图片的宽高比例
					image.onload = (e) => {
						console.log("height",image.height)
						console.log("width",image.width)
						let imgRatio = image.width / image.height;
						let dx, dy, dw, dh;
						if (imgRatio <= canvasRatio) {
							dw = image.width;
							dh = image.width;
							dx = 0;
							dy = (image.height - image.width) / 2;					
						} else { 
							dw = image.height;
							dh = image.height;
							dx = (image.width - image.height) / 2
							dy = 0;						
						}
						ctx.drawImage(image, dx, dy, dw, dh, 0,0,imgDrawWidth,imgDrawHeight) // 背景图  
					}
 				})
			},

 文章来源地址https://www.toymoban.com/news/detail-701187.html

			// rpx转px
			rpxToPx(rpx) {
				const screenWidth = uni.getSystemInfoSync().screenWidth
				return (screenWidth * Number.parseInt(rpx)) / 750
			},

到了这里,关于微信小程序canvas绘制自适应图片,UniApp canvas绘制自适应图片的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

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

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

相关文章

  • uniapp中使用canvas,在微信小程序中实现图片缩放移动涂鸦文字

    最近需要一个功能,在微信中编辑图片,实现对图片的涂鸦、加文字、缩放、移动,以下基本能实现该功能。 uniapp中使用画布,实现图片的编辑-批量批改图片 1.初始化画布图片,图片是网络图片,非本地图片,所以需要先获取图片信息,直接使用uni.getImageInfo(如果是本地图

    2024年04月14日
    浏览(37)
  • uniapp 微信小程序 绘制海报,长按图片分享,保存海报

    uView UI 2.0 dcloud 插件市场地址

    2024年02月12日
    浏览(40)
  • 微信小程序canvas画布绘制文字自动换行

    关键步骤介绍: text为需要绘制的文本,通过换行符将text分割为words数组。 basic_height为第一行文本的高度。 get_canvas_row函数根据行宽限制将输入文本转化为不同的行,实现见下文。 text_size为设置的文本高度,h+text_size*j为每行待绘制文本的高度,绘制完成后更新h。 get_canvas_

    2024年01月17日
    浏览(36)
  • 微信小程序使用canvas绘制海报并保存本地相册

    在做微信小程序的时候,很多都会用到生成海报分享功能,刚好最近项目有这个需求,今天就发出来记录下 首先是使用canvas绘制一张海报,微信小程序的canvas有老版本和新版本我是用的是新版本 代码如下 js部分 我的做法是给canvas隐藏了不看到 ,等canvas绘制完毕后导出的url直接赋给

    2023年04月08日
    浏览(29)
  • uniapp+vue3+vant-weapp运行到微信小程序中绘制海报,将画布中绘制base64格式的图片以及长按进行图片的分享和下载

    对于uniapp绘制海报,遇到的难点就是将bas64格式的图片绘制上去,试了很多方式,终于找到了不错的方法, 先将其下载到本地,再进行绘制,以下就是 完整的代码 海报的内容可以根据自己的需求自行更改 ## 下面有一个测试base64格式的图片,可用替换成自己的实际路径 ## 长按

    2024年02月21日
    浏览(78)
  • 微信小程序中使用画布canvas实现动态心电图绘制

    大家好,我是雄雄。 近期,接了个项目,三端(小程序、PC、公众号)同步开发,PC端没的问题,以前一直做的就是PC端,但是小程序和公众号之前没有做过,只能通过这个项目,边做边学了。 人家都说小程序用原生的特别难,大部分都用 uniapp 开发,说是这个方便快捷,还能

    2024年02月09日
    浏览(28)
  • 【微信小程序】图片自适应(高度、宽度自适应)

    wxml: 写入方法bindload=“imageLoad”,该方法为每一个图片自动添加当前图片的实际高度: 加image属性 mode=“widthFix”,使图片高度自适应;

    2024年04月26日
    浏览(29)
  • 【小程序图片水印】微信小程序图片加水印功能 canvas绘图

    感觉有用的话,可以打赏一把么?一毛不嫌少,十块不嫌多 更多详细代码请关注公众号索取(备注:公众号):

    2024年04月29日
    浏览(31)
  • 微信小程序canvas生成图片并保存

    需求: 做一个类似下图的功能。图片内容是动态的,用canvas画出来,生成临时图片,再保存。 实现:  其他使用,查看微信开发文档  

    2024年02月13日
    浏览(36)
  • 在H5、微信小程序中使用canvas绘制二维码、分享海报

    提示:绘制二维码的插件有很多,有些仅支持H5,有些只适用微信小程序,故读者在使用二维码插件前需要先查看插件官方文档,查看其支持的环境 H5中安装qrious插件 引入qrious canvas模板 初始化canvas 二维码绘制并渲染 微信小程序中安装weapp-qrcode插件 引入weapp-qrcode canvas模板

    2024年02月14日
    浏览(32)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包