How ForgeConvert Converts Images
Last reviewed:
ForgeConvert uses a bounded server-side decode-and-encode pipeline. This page describes current production behavior from the capability registry and conversion policy; it does not claim features merely because an underlying image library may support them.
Process overview
- The browser checks selected files and compares their detected type with the chosen source.
- The server validates the requested route, file count workflow, upload size, media type, extension, and signature.
- Format-specific safety rules run, including restrictive SVG checks.
- A verified engine decodes the image under pixel and time limits.
- The selected output encoder creates a new file using ForgeConvert’s fixed policy.
- Small outputs return directly; larger valid outputs use temporary chunked delivery.
- The browser presents individual downloads and a ZIP option for batches.
1. Early browser validation
When a user selects a file, ForgeConvert inspects its initial bytes to detect supported formats. A mismatch appears before conversion, the Convert button remains unavailable, and the interface can offer to switch the source selection to the detected type. This avoids an unnecessary upload but is not the security boundary; the server repeats its own checks.
2. Server-side validation
The server confirms that the source can be decoded, the destination can be encoded, and the two are different. It then checks that the upload exists, is non-empty, is no larger than 8 MB, uses an accepted media type and extension, and matches the expected signature.
HEIC and TGA sometimes arrive with an empty or generic binary media type, so their extension and signature remain mandatory. SVG receives additional checks that reject scripts, active events, external references, embedded media, animation, entities, and other disallowed document features.
3. Bounded decoding
The current pixel ceiling is 40 megapixels and the processing window is 15 seconds. ForgeConvert processes still images only. Animated, multipage, sequence, and multi-image inputs are rejected rather than silently converted incompletely.
Most current formats use the installed Sharp/libvips codecs. HEIC uses a bounded worker-thread decoder; BMP, ICO, and TGA use purpose-specific engines with restricted accepted variants. Engine choice is an implementation detail, while the public promise is the tested capability recorded in the registry.
4. Output encoding policy
| Output | Current policy | Consequence |
|---|---|---|
| JPEG | Quality 82, 4:2:0 chroma subsampling | Compact lossy photo output; no alpha |
| PNG | Lossless encoding | Decoded pixels and alpha preserved; photos may grow |
| WebP | Lossy quality 82 | Web-oriented balance; alpha supported |
| GIF | Static palette, at most 256 colors | Color reduction; no animation output |
| AVIF | Lossy AV1 quality 60, bounded effort | Compact modern output; inspect detail |
| TIFF | Lossless LZW | High-fidelity output that can be large |
| BMP | Uncompressed 24-bit | Large RGB output without alpha |
| ICO | One PNG-backed frame up to 256 × 256 | RGBA icon derivative, not a multi-size package |
| TGA | Uncompressed 32-bit | RGBA output for compatible specialist workflows |
ForgeConvert does not normally resize, crop, or edit pixels. It creates a new encoding at the decoded dimensions, subject to orientation and format-specific constraints.
5. Metadata, orientation, and privacy
Normal outputs do not carry source metadata. For HEIC input, orientation is applied to the decoded pixels while other metadata is removed. Users who need EXIF, IPTC, XMP, capture history, or archival provenance should preserve the source and manage metadata separately.
Uploads are processed temporarily and are not permanently stored as a product feature. Outputs larger than 8 MB can be staged temporarily for chunked download; those temporary downloads expire after ten minutes. Download responses use private, no-store behavior.
6. Output delivery and batch behavior
Users can select up to 20 files. Each file is sent through the route separately, so one failed file can be reported without treating a successful result as the same object. A single result is downloadable directly. Multiple results can be downloaded individually or packaged in the browser as a ZIP.
Generated files may be as large as 64 MB. Outputs above the direct-response threshold are divided into 4 MB transfer chunks and reassembled by the browser, with byte counts checked before the download is offered.
What ForgeConvert deliberately does not do
- It does not claim to repair corrupt images.
- It does not invent transparency or recover discarded quality.
- It does not preserve animation or multipage content.
- It does not generate SVG or HEIC output.
- It does not preserve source metadata in normal output.
- It does not treat every codec exposed by a dependency as production support.
- It does not resize or crop during ordinary conversion.
How to choose and verify a route
- Review the current supported-format matrix.
- Preserve the source, especially if it is animated, multipage, vector, or metadata-rich.
- Select an output that meets the destination’s needs.
- Run one representative file.
- Inspect dimensions, alpha, orientation, color, quality, and size.
- Scale to a batch only after the route passes.
Examples include JPG to PNG for a PNG-only destination, PNG to WebP for a compatible web derivative, SVG to PNG for safe raster delivery, and HEIC to JPG for a broadly compatible photo copy.
Frequently asked questions
Does ForgeConvert resize images during conversion?
No. The current normal conversion policy changes encoding without resizing, cropping, or editing the image.
Does ForgeConvert keep uploaded images permanently?
No. Uploads are processed temporarily for conversion and are not intended for permanent storage.
Does ForgeConvert preserve source metadata?
No. Normal output metadata is stripped. HEIC orientation is applied to decoded pixels, but other source metadata is not retained.