将base64格式的图片画到canvas上(js和vue两种)

简介: 将base64格式的图片画到canvas上(js和vue两种)

前言:

使用时将里面的base数据替换即可,画布大小进行修改

vue使用时必须在mounted里面、或者点击触发,因为在这个生命周期后才能获取dom元素


js:

// 在 JavaScript 中将 base64 格式的图片画到 canvas 上可以按照以下步骤进行操作:
// 创建一个 Image 对象
var img = new Image();
// 指定 base64 格式的图片作为 Image 对象的 src
img.src = 'data:image/jpeg;base64,/9j/4AAQSkZJRgABAQEAYABgAAD/4QA...';
// 等待图片加载完成
img.onload = function() {
  // 获取 Canvas 元素
  var canvas = document.getElementById('myCanvas');
  // 获取 2D 绘图上下文
  var ctx = canvas.getContext('2d');
  // 将图片绘制到 Canvas 上
  ctx.drawImage(img, 0, 0);
}


vue:

<template>
  <canvas ref="myCanvas"></canvas>
</template>
<script>
export default {
  mounted() {
    // 创建一个 Image 对象
    var img = new Image();
    // 指定 base64 格式的图片作为 Image 对象的 src
    img.src = 'data:image/jpeg;base64,/9j/4AAQSkZJRgABAQEAYABgAAD/4QA...';
    // 等待图片加载完成
    img.onload = () => {
      // 获取 Canvas 元素
      var canvas = this.$refs.myCanvas;
      // 获取 2D 绘图上下文
      var ctx = canvas.getContext('2d');
      // 将图片绘制到 Canvas 上
      ctx.drawImage(img, 0, 0);
    }
  }
}
</script>


总结:

在这两种示例中,都是通过创建一个新的 Image 对象,并将 base64 格式的图片赋值给它的 src 属性。接着使用 onload 事件确保图片加载完成后,获取 Canvas 元素和 2D 绘图上下文,最后调用 drawImage 方法将图片绘制到 Canvas 上。


base64 格式的图片实际上是将图片以文本的形式编码成一长串字符,通过 data URI scheme 的方式嵌入到页面中。因此,当指定这样的字符串作为 Image 对象的 src 时,浏览器会自动解析并将其渲染为图片。然后通过 Canvas 的 2D 绘图上下文的 drawImage 方法,将图片绘制到 Canvas 上。

相关文章
|
JavaScript 前端开发 开发者
VUE 开发——Node.js学习(一)
VUE 开发——Node.js学习(一)
354 2
|
算法 开发者
Moment.js库是如何处理不同浏览器的时间戳格式差异的?
总的来说,Moment.js 通过一系列的技术手段和策略,有效地处理了不同浏览器的时间戳格式差异,为开发者提供了一个稳定、可靠且易于使用的时间处理工具。
906 156
|
数据采集 JavaScript Android开发
【02】仿站技术之python技术,看完学会再也不用去购买收费工具了-本次找了小影-感觉页面很好看-本次是爬取vue需要用到Puppeteer库用node.js扒一个app下载落地页-包括安卓android下载(简单)-ios苹果plist下载(稍微麻烦一丢丢)-优雅草卓伊凡
【02】仿站技术之python技术,看完学会再也不用去购买收费工具了-本次找了小影-感觉页面很好看-本次是爬取vue需要用到Puppeteer库用node.js扒一个app下载落地页-包括安卓android下载(简单)-ios苹果plist下载(稍微麻烦一丢丢)-优雅草卓伊凡
700 7
【02】仿站技术之python技术,看完学会再也不用去购买收费工具了-本次找了小影-感觉页面很好看-本次是爬取vue需要用到Puppeteer库用node.js扒一个app下载落地页-包括安卓android下载(简单)-ios苹果plist下载(稍微麻烦一丢丢)-优雅草卓伊凡
|
JavaScript 前端开发
Moment.js与其他处理时间戳格式差异的JavaScript库相比有什么优势?
Moment.js与其他处理时间戳格式差异的JavaScript库相比有什么优势?
|
JavaScript
如何在 Vue 项目中选择合适的模块格式
【10月更文挑战第20天】选择合适的模块格式需要综合考虑多个因素,没有一种绝对正确的选择。需要根据项目的具体情况进行权衡和分析。在实际选择过程中,要保持灵活性,根据项目的发展和变化适时调整模块格式。
195 7
|
JavaScript 前端开发 编译器
在 Vue 项目中使用 ES 模块格式的优点
【10月更文挑战第20天】在 Vue 项目中使用 ES 模块格式具有众多优点,这些优点共同作用,使得项目能够更高效、更可靠地开发和运行。当然,在实际应用中,还需要根据项目的具体情况和需求进行合理的选择和配置。
289 6
|
JavaScript 前端开发 API
Vue学习笔记3:对比纯JavaScript和Vue实现数据更新的实时视图显示
Vue学习笔记3:对比纯JavaScript和Vue实现数据更新的实时视图显示
|
存储 JavaScript 前端开发
vue尚品汇商城项目-day05【30.登录与注册静态组件(处理公共图片资源问题)+31.注册的业务+登录业务】
vue尚品汇商城项目-day05【30.登录与注册静态组件(处理公共图片资源问题)+31.注册的业务+登录业务】
188 2
|
移动开发 前端开发 JavaScript
js之Canvas|2-1
js之Canvas|2-1
|
JavaScript 前端开发 开发者
JavaScript框架React vs. Vue:一场性能与易用性的较量
JavaScript框架React vs. Vue:一场性能与易用性的较量
469 0

热门文章

最新文章