【JavaScript】 Canvasの画像をBMPで出力(ダウンロード)する
更新日:2022/08/01
ブラウザのCanvas要素に描画した画像を、BMP形式でダウンロードしてみます。
FirefoxはtoDataURL()でダウンロード可能
CanvasのtoDataURL()は、画像データをPNGやJPEG形式に変換して、データURLを生成してくれます。
FirefoxはtoDataURL()の引数に"image/bmp"を指定すると、BMP形式に変換してくれます。
BMPファイルのダウンロード例
const dataURL = canvas.toDataURL("image/bmp");
const link = document.createElement("a");
link.href = dataURL;
link.download = "image.bmp";
link.click();
URL.revokeObjectURL(link.href);
link.remove();
今回はデモを作成したので、確認してみてください。
デモには、ソースも掲載してありますので、そちらも参考にしてみてください。
Chromeはダメだった
デモをGoogle Chromeで実行すると、image.bmpというファイルをダウンロードできます。
問題なく動く、と思ったのですが…
生成されたデータURLは、次のような文字から始まっていました。
data:image/png;base64,iVBORw0KGgoAAAANSUhEU
image/png となっているので、生成されたのは PNG だったようです。
toDataURL()が image/bmp に対応しているか確認する方法
ブラウザによって使えたり使えなかったりで、本当に困りますね。
とりあえずは、toDataURL()が image/bmp に対応しているか確認する必要がありそうです。
次の記事で紹介しているので、参考にしてみてください。
対応していない時の対処方法
更新日:2022/08/01
関連記事
スポンサーリンク
記事の内容について
こんにちはけーちゃんです。
説明するのって難しいですね。
「なんか言ってることおかしくない?」
たぶん、こんなご意見あると思います。
裏付けを取りながら記事を作成していますが、僕の勘違いだったり、そもそも情報源の内容が間違えていたりで、正確でないことが多いと思います。
そんなときは、ご意見もらえたら嬉しいです。
掲載コードについては事前に動作確認をしていますが、貼り付け後に体裁を整えるなどをした結果動作しないものになっていることがあります。
生暖かい視線でスルーするか、ご指摘ください。
ご意見、ご指摘はこちら。
https://note.affi-sapo-sv.com/info.php
このサイトは、リンクフリーです。大歓迎です。