https://arthurlamonattopro.github.io/LamoImage/
Description
A graphical converter for transforming PNG ↔ .lamo, a custom file format that packages compressed PNG data + metadata into a single file. Features a lightweight PySide6 interface, integrated preview, and complete format read/write support.
Download the compiled version here:
👉 Releases: https://github.com/arthurlamonattopro/LamoImage/releases/
(If you want to run it directly without installing Python. The interface is the same.)
- Open and preview PNG images.
- Convert images (PNG, JPG, WebP) →
.lamo. - Open
.lamofiles and reconstruct the original image. - Display complete file metadata.
- Preview with automatic resizing.
- Documented binary structure that is easy to extend.
- Python 3.8+
- Pillow
- cryptography
- PySide6
Installation:
pip install pillow cryptography pyside6python conversor.pyThe LamoImage project consists of two Python scripts (LamoViewer.py and conversor.py) that use the Pillow library for image manipulation and PySide6 (Qt) for the graphical user interface (GUI).
Since Python and its libraries are cross-platform, the source code is directly compatible with Linux and macOS. Portability mainly requires ensuring that the necessary dependencies are installed on your system.
You will need Python 3 installed. Python 3.6 or newer is recommended.
PySide6 is the official Qt binding for Python and is cross-platform.
- macOS: Install PySide6 via
pipin the same Python environment used by the project. - Linux: PySide6 can also be installed via
pip, but may require system graphics libraries that are already present on a desktop environment.
It is strongly recommended to use a virtual environment to isolate the project's dependencies.
# Navigate to the project folder
cd /path/to/lamo_project
# Create the virtual environment
python3 -m venv venv
# Activate the virtual environment
# Linux/macOS:
source venv/bin/activateWith the virtual environment activated:
pip install Pillow cryptography PySide6After installing the dependencies, you can run the scripts directly.
To launch the image viewer (.lamo and common image formats):
python3 LamoViewer.pyTo launch the conversion tool (common images to .lamo and vice versa):
python3 conversor.pyNote for macOS/Linux: Make sure a graphical desktop environment is available. The GUI will not open in an SSH session without graphical forwarding.
A binary file containing:
LMGO— signature (4 bytes)1— version (1 byte)- JSON size (4 bytes, big-endian)
- Metadata (UTF-8 JSON)
- Compressed data size (4 bytes)
- Compressed PNG data (
zlib)
Minimum metadata:
{
"width": 1920,
"height": 1080,
"mode": "RGB",
"inner_format": "PNG"
}write_lamo(path, img, metadata)— creates a.lamofile.read_lamo(path)— reads a.lamofile and returns(Image, metadata).convert_png_to_lamo(path)— quick conversion.LamoConverterWindow— complete PySide6 GUI.
Programmatic conversion:
from lamo_core import write_lamo, convert_png_to_lamo
convert_png_to_lamo("photo.png")Adding custom metadata manually:
from PIL import Image
img = Image.open("photo.png")
write_lamo("output.lamo", img, {"author": "Lamo", "description": "Test"})- "magic mismatch" → The file is not a
.lamofile or is corrupted. - Large PNG takes a while to preview → This is normal; GUI rendering may take a few moments.
- Batch mode (convert entire folders).
- Configurable compression.
- Editable metadata through the interface.
Improve format securityInternal WebP/JPEG support
Fork the repository, make your changes, and submit a PR. The .lamo world grows with you.