How to Display JFIF Binary Image Data in JavaScript
Earlier, I was obtaining images from an API that returned binary data. I wanted to load the returned image into my <img> element below.
<img id="preview" src="">
After reading through the response from the API, I finally realized that I was getting a JFIF (JPEG File Interchange Format) response, a very common format for transmitting/storing photos.
I could tell since the binary data began with this:
����JFIF��� ���
Some great detective work, right?
In order to display this image from an axios call, I set the responseType to blob and ran the data through URL.createObjectURL().
axios.get(API_URL, { responseType: "blob" }).then(resp => {
const url = URL.createObjectURL(resp.data);
document.getElementById("preview").src = url;
});
We can do the same thing using the fetch API.
fetch(API_URL)
.then(resp => resp.data.blob())
.then(blob => {
const url = URL.createObjectURL(blob);
document.getElementById("preview").src = url;
});