@awesome-compressor/browser-compress-image
Version:
🚀 A powerful, lightweight browser image compression library with TypeScript support. Compress JPEG, PNG, GIF images with multiple output formats (Blob, File, Base64, ArrayBuffer) and zero dependencies.
26 lines (24 loc) • 1.26 kB
JavaScript
import { __esm, __export } from "./chunk-BaU5PcSi.js";
import imageCompression from "browser-image-compression";
//#region src/tools/compressWithBrowserImageCompression.ts
var compressWithBrowserImageCompression_exports = {};
__export(compressWithBrowserImageCompression_exports, { default: () => compressWithBrowserImageCompression });
async function compressWithBrowserImageCompression(file, options) {
const { quality, mode, targetWidth, targetHeight, maxWidth, maxHeight, preserveExif = false } = options;
const compressionOptions = {
useWebWorker: true,
initialQuality: quality,
alwaysKeepResolution: mode === "keepSize",
exifOrientation: 1,
fileType: file.type,
preserveExif,
maxSizeMB: file.size * .8 / (1024 * 1024),
maxWidthOrHeight: Math.min(maxWidth || targetWidth, maxHeight || targetHeight) || void 0
};
const compressedBlob = await imageCompression(file, compressionOptions);
if (compressedBlob.size >= file.size * .98) return file;
return compressedBlob;
}
var init_compressWithBrowserImageCompression = __esm({ "src/tools/compressWithBrowserImageCompression.ts"() {} });
//#endregion
export { compressWithBrowserImageCompression, compressWithBrowserImageCompression_exports, init_compressWithBrowserImageCompression };