Skip to content

fezcode/atlas.convert

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

9 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Atlas Convert

Banner Image

Important

atlas.convert is part of the Atlas Suite—a collection of high-visibility, local-first terminal utilities designed for power users who demand precision and aesthetic clarity.

atlas.convert is a high-performance image conversion tool that simplifies media workflows directly from your terminal. Whether you're batch-processing assets for a project or quickly converting a single HEIC photo from your phone, Atlas Convert provides a seamless, dependency-free experience with the signature Atlas aesthetic.

Go Version Build System Platform

✨ Key Features

  • 🖼️ Format Support: Seamlessly convert between JPEG, PNG, and HEIC (Decoding).
  • 🔄 Batch Processing: Convert entire directories or sets of files using glob patterns.
  • 🏷️ Smart Placeholders: Customize output filenames with {name}, {idx}, and {date} tokens.
  • 🕹️ Interactive Mode: A guided, step-by-step TUI prompt for users who prefer not to memorize flags.
  • Blazing Fast: Written in Go with native imaging libraries for near-instantaneous conversion.
  • 🍎 HEIC Support: Includes built-in decoding for modern iPhone/macOS image formats without needing external system libraries.
  • 🎨 Aesthetic CLI: Clean, high-contrast output consistent with the Atlas Suite design language.
  • 📦 Zero Dependencies: Compiles to a single, static binary—no imagemagick or ffmpeg required.

🚀 Installation

Using Gobake (Recommended)

This project uses the Atlas gobake orchestration tool for cross-platform builds.

git clone https://github.com/fezcode/atlas.convert
cd atlas.convert
gobake build

The compiled binary will be located in the build/ directory.

⌨️ Usage

Batch Conversion with Globs

Convert all HEIC images in a folder to PNG:

atlas.convert -s "*.heic" -d "converted/" -t png

Pattern-based Renaming

Convert PNGs to JPEGs with a specific naming convention:

atlas.convert -s "raw/*.png" -d "web/{name}_optimized.jpg" -t jpeg

Using Indexed Sequences

Convert images and number them sequentially:

atlas.convert -s "snapshots/" -d "archived/IMG_{idx}.png" -f jpg -t png

Options & Flags

Flag Shorthand Description
--source -s Source path (file, directory, or glob pattern)
--destination -d Destination path (directory or pattern with placeholders)
--from -f Source codec/format (jpeg, png, heic)
--to -t Destination codec/format (jpeg, png)
--interactive -i Launch the interactive guided mode
--help -h Print help text and usage examples
--version -v Print current version

🏷️ Supported Placeholders

When using -d, you can use these tokens to dynamically generate filenames:

  • {name}: The original filename without its extension.
  • {idx}: The sequence index (0, 1, 2...) during batch processing.
  • {date}: The current date in YYYY-MM-DD format.

🛠️ Supported Formats

Format Read (Decode) Write (Encode)
JPEG
PNG
HEIC ❌ (Coming soon)

🏗️ Architecture & Philosophy

  • Local-First: All processing happens on your machine. Your photos never touch the cloud.
  • Precision: Uses high-quality resampling and encoding parameters to ensure no loss in visual fidelity during conversion.
  • Portability: Built with pure Go (WASM-based decoder) to ensure the tool works across all major operating systems with zero setup and no CGO requirements.

📄 License

MIT License - Copyright (c) 2026 FezCode.

About

A lightweight, terminal-based image conversion tool for the Atlas Suite. Supports JPEG, PNG, and HEIC with both CLI and interactive modes.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages