Feat: Added compatibility with optima35 v1.0

This commit is contained in:
Mr Finchum 2025-01-28 15:03:47 +00:00
parent 2a5efcd88c
commit 09025105ea
7 changed files with 76 additions and 442 deletions

View file

@ -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 OpenAIs ChatGPT and Ollama models (e.g., OpenCoder and Qwen2.5-coder), have been used to assist in this project.