JavaScript のコードから画像ファイルをダウンロードする方法についてです。
Web だったら、通常は画像右クリックで表示されるメニューからダウンロードができますが、諸事情あってその方法が使えなかったので、実装しました。
参考にさせていただいた記事はこちらから。
How to download image in reactjs? – Stack Overflow
https://stackoverflow.com/questions/57056741/how-to-download-image-in-reactjs
サンプルコードはこちら。
downloadImage = (url) => { const matches = url.match(/[A-Za-z0-9\-_]+\.\w+$/); fetch(url, { method: 'GET', headers: {}, }) .then((response) => { response.arrayBuffer().then((buffer) => { const url = window.URL.createObjectURL(new Blob([buffer])); const link = document.createElement('a'); link.href = url; link.setAttribute('download', matches[0]); document.body.appendChild(link); link.click(); }); }) .catch((err) => { console.log(err); }); }
downloadImage()
という関数内で、画像ダウンロードの処理を行っています。
使用する際には、引数にダウンロードしたい画像 URL を渡してください。
上記を実行すると、ダウンロードのダイアログが表示されるので、そこから画像をダウンロードできます!
念のため、ダウンロードした画像を開いてみましたが、画像の一部が壊れていたり、画質が粗くなっていたりもしていませんでした。
また、この方法だと画像だけでなく動画も保存できましたので、もしコード上でURLから画像をダウンロードする際には、この方法がおすすめです。
以上、JavaScript でURLから画像をダウンロードする方法についてでした。
ご参考になれば幸いです。