关于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日

相关文章

  • Vue cli3 库模式搭建组件库并发布到 npm的流程

    下面是Vue cli3 库模式搭建组件库并发布到 npm的完整流程攻略。 1. 准备工作 1.1. 创建项目 首先,我们需要在本地创建一个 Vue 项目,可以通过 Vue CLI 3.x 提供的命令行工具来创建: vue create my-component-library 其中,my-component-library 为你的项目名称。 1.2. 配置项…

    Vue 2023年5月27日
    00
  • vue3.0 CLI – 2.1 – component 组件入门教程

    Vue3.0 CLI – 2.1 – Component 组件入门教程 在Vue.js之中, Component 是构建任何类型的应用程序的核心概念之一。在本教程中,我会向你展示如何使用Vue3.0 CLI来创建并使用组件。我们将在VueCLI中的模板中构建两个简单的组件,并将它们添加到父级组件中。由此深入了解组件的工作原理。 步骤1:创建Vue3.0项目 …

    Vue 2023年5月27日
    00
  • vue 数据遍历筛选 过滤 排序的应用操作

    关于Vue数据的遍历、筛选、过滤以及排序操作,我可以提供如下的完整攻略: 1. 使用v-for进行数据遍历 在Vue中,使用v-for指令可以方便地进行数据遍历,例如: <ul> <li v-for="item in items">{{item}}</li> </ul> 这个例子中,我们使用…

    Vue 2023年5月28日
    00
  • Vue中的Strorage本地化存储详解

    Vue中的Storage本地化存储详解 在Vue中,为了提高Web应用程序的性能,我们通常会使用Storage本地化存储技术来存储和管理数据。Storage对象提供了一种存储键/值对的方式,可以通过键来获取、添加、删除以及查询存储的数据,它提供了两种类型:sessionStorage和localStorage,它们的区别在于存储数据的生命周期不同。 sess…

    Vue 2023年5月27日
    00
  • 浅谈Vuex注入Vue生命周期的过程

    下面我将为大家详细讲解 “浅谈Vuex注入Vue生命周期的过程”的完整攻略。 什么是Vuex Vue.js 是一个轻量级的前端框架,但是当我们需要处理大量的异步请求,或者有大量的组件需要共享数据时,Vue.js 的数据响应式就会显得过于简单。这时我们就需要用到 Vuex。 Vuex 是一个专为 Vue.js 设计的应用状态管理库。它采用集中式存储管理应用的所…

    Vue 2023年5月29日
    00
  • element-ui 限制日期选择的方法(datepicker)

    当使用 element-ui 中的 datepicker 组件进行日期选择时,有时候需要对日期进行限制,例如不能选择过去日期等。下面是针对此种情况的 element-ui 限制日期选择的方法: 1. 使用可选日期范围 最基本的限制方法是使用 picker-options 属性,该属性用于组件设置,以限制 datepicker 组件中可选日期的范围,用户无法选…

    Vue 2023年5月29日
    00
  • vue2.x与vue3.x中自定义指令详解(最新推荐)

    Vue2.x 与 Vue3.x 中自定义指令详解 Vue 提供了自定义指令的功能,可以用来处理 DOM 元素及其属性的问题,使得我们可以更加灵活地操作 DOM 元素。下面就是 Vue2.x 和 Vue3.x 中如何自定义指令的详解。 Vue2.x 中自定义指令 在 Vue2.x 中,我们可以使用 Vue.directive() 方法来自定义指令。 定义指令 …

    Vue 2023年5月27日
    00
  • Vue.js实战之组件之间的数据传递

    Vue.js是一个流行的JavaScript框架,其中组件是Vue.js中最重要的概念之一。在组件化开发中,组件是可重用的代码块,它们通常具有自己的状态和行为,并且可以相互交互。在本文中,我们将探讨Vue.js中组件之间的数据传递。 父组件向子组件传递数据 在Vue.js中,父组件可以通过props向子组件传递数据。props是子组件接收的属性,可以像下面这…

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