📷
ブラウザ上で HEIC/HEIF を PNG/JPEG に変換する方法
色々探したがこちらの heic2any しかなさそうだった。
heic-convert というものもあったが、こちらは Node.js でないと動かない。
まずはインストールして
npm install heic2any
こんな感じで使う。
import heic2any from 'heic2any';
export const readImage = async (reader: FileReader, imageFile: Blob) => {
if (imageFile.type === 'image/heif' || imageFile.type === 'image/heic') {
const outputBlob = await heic2any({
blob: imageFile,
toType: 'image/jpeg',
});
if (!Array.isArray(outputBlob)) {
reader.readAsDataURL(outputBlob);
}
} else {
reader.readAsDataURL(imageFile);
}
};
ちなみに中身ではこちらの libheif というライブラリを Worker から実行していた。
そしてこれはこちらを JS から実行できるようにしたものっぽい。
Discussion