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;
});