角度-将字节数组显示为图像

时间:2019-05-03 10:25:08

标签: angular typescript

我有一个返回byte []的api,我想在前台应用程序中将其显示为图像,所以我使用了数据url来显示图像

this.cardBackgroundService.getImage(event.data.entitlementCertificateNumber, "C003").subscribe(data => {
  this.image = data;
  console.log(this.image);
});

<img src="data:image/png;base64,{{image}}"/>

问题是当我在控制台中显示api的响应时,它具有这种格式,并且没有显示为图像

  

�PNG   ``Ou�j�000000000H��a��a````````��a��a��a```````��a��a��a````````��a��a��a```````��a��a``````` `.r。����X��V��QS��\�ۂ��� F.` {lhXnJU��s��iiǯO1�;��。 ���

2 个答案:

答案 0 :(得分:0)

您可以这样显示,它与我合作。

导入import { DomSanitizer } from '@angular/platform-browser';

DomSanitizer添加到constructor(private sanitizer: DomSanitizer) { }

this.cardBackgroundService.getImage(event.data.entitlementCertificateNumber, "C003")
.subscribe(data => {

  let objectURL = 'data:image/png;base64,' + data;
  this.image = this.sanitizer.bypassSecurityTrustUrl(objectURL);
});

在HTML

<img [src]='image' />

答案 1 :(得分:0)

您需要将图像数据转换为dataURL:

const reader = new FileReader();
reader.onload = (e) => this.image = e.target.result;
reader.readAsDataURL(new Blob([data]));

在您的组件中:

<img [src]="image"/>

确保在responseType http get请求中将'blob'设置为getImage()类型。