How FileFit processes your files
FileFit runs its image and PDF tools in your browser. This page describes the implemented engines and their practical limits; it does not promise lossless results or a universal file-size target.
Image compression and resizing
JPG, PNG, WebP, HEIC, and browser-decodable AVIF inputs are checked by file signature. Image headers and decoded dimensions are checked against the workload limit. A worker uses createImageBitmap and OffscreenCanvas; HEIC decoding uses libheif through heic-to.
The engine searches a bounded set of quality values and, when dimensions are not fixed, smaller pixel sizes. PNG skips the lossy quality search. The selected output is decoded again and its actual MIME type, dimensions, and bytes are checked. An over-limit result remains visibly marked as a failure against that constraint.
JPG does not preserve transparency; PNG and WebP can preserve it. Re-encoding removes metadata and does not guarantee full ICC color fidelity. If an eligible original is returned unchanged because it is smaller, its metadata is unchanged. Animated or multi-image sources are not exported as complete sequences.
PDF operations
pdf-lib handles page copying, extraction, image embedding, proportional page resizing, and serialization. PDF.js renders pages to JPG using local worker, font, and codec assets. PDF-to-JPG deliberately rasterizes pages; the PDF reducer does not.
The reducer attempts an object-stream rewrite only. It does not downsample arbitrary scanned images or promise advanced QPDF/Ghostscript-equivalent compression. The original is returned if the rewrite is larger. Document-feature warnings and signature/encryption checks apply before editing.
Workload and compatibility limits
| Operation | Current limit |
|---|---|
| File input | 40 MB per file |
| Batch | 20 files; 80 MB combined input |
| Images | 32 megapixels; output sides up to 12,000 pixels |
| PDF manipulation | 200 pages |
| PDF page rendering | 30 selected pages; 16 megapixels per page |
| Individual-page PDF extraction | 30 outputs per run |
| Worker processing | 90-second job timeout |
Current module-worker and OffscreenCanvas support is required. Automated testing covers Chromium desktop and a mobile viewport, not every physical browser/device or malformed-file variant. Use smaller batches on low-memory devices.
Privacy and review
No file content is uploaded. Hosting still delivers website assets and may keep normal request logs. Do not treat automatic checks as proof of readability or preservation of every document feature. Preview the result and keep the original.
Read the privacy policy · Browse practical guides · tc98onmazir@gmail.com