From 032c49541a76a0c78b39e26e8ee493018bae8df6 Mon Sep 17 00:00:00 2001 From: haruyan-hopemucci Date: Sat, 2 Dec 2023 22:23:26 +0900 Subject: [PATCH] =?UTF-8?q?feat:=20heic=E3=83=95=E3=82=A1=E3=82=A4?= =?UTF-8?q?=E3=83=AB=E5=AF=BE=E5=BF=9C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/js/app.js | 24 +++++++++++++++++++++--- 1 file changed, 21 insertions(+), 3 deletions(-) diff --git a/docs/js/app.js b/docs/js/app.js index 400dd83..30c89b4 100644 --- a/docs/js/app.js +++ b/docs/js/app.js @@ -31,12 +31,30 @@ $(function () { setMessage("ペーストされたデータが画像ではありません"); return true; } - setMessage("LGTN画像を生成しています..."); - - generateLGTN(event.clipboardData.items[0]); + const fileType = event.clipboardData.items[0].type + switch (fileType) { + case 'image/heic': + convertHeicToPng(event.clipboardData.items[0]) + break + case 'image/png': + case 'image/jpeg': + generateLGTN(event.clipboardData.items[0]) + break + default: + setMessage("未対応の画像形式です。"); + } }); + const convertHeicToPng = async function (clipboardItem) { + const imageFile = clipboardItem.getAsFile(); + const conversionResult = await heic2any({ blob: imageFile }) + const dataUrl = URL.createObjectURL(conversionResult) + const imgEl = document.querySelector("#pasted-image"); + imgEl.addEventListener("load", drawCanvas); + imgEl.src = dataUrl; + } + const generateLGTN = async function (clipboardItem) { const imageFile = clipboardItem.getAsFile(); const imgEl = document.querySelector("#pasted-image");