在vue.js中渲染base64图像

Tru*_*ran 10 base64 image vue.js

有人可以帮我用vue.js显示Base 64编码的图像吗?

基本上我有一个图像对象:

img = {
  encodedImage: '/9x/4AFQSkZJRgABAXAASABIAAD...'
}
Run Code Online (Sandbox Code Playgroud)

我知道在纯HTML中我可以做类似的事情:

<div>
    <p>Taken from wikpedia</p>
    <img src="data:image/png;base64, iVBORw0KGgoAAAANSUhEUgAAAAUA
AAAFCAYAAACNbyblAAAAHElEQVQI12P4//8/w38GIAXDIBKE0DHxgljNBAAO
    9TXL0Y4OHwAAAABJRU5ErkJggg==" alt="Red dot" />
</div> 
Run Code Online (Sandbox Code Playgroud)

在vue中,我尝试了以下内容:

<img :src="img.encodedImage" />
<img v-bind:src="img.encodedImage" />
<img :src="{{img.encodedImage}}" />
<img v-bind:src="{{img.encodedImage}}" />
Run Code Online (Sandbox Code Playgroud)

这是我的完整vue组件:

<template>
  <div>
    <img :src="img.encodedImage">
  </div>
</template>
<script>

export default {
  props: [ 'img' ]
}
</script>
Run Code Online (Sandbox Code Playgroud)

有人可以帮忙吗?

提前致谢!

ejd*_*313 19

在vue.js中它看起来像:

<img v-bind:src="'data:image/jpeg;base64,'+imageBytes" />
Run Code Online (Sandbox Code Playgroud)

  • 这应该标记为正确答案。 (2认同)
  • 这对我来说有轻微的变化 - &lt;img v-bind:src="imageBytes" /&gt; (2认同)

A1r*_*Pun 14

要在 vue 组件中显示任何数据 URI,您可以执行以下操作:

数据URI方式

<template>
  <img :src="`data:image/png;base64,${img.encodedImage}`" />
</template>
Run Code Online (Sandbox Code Playgroud)
export default {
  props: ['img'],
};
Run Code Online (Sandbox Code Playgroud)

推荐方式

<template>
  <img :src="image" />
</template>
Run Code Online (Sandbox Code Playgroud)
import image from '@/assets/image.png';

export default {
  data() {
    return {
      image,
    };
  },
};
Run Code Online (Sandbox Code Playgroud)


Vin*_*nzo 3

遇到过同样的问题。

改变

img = {  encodedImage: '/9x/4AFQSkZJRgABAXAASABIAAD...'}
Run Code Online (Sandbox Code Playgroud)

img = {  encodedImage: 'data:image/jpg;base64,/9x/4AFQSkZJRgABAXAASABIAAD...'}
Run Code Online (Sandbox Code Playgroud)

应该可以解决问题。