画像ファイル(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")
});
})();