Categories
JavaScript Answers Nodejs

How to Get an Image from the Web and Encode it into a Base64 String with Node.js?

Spread the love

To get an image from the web and encode it into a base64 string with Node.js, we can use the Axios HTTP client to get the image and save it in a buffer object.

Then we can convert the saved buffer object into a base64 string.

To install Axios, we run:

npm i axios

Then we write:

const axios = require('axios')

const getImage = async () => {
  const image = await axios.get('https://picsum.photos/200/300', {
    responseType: 'arraybuffer'
  });
  const returnedB64 = Buffer.from(image.data).toString('base64');
  console.log(returnedB64)
}
getImage()

to import the axios package.

And then we create the getImage function that calls axios.get to make a GET request to get the image.

The 2nd argument sets the responseType to 'arraybuffer' so the image will be assigned to an array buffer with the image.

Next, we call Buffer.from with image.data to convert the array buffer object to a buffer.

Then we call toString with 'base64' to convert the buffer object to a base64 string and assign that to the returnedB64 variable.

By John Au-Yeung

Web developer specializing in React, Vue, and front end development.

Leave a Reply

Your email address will not be published. Required fields are marked *