feat: implémenter le convertisseur HEIC → JPEG
This commit is contained in:
+27
-1
@@ -1,3 +1,29 @@
|
||||
/**
|
||||
* Convertit un fichier HEIC/HEIF en Blob JPEG.
|
||||
* @param {File} file
|
||||
* @returns {Promise<Blob>}
|
||||
* @throws {TypeError} si l'entrée n'est pas un fichier HEIC/HEIF
|
||||
* @throws {Error} si la conversion échoue
|
||||
*/
|
||||
export async function convertHeicToJpeg(file) {
|
||||
throw new Error('Not implemented');
|
||||
if (!(file instanceof File)) {
|
||||
throw new TypeError("L'entrée doit être un objet File");
|
||||
}
|
||||
// Certains iPhone envoient un type MIME vide pour les HEIC — on l'autorise
|
||||
const type = file.type.toLowerCase();
|
||||
if (type !== '' && !['image/heic', 'image/heif'].includes(type)) {
|
||||
throw new TypeError(`Format attendu : HEIC/HEIF. Reçu : ${file.type}`);
|
||||
}
|
||||
|
||||
const result = await heic2any({
|
||||
blob: file,
|
||||
toType: 'image/jpeg',
|
||||
quality: 0.92,
|
||||
});
|
||||
|
||||
const blob = Array.isArray(result) ? result[0] : result;
|
||||
if (!(blob instanceof Blob)) {
|
||||
throw new Error("heic2any n'a pas retourné un Blob");
|
||||
}
|
||||
return blob;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user