(小程序)canvas 绘制图片做背景(新手向)

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

小程序绘制图片为背景,首先我们需要把图片先下载下来(这里最好是封装一个函数,因为背景不可能只有一张的)下面是代码,一般直接复制就能使用,有可能需要微调文章来源地址https://www.toymoban.com/news/detail-724954.html

// 获取图片信息
getImageInfo(image) {
    return new Promise((req, rej) => {
    uni.getImageInfo({
     src: image,
     success: function (res) {
     req(res);
    },
   });
 });
},

// 使用方法
let headerPhtot = await this.getImageInfo(this.userInfo.avatarUrl);
// 这里会返回一个对象 path是图片地址(返回一个本地文件 http://开头)就可以在canvas ctx.drawImage使用
let top = 0;
let left = 0;
let canvasW = 200;
let canvasH = 200;
ctx.drawImage(headerPhtot.path, left, top, canvasW, canvasH);

//裁剪图片使用
let shareBg = this.getAspectFillModelInfo(this.brickUrlData.width, this.brickUrlData.height, 68, 91, 613, 992);
ctx.drawImage(this.brickUrlData.path, shareBg.dx, shareBg.dy, shareBg.dw, shareBg.dh, shareBg.sx, shareBg.sy, shareBg.sw, shareBg.sh); // drawImage(图片路径,x,y,绘制图像的宽度,绘制图像的高度)

// 裁剪图片
getAspectFillModelInfo(oWidth, oHeight, x, y, width, height) {
  // 高比宽大 宽是短边
  let aspect = oHeight / oWidth;
  let sw = width;
  let sh = aspect * sw;
  let dx = 0;
  let dy = (oHeight - height * (oHeight / sh)) / 2;
  let dw = oWidth;
  if (aspect < 1) {
    // 高比宽小 高是短边
    aspect = oWidth / oHeight;
    let scale = aspect * height; // 宽度比例
    sh = height;
    sw = width; //11440
    dw = (width / scale) * oWidth;
    dy = 0;
    dx = (oWidth - width * (oWidth / scale)) / 2;
  }
  return {
    dx, // 可选。开始剪切的 x 坐标位置。
    dy, // 可选。开始剪切的 y 坐标位置。
    dw: dw, // 可选。被剪切图像的宽度。
    dh: oHeight, //可选。被剪切图像的高度。
    sx: x, // 在画布上放置图像的 x 坐标位置。
    sy: y, // 在画布上放置图像的 y 坐标位置。
    sw, // 可选。要使用的图像的宽度。(伸展或缩小图像)
    sh, //可选。要使用的图像的高度。(伸展或缩小图像)
  };
},


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

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

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

相关文章

  • 微信小程序新版canvas绘制图片方法

    今天在做项目使用到了canvas绘制二维码,发现以前的方法被弃用了。 wxml: 如果想要绘制需要将起临时存储起来,写入成功的就可以进行绘制了。(如果是点击展示二维码,最好是先将数据写到onLoad事件中,在将要绘制的东西写到点击事件中去,在点击事件中去获取数据);

    2024年02月11日
    浏览(45)
  • 微信小程序 新版canvas绘制图片方法

    截至2022.12.23 修改日 微信小程序开发文档介绍不全,导致很多用户绘制图片不显示或失败,因此写下截至目前的可行方案 如果新手不熟悉canvas,先看下小程序官方文档 可运行案例: wxml: js:

    2024年02月12日
    浏览(46)
  • 微信小程序canvas画布绘制base64图片并保存图片到相册中

    WXML部分: 样式可以根据自己需求自行调整 canvas绘制成图片部分: 这就将图片绘制出来了。 首先获取用户相册权限。 保存功能:

    2024年02月13日
    浏览(44)
  • 小程序 canvas 绘制文本实现换行,设置字距

    在使用 canvas 绘制文本的过程中,对于很长的文本,canvas 不能自动的进行换行处理,另外小程序无法像 web 端那样很方便的使用 svg,所以在此做一个简单的记录。 在实现之前简单的分析一下,要实现文本换行功能,在 canvas 中我们使用的是 fillText(text, x, y, maxWidth) 方法, 假设

    2024年02月04日
    浏览(33)
  • uni-app,关于 canvas 在 app,小程序, h5中,实现绘制,保存本地图片

    没有套路,没有难读的文档,直接看代码 html部分 js部分

    2024年02月13日
    浏览(63)
  • Canvas绘制毛玻璃背景分享海报

    最近重新设计了分享海报,用毛玻璃作为背景,使整体更有质感,如果没有用到canvas,毛玻璃效果其实很好实现,给元素添加一个滤镜即可(比如:filter: blur(32px)),但是实践的过程中发现,canvas在IOS端一直没有效果,查了一个文档发现IOS端不支持filter。。。有点想骂人。。

    2024年02月12日
    浏览(37)
  • 小程序背景图片设置方法

    3、利用image标签做到设置背景图片 思路:我们只要利用css中的z-index改变层级既可做到变成背景图的样子 看代码 wxml: wxss: 这样我们也可以做到背景图的效果。 相关推荐:小程序开发教程 以上就是小程序背景图片设置方法的详细内容,更多请关注群英网络其它相关文章!

    2024年02月07日
    浏览(61)
  • 微信小程序背景图片设置

    问题  :微信小程序通过css:background-image引入背景图片失败 [渲染层网络层错误] pages/wode/wode.wxss 中的本地资源图片无法通过 WXSS 获取,可以使用网络图片,或者 base64,或者使用image/标签 解决方法微信小程序在使用background-image设置背景图时报错:渲染层网络层错误_index.wxss 中的

    2024年02月04日
    浏览(60)
  • 微信小程序 背景图片设置

            微信小程序设置背景图片时,有两种方法:         第一:直接在.wxss中中使用 “background-image:url()” 设置背景图片,但是这种加载背景图片的方法存在一个问题,就是所加载的图片只能是 网络图片 或 base64 图片,是不可以加载本地图片的。 但是使用base64图片

    2024年02月11日
    浏览(66)
  • 【微信小程序】不支持使用本地图片设置背景图片解决方法

    在小程序样式文件中,如果设置背景图片的路径用的是本地的,就会报错并且显示不出来;如果在wxml文件中使用图片的本地路径作为背景图,则微信开发者工具中可以显示出来,但是运行到手机上显示不出来,解决方法如下: 方法一: 使用网络图片 方法二: 在线搜索图片

    2024年02月11日
    浏览(93)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包