Je souhaite afficher une image base64 pour une image de profil . L'image est stockée dans la base de données sous forme de données binaires et j'ai converti ces données binaires en base64 à l'aide de btoa (). maintenant, je veux lier cette image base64 à img src J'ai essayé de nombreuses façons, mais cela ne fonctionne pas, aidez-moi s'il vous plaît voici mon code
code profile.ts:
profilePicture(binImage)
{
if(binImage != null)
{
var imageData = btoa(binImage);
//console.log("Base64 Image: ",imageData);
this.displayImage = imageData;
}
}
profil.html code:
<div class="profile-picture big-profile-picture" *ngIf="displayImage">
<img src="data:Image/*;base64,{{displayImage}}">
</div>
Il affiche une erreur "suppression de la valeur de l'URL non sécurisée que safevalue doit utiliser [propriété] = liaison"
Ajouter un désinfectant et désinfecter l'URL avant de l'utiliser dans le modèle
import { DomSanitizer } from '@angular/platform-browser';
...
constructor( private sanitizer: DomSanitizer, .... ) {}
...
profilePicture(binImage)
{
if(binImage != null)
{
var imageData = btoa(binImage);
//console.log("Base64 Image: ",imageData);
this.displayImage = this.sanitizer.bypassSecurityTrustUrl("data:Image/*;base64,"+imageData);
}
}
dans votre modèle juste:
<div class="profile-picture big-profile-picture" *ngIf="displayImage">
<img src="{{displayImage}}">
</div>
Si vous ne souhaitez pas stocker les données deux fois, vous pouvez placer la chaîne de métadonnées dans le code HTML. Cela a fonctionné mieux pour mon scénario
<div class="profile-picture big-profile-picture">
<img src="{{'data:image/png;base64,' + imageData}}">
</div>
Essayez de mettre une adresse publique pour l'URL. Si vous avez un serveur sur lequel ils sont enregistrés, vous devez indiquer l'adresse publique de votre serveur et le mot de passe sur lequel l'image est enregistrée.
Dans votre fichier TypeScript, dans CameraOptions, vous pouvez remplacer FILE_URI
par DATA_URL
comme ceci destinationType: this.camera.DestinationType.DATA_URL