Inputタグで選択されたファイル画像をcanvasを使用して一度ビットマップに変換してから、

png形式に変換します。

 

async function ImgToPng(fileData){

 

    var image_bitmap = await window.createImageBitmap(fileData); // ビットマップ画像を作成

    var canvas=document.createElement('canvas'); // キャンバスを作成

    canvas.width=image_bitmap.width; // キャンバスの幅を指定

    canvas.height=image_bitmap.height; //キャンバスの高さを指定

    canvas.getContext('2d').drawImage(image_bitmap,0,0); //キャンバスに画像を描画

    return  await new Promise((resolve) => canvas.toBlob(resolve)); // PNG形式に変換しBlobを返す

 

}

 

canvas.toBlobは直接awaitで実行できないため、Promise使ってラップします。

 

ネットで調べたところ変換方法はcanvas.toDataURL()を使う方法もあります。