diff --git a/README.md b/README.md index cdb82e4..f489d04 100644 --- a/README.md +++ b/README.md @@ -1,36 +1,56 @@ # **OptimaLab35** -[OptimaLab35](https://gitlab.com/CodeByMrFinchum/OptimaLab35) is a graphical and terminal user interface for [optima35](https://gitlab.com/CodeByMrFinchum/optima35). It is under **heavy development**, and both UI elements and cross-platform compatibility may change. +_Last updated: 28 Jan 2025_ ## **Overview** -**OptimaLab35** extends **OPTIMA35** (**Organizing, Processing, Tweaking Images, and Modifying scanned Analogs from 35mm Film**) by providing an intuitive interface for image and metadata management. While tailored for analog photography, it supports any type of image. +**OptimaLab35** enhances **OPTIMA35** (**Organizing, Processing, Tweaking Images, and Modifying scanned Analogs from 35mm Film**) by offering a user-friendly graphical interface for efficient image and metadata management. +It serves as a GUI for the [OPTIMA35 library](https://gitlab.com/CodeByMrFinchum/optima35), providing an intuitive way to interact with the core functionalities. + +--- ## **Current Status** +### **Alpha Stage** -### **Versioning and Compatibility** +OptimaLab35 is built using **PySide6** and **Qt**, offering a modern and flexible interface for **OPTIMA35**. -The preserved version **v0.1.0** ensures stability with the current GUI design. It depends on **optima35==0.6.4**, a version confirmed to work seamlessly with this release. Future updates may introduce breaking changes, especially as the project evolves across platforms. +The program is under **active development**, and while versions released on PyPI should not contain major bugs, occasional issues may arise. -### **Installation** +For the most accurate and detailed update information, please refer to the well-maintained [**CHANGELOG**](https://gitlab.com/CodeByMrFinchum/OptimaLab35/-/blob/main/CHANGELOG.md), as this README may occasionally lag behind the latest updates. -Install via pip (dependencies are automatically managed, except for `simple-term-menu` used in TUI mode, which is Linux-only): +--- + +## **Features** + +### **Image Processing** +- Resize images (upscale or downscale) +- Convert images to grayscale +- Adjust brightness and contrast +- Add customizable text-based watermarks + +### **Image preview** +- Load a single image and see how change in brightness and contrast changes the image + +### **EXIF Management** +- Add EXIF data using a simple dictionary +- Copy EXIF data from the original image +- Remove EXIF metadata completely +- Add timestamps (e.g., original photo timestamp) +- Automatically adjust EXIF timestamps based on image file names +- Add GPS coordinates to images + +--- + +## **Installation** + +Install via **pip** (dependencies are handled automatically): ```bash pip install OptimaLab35 ``` -## **Development and Notes** +--- -**Alpha Stage** -- UI designs (GUI and TUI) are evolving, and breaking changes may occur. -- The [**CHANGELOG**](https://gitlab.com/CodeByMrFinchum/OptimaLab35/-/blob/main/CHANGELOG.md) provides detailed updates. -- Some safety checks are still under development. - -**Modes:** -- **GUI**: Default if **PySide6** is available. -- **TUI**: Fallback if **PySide6** is missing or can be explicitly started using the `--tui` flag. - -### Preview GUI +## Preview GUI **PREVIEW** might be out of date. **Main tab** @@ -49,35 +69,7 @@ pip install OptimaLab35 ![main](https://gitlab.com/CodeByMrFinchum/OptimaLab35/-/raw/main/media/exif_editor.png){width=40%} -**Info window** - -![main](https://gitlab.com/CodeByMrFinchum/OptimaLab35/-/raw/main/media/info_window.png){width=40%} - -## **Features** - -### **Image Processing** -- Resizing -- Renaming with custom order -- Grayscale conversion -- Brightness and contrast adjustment - -### **EXIF Management** -- Copy or add custom EXIF data -- Add GPS coordinates -- Add or modify EXIF dates -- Remove EXIF metadata - -### **Watermarking** -- Add customizable watermarks - -## **Dependencies** - -**GUI Mode:** -- `optima35` -- `pyside6` - -**TUI Mode (Linux only):** -- `simple-term-menu` +--- # Use of LLMs In the interest of transparency, I disclose that Generative AI (GAI) large language models (LLMs), including OpenAI’s ChatGPT and Ollama models (e.g., OpenCoder and Qwen2.5-coder), have been used to assist in this project.