我有一个返回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�;��。 ���
答案 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()
类型。