关于vue二进制转图片显示问题 后端返回的是byte[]数组

下面是关于vue二进制转图片显示问题的完整攻略。

问题描述

在开发过程中,有时后端返回的数据可能是一个byte[]数组,而我们需要将其转换为图片进行展示。但是直接将该数组作为图片src的值加载时,浏览器会提示无法识别的图片格式。那么该如何处理这个问题?

解决方案

方案一

使用base64编码将二进制数据转换为base64字符串再进行展示。

// 将byte[]数组转换为base64字符串
let base64img = btoa(String.fromCharCode.apply(null, byteArray));
// 将base64字符串作为图片src的值进行展示
<img :src="'data:image/jpeg;base64,'+ base64img" />

这种方案的好处是比较简单易懂,适合处理较小的图片。但是对于大图片,会导致页面加载速度变慢。

方案二

使用Blob对象将二进制数据转换为图片再进行展示。

// 将byte[]数组转换为Blob对象
let blob = new Blob([byteArray], { type: 'image/jpeg' });
// 将Blob对象转换为URL,用于设置图片src
let objectUrl = URL.createObjectURL(blob);
// 将URL作为图片src的值进行展示
<img :src="objectUrl" />

这种方案的好处是对于大图片性能比较好,但是需要注意的是需要手动释放URL以避免内存泄漏。

示例说明

下面是两个示例说明,分别展示了上述两种方案的具体使用方法。

示例一

// 假设后端返回的数据为byteArray
let base64img = btoa(String.fromCharCode.apply(null, byteArray));
// 将base64字符串作为图片src的值进行展示
<img :src="'data:image/jpeg;base64,'+ base64img" />

示例二

// 假设后端返回的数据为byteArray
let blob = new Blob([byteArray], { type: 'image/jpeg' });
let objectUrl = URL.createObjectURL(blob);
// 将URL作为图片src的值进行展示
<img :src="objectUrl" />
// 在组件销毁时手动释放URL
beforeDestroy() {
  URL.revokeObjectURL(this.objectUrl);
}

以上就是关于vue二进制转图片显示问题的完整攻略,希望能够对你有所帮助。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:关于vue二进制转图片显示问题 后端返回的是byte[]数组 - Python技术站

(0)
上一篇 2023年5月29日
下一篇 2023年5月29日

相关文章

  • vuex state中的数组变化监听实例

    关于Vuex state中的数组变化监听,可以使用Vue提供的watch方法监听数组变化。 先来简单介绍一下实现的方法: 在state定义的数组数据前加上$符号,例如:$list 监听数据的方式:    // 监听数据变化    watch: {        ‘$store.state.list’: {            handler: functi…

    Vue 2023年5月29日
    00
  • 错误码NET::ERR_CERT_DATE_INVALID证书已过期解决方法?

    针对错误码NET::ERR_CERT_DATE_INVALID,我们可以按照以下攻略进行解决。 1. 确认证书是否已过期 这个错误的原因通常是因为网站的 SSL/TLS 证书已过期。所以可以先尝试确认一下证书是否确实已经过期。方法是: 在 Chrome 的地址栏输入被判定错误的网址; 点击后面的“高级”; 在“安全性”模块中点击“证书”; 在弹出的“证书”窗…

    Vue 2023年5月28日
    00
  • Vue input控件通过value绑定动态属性及修饰符的方法

    Vue input控件通过value绑定动态属性及修饰符的方法一般分为以下几个步骤: 1. 绑定value属性 首先,在input标签上通过v-bind或简写的“:”符号绑定value属性,例如: <input type="text" v-bind:value="message" /> 其中,message…

    Vue 2023年5月27日
    00
  • vue代码分割的实现(codesplit)

    Vue.js 是一款流行的构建用户界面的 JavaScript 框架。它具有优雅的 API 设计、高效的渲染和灵活的数据绑定,目前已经成为了不少前端工程师喜欢的框架之一。其中,Vue 中的代码分割是进行性能优化时经常用到的一个关键概念。 代码分割能够将你的代码库划分为更小的块单元,以便实现懒加载 (lazy-loading) 和按需加载 (on-demand…

    Vue 2023年5月29日
    00
  • vue ssr 实现方式(学习笔记)

    这里是详细讲解“vue ssr 实现方式(学习笔记)”的完整攻略。 背景 前端框架的出现,让前端的工程师能够愉快的写代码,但是一个问题却在诞生:SEO。如果你的网站有 SEO 的要求,即搜索引擎优化,单纯的用前端框架写代码是无法满足这个需求的。那么怎么解决这个问题呢?这里我们就提到了 ssr。 什么是 SSR SSR,即“服务端渲染”,是指将数据通过服务端获…

    Vue 2023年5月27日
    00
  • 深入理解vue路由的使用

    深入理解 Vue 路由的使用 Vue 的路由是一个非常重要的特性,可以方便地实现单页面应用(SPA),而不需要页面刷新。本文将介绍如何使用 Vue 路由,包括路由的基本使用、动态路由、嵌套路由和路由钩子函数等内容。 基本用法 首先,你需要安装 vue-router 插件: npm install vue-router 然后,在 Vue 项目中使用路由,需要在…

    Vue 2023年5月27日
    00
  • Vue实现双向绑定的方法

    Vue实现双向绑定的方法主要有以下两种: 1. 使用v-model指令 Vue中提供了v-model指令,这是用于实现表单元素双向绑定的最简单方式。v-model可以用于input、textarea、select等表单元素,可以简洁地实现数据的双向绑定,不需要手动监听事件。 我们来看一个输入框的示例,实现输入框中的内容实时展示在页面上,同时页面上对该值的修改…

    Vue 2023年5月28日
    00
  • vue-cli或vue项目利用HBuilder打包成移动端app操作

    下面就详细讲解一下如何将vue-cli或vue项目通过HBuilder打包成移动端app的操作攻略。 1. 安装HBuilder 首先,我们需要下载并安装HBuilder。HBuilder是一个支持多平台的HTML5开发工具,内置了多款开发框架和常用的UI组件,支持打包成Android和iOS原生应用。 你可以在DCloud官网上下载HBuilder:htt…

    Vue 2023年5月27日
    00
合作推广
合作推广
分享本页
返回顶部