implement convertHEIC using native sips

This commit is contained in:
Abhinav 2022-10-14 22:59:02 +05:30
parent c4edd12aff
commit e2f7f7cee2

View file

@ -0,0 +1,21 @@
import { exec } from 'child_process';
import { app } from 'electron';
import path from 'path';
import { readFile, writeFile } from 'promise-fs';
import { nanoid } from 'nanoid';
export async function convertHEIC(
heicFileData: Uint8Array
): Promise<Uint8Array> {
const tempInputFileName = nanoid() + '.heic';
const tempInputOutputName = nanoid() + '.jpeg';
const tempDir = app.getPath('temp');
writeFile(path.join(tempDir, tempInputFileName), heicFileData);
exec(
`sips -s format jpeg ${tempInputFileName} --out ${tempInputOutputName}`
);
const convertedFileData = new Uint8Array(
await readFile(tempInputOutputName)
);
return convertedFileData;
}