|
|
|
|
@@ -1,140 +1,106 @@
|
|
|
|
|
# File Wizard
|
|
|
|
|
|
|
|
|
|
File Wizard is a self-hosted, browser-based utility for file conversion, OCR, and audio transcription. It wraps many cli and python converters aswell as fast-whisper and tesseract ocr.
|
|
|
|
|
[](https://www.paypal.me/unterrikermanu)
|
|
|
|
|
[](https://hub.docker.com/r/loredcast/filewizard)
|
|
|
|
|
[](https://hub.docker.com/r/loredcast/filewizard)
|
|
|
|
|
|
|
|
|
|
A self-hosted, browser-based utility for file conversion, OCR and audio transcription. It wraps common CLI and Python converters (FFmpeg, LibreOffice, Pandoc, ImageMagick, etc.), plus `faster-whisper` and Tesseract OCR.
|
|
|
|
|
|
|
|
|
|

|
|
|
|
|
|
|
|
|
|
[](https://ko-fi.com/loredcast)
|
|
|
|
|
|
|
|
|
|
## Features
|
|
|
|
|
* Convert between various file formats. The system is designed to be extended with any command-line tool (like FFmpeg, ImageMagick, etc.) via a simple `settings.yml` configuration file.
|
|
|
|
|
* **OCR:** Perform Optical Character Recognition on PDFs and images to extract text.
|
|
|
|
|
* **Audio Transcription:** Transcribe audio files into text using Whisper models.
|
|
|
|
|
* **UI:**
|
|
|
|
|
* Clean, responsive, dark-themed interface (hopefully goodlooking idk)
|
|
|
|
|
* Drag-and-drop support for single or multiple files anywhere on the screen, File selection Dialogue
|
|
|
|
|
* **Real-time Updates & History:**
|
|
|
|
|
* Jobs are processed in the background, with the UI updating statuses in real-time.
|
|
|
|
|
* A persistent job history
|
|
|
|
|
- Convert between many file formats; extendable via `settings.yml` to add any CLI tool.
|
|
|
|
|
- OCR for PDFs and images (`tesseract` / `ocrmypdf`).
|
|
|
|
|
- Audio transcription using Whisper models.
|
|
|
|
|
- Simple, responsive dark UI with drag-and-drop and file picker.
|
|
|
|
|
- Background job processing with real-time status updates and persistent history.
|
|
|
|
|
- `/settings` page for configuring conversion tools and OAuth (runs without auth in local mode).
|
|
|
|
|
- CPU-only by default; a `-cuda` image is available for GPU use.
|
|
|
|
|
|
|
|
|
|
* **Configuration:**
|
|
|
|
|
[See the Wiki](https://github.com/LoredCast/filewizard/wiki)
|
|
|
|
|
## Security
|
|
|
|
|
**Warning:** exposing this app publicly without authentication risks arbitrary code execution. Intended for local use or behind a properly configured OAuth/OIDC provider.
|
|
|
|
|
|
|
|
|
|
* A dedicated `/settings` page.
|
|
|
|
|
* OAuth needs to be configured in the `config/settings.yml` file, you can see the default for a reference. By default, it runs without auth in local mode.
|
|
|
|
|
* Currently it only supports cpu operations, but a future image will include the cuda drivers for running whisper on gpu (torch and cuda is large and I didn't want to inflate the image even more)
|
|
|
|
|
## Tech stack
|
|
|
|
|
FastAPI backend, vanilla HTML/JS/CSS frontend (lightweight), Huey for task queuing, SQLite for storage.
|
|
|
|
|
|
|
|
|
|
-----
|
|
|
|
|
|
|
|
|
|
## NOTE
|
|
|
|
|
Run at your own risk! This app is highly vulnerable to arbitrary code executing if left public and without auth. I'm no security expert this app is intended for local use or usage with an OAuth oidc provider!
|
|
|
|
|
|
|
|
|
|
## Tech Stack:
|
|
|
|
|
FastAPI for the Server, Vanilla html, js, css for the frontend (might switch to svelte in the future, kept it light for this), Huey for task queuing and SQlite for any Databse.
|
|
|
|
|
|
|
|
|
|
-----
|
|
|
|
|
|
|
|
|
|
## Installation & Setup
|
|
|
|
|
|
|
|
|
|
### With Docker (Local Build)
|
|
|
|
|
Clone the Repo and make sure docker compose is working on your environment
|
|
|
|
|
|
|
|
|
|
```bash
|
|
|
|
|
git clone https://github.com/LoredCast/filewizard.git
|
|
|
|
|
cd filewizard
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
Startup Docker, initially the settings.yml file is applied, you can edit it.
|
|
|
|
|
For You can edit the .env file for further configuration.
|
|
|
|
|
|
|
|
|
|
Note: Building this image will take some time installing all deps ((mostly texlive)).
|
|
|
|
|
|
|
|
|
|
```bash
|
|
|
|
|
docker compose up --build
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
### With Docker (From Dockerhub) [Recommended]
|
|
|
|
|
I've published 3 images to dockerhub that you can pull:
|
|
|
|
|
## Installation
|
|
|
|
|
|
|
|
|
|
### Recommended — Docker (pull from Docker Hub)
|
|
|
|
|
Images available:
|
|
|
|
|
- `loredcast/filewizard:0.3-latest`
|
|
|
|
|
- `loredcast/filewizard:0.3-small`
|
|
|
|
|
- `loredcast/filewizard:0.3-cuda`
|
|
|
|
|
- `loredcast/filewizard:0.3-small` (omits TeX and other large tools)
|
|
|
|
|
- `loredcast/filewizard:0.3-cuda` (CUDA-enabled)
|
|
|
|
|
|
|
|
|
|
and the previous images without tts:
|
|
|
|
|
- `loredcast/filewizard:latest`
|
|
|
|
|
- `loredcast/filewizard:small`
|
|
|
|
|
|
|
|
|
|
The smaller one has Tex and many large tools left out.
|
|
|
|
|
|
|
|
|
|
Copy the `docker-compose.yml` from the repo into a directory on your machine, adjust the file to your needs and startup docker.
|
|
|
|
|
Copy `docker-compose.yml` from the repo, adjust as needed, then:
|
|
|
|
|
|
|
|
|
|
```bash
|
|
|
|
|
docker compose up -d
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
### Manually
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
**1. Clone the Repository**
|
|
|
|
|
|
|
|
|
|
### Build locally with Docker
|
|
|
|
|
```bash
|
|
|
|
|
git clone https://github.com/LoredCast/filewizard.git
|
|
|
|
|
cd filewizard
|
|
|
|
|
docker compose up --build
|
|
|
|
|
```
|
|
|
|
|
Note: building can be slow (TeX and other dependencies).
|
|
|
|
|
|
|
|
|
|
**2. Create a Virtual Environment & Install Dependencies**
|
|
|
|
|
|
|
|
|
|
### Manual (no Docker)
|
|
|
|
|
```bash
|
|
|
|
|
git clone https://github.com/LoredCast/filewizard.git
|
|
|
|
|
cd filewizard
|
|
|
|
|
python -m venv venv
|
|
|
|
|
source venv/bin/activate # On Windows, use `venv\Scripts\activate`
|
|
|
|
|
|
|
|
|
|
# Make sure you have a requirements.txt file with all dependencies
|
|
|
|
|
source venv/bin/activate # Windows: venv\Scripts\activate
|
|
|
|
|
pip install -r requirements.txt
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
*(**Note:** Dependencies include `fastapi`, `uvicorn`, `sqlalchemy`, `huey`, `faster-whisper`, `ocrmypdf`, `pytesseract`, `python-multipart`, `pyyaml`, etc.)*
|
|
|
|
|
|
|
|
|
|
**3. Configure the Application**
|
|
|
|
|
Copy the default settings file and customize it to your needs. This is where you define your conversion tools and other parameters.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
**4. Run the Web Server**
|
|
|
|
|
This command starts the Webserver and Huey.
|
|
|
|
|
|
|
|
|
|
```bash
|
|
|
|
|
chmod +x run.sh
|
|
|
|
|
./run.sh
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
Dependencies include `fastapi`, `uvicorn`, `sqlalchemy`, `huey`, `faster-whisper`, `ocrmypdf`, `pytesseract`, `python-multipart`, `pyyaml`, etc.
|
|
|
|
|
|
|
|
|
|
-----
|
|
|
|
|
## Configuration & docs
|
|
|
|
|
See the project Wiki for details and examples:
|
|
|
|
|
https://github.com/LoredCast/filewizard/wiki
|
|
|
|
|
|
|
|
|
|
## Usage
|
|
|
|
|
1. Open `http://127.0.0.1:8000`.
|
|
|
|
|
2. Drag & drop or choose files.
|
|
|
|
|
3. Select action: Convert, OCR, or Transcribe.
|
|
|
|
|
4. Track job progress in the History table (updates automatically).
|
|
|
|
|
|
|
|
|
|
1. Open your browser to `http://127.0.0.1:8000`.
|
|
|
|
|
2. **Drag and drop** any file or multiple files onto the page.
|
|
|
|
|
3. A dialog will appear asking you to choose an action: **Convert**, **OCR**, or **Transcribe**.
|
|
|
|
|
4. Alternatively, use the "Choose File" buttons in any of the three sections.
|
|
|
|
|
5. Your job will appear in the "History" table, and its status will update automatically.
|
|
|
|
|
# Tools Table
|
|
|
|
|
|
|
|
|
|
# Toollist
|
|
|
|
|
| Tool | Common inputs (extensions / format names) | Common outputs (extensions / format names) | Notes |
|
|
|
|
|
|---|---|---|---|
|
|
|
|
|
| **LibreOffice (soffice)** | `.odt`, `.fodt`, `.ott`, `.doc`, `.docx`, `.docm`, `.dot`, `.dotx`, `.rtf`, `.txt`, `.html/.htm/.xhtml`, `.xml`, `.sxw`, `.wps`, `.wpd`, `.abw`, `.pdb`, `.epub`, `.fb2`, `.lit`, `.lrf`, `.pages`, `.csv`, `.tsv`, `.xls`, `.xlsx`, `.xlsm`, `.ods`, `.sxc`, `.123`, `.dbf`, `.ppt`, `.pptx`, `.odp`, images (`.png`, `.jpg`, `.jpeg`, `.bmp`, `.gif`, `.tiff`), `.pdf` | `.pdf`, `.pdfa`, `.odt`, `.fodt`, `.doc`, `.docx`, `.rtf`, `.txt`, `.html/.htm`, `.xhtml`, `.epub`, `.svg`, `.png`, `.jpg/.jpeg`, `.pptx`, `.ppt`, `.odp`, `.xls`, `.xlsx`, `.ods`, `.csv`, `.dbf`, `.pdb`, `.fb2` | Good for office/document conversions; fidelity varies with complex layouts. |
|
|
|
|
|
| **Pandoc** | Markdown flavors (`.md`, `.markdown`), `.html/.htm`, LaTeX (`.tex`), `.rst`, `.docx`, `.odt`, `.epub`, `.ipynb`, `.opml`, `.adoc`/asciidoc, `.tex`, `.bib`/citation inputs | `.html/.html5`, `.xhtml`, `.latex/.tex`, `.pdf` (via LaTeX engine), `.docx`, `.odt`, `.epub`, `.md` (flavors), `.gfm`, `.rst`, `.pptx`, `.man`, `.mediawiki`, `.docbook` | Highly configurable via templates/filters; requires LaTeX for PDF output. |
|
|
|
|
|
| **Ghostscript (gs)** | `.ps`, `.eps`, `.pdf`, PostScript streams | `.pdf` (various compat levels incl PDF/A), `.ps`, `.eps`, raster images (`.png`, `.jpg`, `.tiff`, `.bmp`, `.pnm`) | Useful for PDF manipulations, rasterization, and producing PDF/A. |
|
|
|
|
|
| **Calibre (ebook-convert)** | `.epub`, `.mobi`, `.azw3`, `.azw`, `.fb2`, `.html`, `.docx`, `.doc`, `.rtf`, `.txt`, `.pdb`, `.lit`, `.tcr`, `.cbz`, `.cbr`, `.odt`, `.pdf` (input with caveats) | `.epub`, `.mobi` (legacy), `.azw3`, `.pdf`, `.docx`, `.rtf`, `.txt`, `.fb2`, `.htmlz`, `.pdb`, `.lrf`, `.lit`, `.tcr`, `.cbz`, `.cbr` | Excellent for ebook format conversions and metadata handling; PDF input/output fidelity varies. |
|
|
|
|
|
| **FFmpeg** | Containers & codecs: `.mp4`, `.mkv`, `.mov`, `.avi`, `.webm`, `.flv`, `.wmv`, `.mpg/.mpeg`, `.ts`, `.m2ts`, `.3gp`, audio: `.mp3`, `.wav`, `.aac/.m4a`, `.flac`, `.ogg`, `.opus`, image sequences (`.png`, `.jpg`, `.tiff`), HLS (`.m3u8`) | Wide set: `.mp4`, `.mkv`, `.mov`, `.webm`, `.avi`, `.flv`, `.mp3`, `.aac/.m4a`, `.wav`, `.flac`, `.ogg`, `.opus`, `.gif` (animated), `.ts`, elementary streams, many codec/container combos | Extremely versatile — audio/video transcoding, extraction, container changes, filters. Supported formats depend on build flags and linked libraries. |
|
|
|
|
|
| **libvips (vips)** | `.jpg/.jpeg`, `.png`, `.tif/.tiff`, `.webp`, `.avif`, `.heif/.heic`, `.jp2`, `.gif` (frames), `.pnm`, `.fits`, `.exr`, PDF (via poppler delegate) | `.jpg/.jpeg`, `.png`, `.tif/.tiff`, `.webp`, `.avif`, `.heif`, `.jp2`, `.pnm`, `.v` (VIPS native), `.fits`, `.exr` | Fast, memory-efficient image processing; great for large images and tiling. |
|
|
|
|
|
| **GraphicsMagick (gm)** | `.jpg/.jpeg`, `.png`, `.gif`, `.tif/.tiff`, `.bmp`, `.ico`, `.eps`, `.pdf` (via Ghostscript/poppler), `.dpx`, `.pnm`, `.svg` (if delegate), `.webp` (if built), `.exr` | `.jpg/.jpeg`, `.png`, `.webp` (if enabled), `.tif/.tiff`, `.gif`, `.bmp`, `.pdf` (from images), `.eps`, `.ico`, `.xpm`, `.dpx` | Similar to ImageMagick but with different performance/behavior; supported formats depend on build/delegates. |
|
|
|
|
|
| **ImageMagick (convert / magick)** | Same as GraphicsMagick (large set; many delegates) | Same as GraphicsMagick | Often used interchangeably; watch for security considerations when processing untrusted images. |
|
|
|
|
|
| **Inkscape** | `.svg/.svgz`, `.pdf`, `.eps`, `.ps`, `.ai` (legacy imports), `.dxf`, raster images (`.png`, `.jpg`, `.jpeg`, `.gif`, `.tiff`, `.bmp`) | `.svg`, `.pdf`, `.ps`, `.eps`, `.png`, `.emf`, `.wmf`, `.xaml`, `.dxf`, `.eps` | Vector editing and export; CLI useful for batch SVG → PNG/PDF conversions. |
|
|
|
|
|
| **libjxl (cjxl / djxl)** | Raster inputs: `.png`, `.jpg/.jpeg`, `.ppm/.pbm/.pgm`, `.gif`, etc. | `.jxl` (JPEG XL) | Encoder/decoder for JPEG XL; availability depends on build. |
|
|
|
|
|
| **resvg** | `.svg/.svgz` | `.png` (raster) | Fast, accurate SVG renderer — good for SVG→PNG conversion. |
|
|
|
|
|
| **Potrace** | Bitmaps: `.pbm`, `.pgm`, `.ppm` (PNM family), `.bmp` (via conversion) | Vector: `.svg`, `.pdf`, `.eps`, `.ps`, `.dxf`, `.geojson` | Traces bitmaps to vector paths; often used with pre-conversion steps. |
|
|
|
|
|
| **Potrace GUI / autotrace alternatives** | — | — | Not included but sometimes available in toolchains; behavior varies. |
|
|
|
|
|
| **MarkItDown / markitdown** | `.pdf`, `.docx`, `.doc`, `.pptx`, `.ppt`, `.xlsx`, `.xls`, `.html`, `.eml`, `.msg`, `.md`, `.txt`, images, `.epub` | `.md` (Markdown) | Utility to extract/produce Markdown from various formats; implementation details vary. |
|
|
|
|
|
| **pngquant** | `.png` (truecolor/rgba) | `.png` (quantized palette PNG) | Lossy PNG quantization for smaller PNGs. |
|
|
|
|
|
| **MozJPEG (cjpeg, jpegtran)** | `.ppm/.pbm/.pgm` (PNM), `.bmp`, existing `.jpg` | `.jpg/.jpeg` (MozJPEG-optimized) | Produces smaller JPEGs with improved compression; good for recompression. |
|
|
|
|
|
| **SoX (Sound eXchange)** | `.wav`, `.aiff`, `.mp3` (if libmp3lame), `.flac`, `.ogg/.oga`, `.raw`, `.au`, `.voc`, `.w64`, `.gsm`, `.amr`, `.m4a` (if libs present) | `.wav`, `.aiff`, `.flac`, `.mp3`, `.ogg`, `.raw`, `.w64`, `.opus`, `.amr`, `.m4a` | Audio processing, normalization, effects; exact formats depend on linked libraries. |
|
|
|
|
|
| **pngcrush / zopflipng / optipng** | `.png` | `.png` (optimized) | Lossless PNG optimization tools; choose depending on use-case and compression/compatibility trade-offs. |
|
|
|
|
|
| **Tesseract OCR / ocrmypdf** | Image formats (`.png`, `.jpg`, `.jpeg`, `.tiff`), PDFs (image PDFs) | Plain text (`.txt`), searchable PDF (PDF with text layer), HOCR, ALTO XML | OCR engine; language/training data required for best accuracy. `ocrmypdf` is a wrapper for PDF workflows. |
|
|
|
|
|
| **faster-whisper / OpenAI Whisper (local)** | Audio: `.mp3`, `.wav`, `.m4a`, `.flac`, `.ogg`, `.opus`, `.aac` | Plain text transcripts (`.txt`), `.srt`, `.vtt`, other subtitle formats | Local Whisper implementations for speech-to-text. Models and speed depend on CPU/GPU and model variant. |
|
|
|
|
|
| **WhisperX / forced alignment tools** | same as Whisper | time-aligned transcripts, word-level timestamps | Useful for precise timestamping and alignment. |
|
|
|
|
|
| **Calibre tools (ebook-meta, ebook-convert)** | see Calibre row | see Calibre row | Additional CLI tools for metadata editing and bulk operations. |
|
|
|
|
|
| **Ghostscript-based PDF tools (pdftk alternatives)** | `.pdf` | `.pdf`, extracted pages, raster outputs | For splitting/merging, linearization, compatibility conversion. |
|
|
|
|
|
| **djvulibre / ddjvu / djvutool** | `.djvu` | `.djvu`, `.png` (raster), `.pdf` | For DjVu document handling and conversions. |
|
|
|
|
|
| **Raster→Vector helpers (autotrace, potrace, trace-layers)** | raster formats (`.png`, `.bmp`, `.tiff`) | vector (`.svg`, `.eps`, `.pdf`) | Useful pipeline components; exact choices depend on quality/needs. |
|
|
|
|
|
| **OCR & layout tools (abbyy/paid SDKs not included)** | — | — | Proprietary solutions may offer higher accuracy/format support but are not bundled. |
|
|
|
|
|
| **Custom CLI tools via `settings.yml`** | Any formats accepted by the configured tool | Any outputs produced by the configured tool | File Wizard can invoke arbitrary CLI tools; add entries to `settings.yml` to expose them in the UI. |
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
| Tool | From (accepted inputs — extensions / format names) | To (outputs — extensions / format names) |
|
|
|
|
|
|---|---|---|
|
|
|
|
|
| LibreOffice (soffice) | .odt, .fodt, .ott, .doc, .docx, .docm, .dot, .dotx, .rtf, .txt, .html, .htm, .xhtml, .xml, .sxw, .wps, .wpd, .abw, .pdb, .epub, .fb2, .lit, .lrf, .pages, .wps, .csv, .tsv, .xls, .xlsx, .xlsm, .ods, .sxc, .123, .dbf, .ppt, .pptx, .pps, .odp, image imports (.png, .jpg, .jpeg, .bmp, .gif, .tiff), .pdf (openable) | .pdf, .pdfa, .odt, .fodt, .doc, .docx, .rtf, .txt, .html/.htm, .xhtml, .epub, .svg (from Draw/Impress), .png (export raster), .jpg/.jpeg (export raster), .pptx, .ppt, .odp, .xls, .xlsx, .ods, .csv, .dbf, .pdb, .fb2 |
|
|
|
|
|
| Pandoc | Input format names / typical extensions: .md (markdown / gfm / commonmark), .markdown, .mdown, .txt (md), .html/.htm, .latex/.tex, .rst (.rst), docx (.docx), odt (.odt), epub (.epub), ipynb (Jupyter .ipynb), opml (.opml), asciidoc (.adoc), textile, mediawiki, jira, man/roff (.man), docbook (.xml), BibTeX/CSL JSON, fb2 etc. | Output format names / mapped extensions: .html/.html5, .xhtml, .latex/.tex, .pdf (via engine like pdflatex/xelatex/lualatex), .docx, .odt, .epub/.epub2/.epub3, .md (various flavors), .gfm, .rst, .pptx, .beamer (PDF via LaTeX), .man, .mediawiki, .docbook (.xml), .tex |
|
|
|
|
|
| Ghostscript (gs) — PDF/PS/rasters | Inputs: .ps, .eps, .pdf, PostScript streams | Outputs: .pdf (various compatibility levels incl PDF/A), .ps/.eps (PostScript), raster images: .png, .png16m, .pngalpha, .jpg/.jpeg, .tif/.tiff (including tiffg4), .bmp, .pcx, .pnm/.pbm/.pgm/.ppm, plus many device names (see Ghostscript devices) — build-dependent |
|
|
|
|
|
| Calibre (ebook-convert) | .epub, .mobi, .azw3, .azw, .azw4, .kfx (limited), .fb2, .html, .htmlz, .docx, .doc, .rtf, .txt, .pdb, .lrf, .lit, .tcr, .pdb, .prc, .cbz, .cbr, .chm, .djvu (if supported), .odt, .pdf (input possible but fidelity varies) | .epub, .mobi (old), .azw3 (Kindle), .pdf, .docx, .rtf, .txt, .fb2, .htmlz, .pdb, .lrf, .lit, .tcr, .cbz, .cbr (archives), (note: some outputs like mobi/azw may be deprecated or limited) |
|
|
|
|
|
| FFmpeg (ffmpeg) — very large / build-dependent | Common container & audio/video/image inputs: .mp4, .m4v, .mkv, .mov, .avi, .webm, .flv, .wmv, .mpg/.mpeg/.vob, .ts, .m2ts, .3gp, .3g2, audio: .mp3, .wav, .aac/.m4a, .flac, .ogg, .opus, .wma, .aiff, .amr, image sequences (.png, .jpg, .jpeg, .tiff, .bmp), HLS/streams (.m3u8), raw streams — extensive list (see ffmpeg -formats) | Similar huge set as inputs for outputs: containers & codecs: .mp4, .mkv, .mov, .webm, .avi, .flv, .mp3, .aac/.m4a, .wav, .flac, .ogg, .opus, .gif (animated), .ts, .h264 elementary streams and many others. FFmpeg supports 100+ demuxers/muxers & codecs; exact set is build-dependent. |
|
|
|
|
|
| libvips (vips) | .jpg/.jpeg, .png, .tif/.tiff, .webp, .avif, .heif/.heic, .jp2 (JPEG2000), .gif (frames), .pnm (.pbm/.pgm/.ppm), .fits, .exr, .pgm, .pfm, .csv (for bands), .v/.vips, PDF (via poppler delegate) — build-dependent | .jpg/.jpeg, .png, .tif/.tiff, .webp, .avif, .heif, .jp2, .pnm, .v (VIPS native), .fits, .exr, .csv |
|
|
|
|
|
| GraphicsMagick (gm) — build-dependent, many delegates | .jpg/.jpeg, .png, .gif, .tif/.tiff, .bmp, .ico, .eps, .pdf (via Ghostscript/poppler delegate), .dpx, .pcx, .pnm, .xpm, .svg (if delegate), .webp (if built), .hdr, .exr, many more (see gm convert -list format) | .jpg/.jpeg, .png, .webp (if enabled), .tif/.tiff, .gif, .bmp, .pdf (from images), .eps, .ico, .xpm, .dpx, etc. (GraphicsMagick documents reading “over 92 major file formats”; exact set depends on build) |
|
|
|
|
|
| Inkscape | .svg, .svgz, .pdf, .eps, .ps, .ai (some legacy AI via import), .dxf (import), raster images (.png, .jpg, .jpeg, .gif, .tiff, .bmp) — availability depends on installed extensions/delegates | .svg, .svgz, .pdf, .ps, .eps, .png (raster export), .emf, .wmf, .xaml (some builds), .dxf, .eps |
|
|
|
|
|
| libjxl (cjxl) — JPEG XL encoder | Common raster inputs: .png, .jpg/.jpeg, .ppm/.pbm/.pgm, .gif, etc. (supported by cjxl) | .jxl (JPEG XL) (primary output) |
|
|
|
|
|
| resvg | .svg/.svgz (SVG input) | .png (raster). Wrappers may allow other raster containers (PDF via other tooling) |
|
|
|
|
|
| Potrace | .pbm, .pgm, .ppm (PNM family), .bmp (via conversion to PNM) | .svg, .pdf, .eps, .ps, .dxf, --svg, .geojson, .xfig (various vector outputs) |
|
|
|
|
|
| MarkItDown / markitdown | .pdf, .docx, .doc, .pptx, .ppt, .xlsx, .xls, .html, .eml, .msg, .md, .txt, images (.png, .jpg, .jpeg, .gif, .webp), .epub (depending on implementation) | .md (Markdown) — primary output (flavors as .md) |
|
|
|
|
|
| pngquant | .png (truecolor/rgba PNG input) | .png (quantized / palette PNG output) |
|
|
|
|
|
| SoX (Sound eXchange) — build-dependent | .wav, .aiff/.aif, .mp3 (if libmp3lame present), .flac (if libFLAC present), .ogg/.oga (if libvorbis/libogg present), .raw, .au, .voc, .w64, .snd, .gsm, .amr, .m4a (via libfdk or libfaac), many others — exact set depends on linked libraries | .wav, .aiff, .flac, .mp3, .ogg, .raw, .w64, .opus, .amr, .m4a, etc. (build-dependent; SoX supports 20+ formats frequently) |
|
|
|
|
|
| MozJPEG (cjpeg, jpegtran) | .ppm/.pgm/.pbm (PNM), .bmp, .tga, existing .jpg for recompression (depending on build) | .jpg / .jpeg (MozJPEG-optimized JPEG) |
|
|
|
|
|
| pngquant (again) | .png | .png (quantized) |
|
|
|
|
|
|