このページは、【JavaScript】 Canvasの画像をBMPで出力するのデモページです。

画像ファイル(jpg,png)を読み込み、BMPで出力します。


ソースコード

HTML

<p>画像ファイル(jpg,png)を読み込み、BMPで出力します。</p>
<p><input type="file" id="file_select"></p>
<p><canvas id="canvas"></canvas></p>
<p><button id="button">bmp生成</button></p>

JavaScript

(()=>{
    "use strict";


    // ビットマップファイルダウンロード
    const bitmapDownload = (canvas) =>{

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

    const start = (fileSelectId,canvasId,buttonId,dpm) =>{

        const context = document.getElementById(canvasId).getContext("2d");

        const image = new Image();
        image.onload = ()=>{
            context.canvas.width = image.width;
            context.canvas.height = image.height;
            context.drawImage(image, 0, 0, context.canvas.width, context.canvas.height);
        };
        image.onerror = ()=>alert("読み込めませんでした");

        const reader = new FileReader();
        reader.onload = () => image.src = reader.result

        document.getElementById(fileSelectId)
            .addEventListener("change",function(){
                reader.readAsDataURL(this.files[0]);
            });

        document.getElementById(buttonId)
            .addEventListener("click",()=>bitmapDownload(context.canvas));
    };

    window.addEventListener( "DOMContentLoaded" , ()=>{

        start("file_select","canvas","button")
    });
})();