Created
June 10, 2020 07:54
-
-
Save balvinder294/abd4d976e3b1bbb45156aa704c91f0f8 to your computer and use it in GitHub Desktop.
Method to take a Image url and fetch -- Tekraze.com
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
/* Method called from the UI */ | |
getImage(imageUrl: string) { | |
this.getBase64ImageFromURL(imageUrl).subscribe((base64Data: string) => { | |
this.base64TrimmedURL = base64Data; | |
this.createBlobImageFileAndShow(); | |
}); | |
} | |
/* Method to fetch image from Url */ | |
getBase64ImageFromURL(url: string): Observable<string> { | |
return Observable.create((observer: Observer<string>) => { | |
// create an image object | |
let img = new Image(); | |
img.crossOrigin = "Anonymous"; | |
img.src = url; | |
if (!img.complete) { | |
// This will call another method that will create image from url | |
img.onload = () => { | |
observer.next(this.getBase64Image(img)); | |
observer.complete(); | |
}; | |
img.onerror = err => { | |
observer.error(err); | |
}; | |
} else { | |
observer.next(this.getBase64Image(img)); | |
observer.complete(); | |
} | |
}); | |
} | |
/* Method to create base64Data Url from fetched image */ | |
getBase64Image(img: HTMLImageElement): string { | |
// We create a HTML canvas object that will create a 2d image | |
var canvas: HTMLCanvasElement = document.createElement("canvas"); | |
canvas.width = img.width; | |
canvas.height = img.height; | |
let ctx: CanvasRenderingContext2D = canvas.getContext("2d"); | |
// This will draw image | |
ctx.drawImage(img, 0, 0); | |
// Convert the drawn image to Data URL | |
let dataURL: string = canvas.toDataURL("image/png"); | |
this.base64DefaultURL = dataURL; | |
return dataURL.replace(/^data:image\/(png|jpg);base64,/, ""); | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment