113 lines
4.4 KiB
Markdown
113 lines
4.4 KiB
Markdown
# **OptimaLab35**
|
||
Developed on my [forgejo instance](https://code.boxyfoxy.net/CodeByMrFinchum), [GitLab](https://gitlab.com/CodeByMrFinchum) is used as backup.
|
||
|
||
## **Overview**
|
||
|
||
**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://code.boxyfoxy.net/CodeByMrFinchum/optima35), providing an intuitive way to interact with the core functionalities.
|
||
|
||
---
|
||
|
||
## **Current Status**
|
||
The program has reached a stable release. All functions have been tested, and there should be *no* bugs.
|
||
While there is always room for additional features and optimizations, the core functionality is complete and reliable.
|
||
|
||
---
|
||
|
||
## **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 changes in brightness and contrast affect 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
|
||
|
||
### **Settings**
|
||
- Option to use `PyQtDarkTheme` and select Dark, Light, or auto theme
|
||
- Checks for updates on PyPI, automatically downloads and installs the latest version
|
||
|
||
---
|
||
|
||
## **Installation**
|
||
|
||
Install via **pip** (dependencies are handled automatically):
|
||
```bash
|
||
pip install OptimaLab35
|
||
```
|
||
|
||
---
|
||
|
||
## GUI Preview
|
||
The layout remains consistent with v1.0.0.
|
||
The UI is OS-dependent, but a custom theme can be enabled in the settings.
|
||
|
||
**Main tab**
|
||
|
||
{width=40%}
|
||
{width=40%}
|
||
|
||
**Exif tab**
|
||
|
||
{width=40%}
|
||
{width=40%}
|
||
|
||
**Preview window**
|
||
|
||
{width=40%}
|
||
{width=40%}
|
||
|
||
**Settings**
|
||
|
||
{width=40%}
|
||
{width=40%}
|
||
|
||
**Updater**
|
||
|
||
{width=40%}
|
||
{width=40%}
|
||
|
||
---
|
||
|
||
# Contribution
|
||
|
||
Thanks to developer [Mr Finch](https://gitlab.com/MrFinchMkV) for contributing to this project.
|
||
|
||
## 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.
|
||
|
||
### Areas of Assistance:
|
||
- Project discussions and planning
|
||
- Spelling and grammar corrections
|
||
- Suggestions for suitable packages and libraries
|
||
- Guidance on code structure and organization
|
||
|
||
In cases where LLMs contribute directly to code or provide substantial optimizations, such contributions will be disclosed and documented in the relevant sections of the codebase.
|
||
|
||
**Ollama**
|
||
- mradermacher gguf Q4K-M Instruct version of infly/OpenCoder-1.5B
|
||
- unsloth gguf Q4K_M Instruct version of both Qwen/QWEN2 1.5B and 3B
|
||
|
||
#### References
|
||
1. **Huang, Siming, et al.**
|
||
*OpenCoder: The Open Cookbook for Top-Tier Code Large Language Models.*
|
||
2024. [PDF](https://arxiv.org/pdf/2411.04905)
|
||
|
||
2. **Hui, Binyuan, et al.**
|
||
*Qwen2.5-Coder Technical Report.*
|
||
*arXiv preprint arXiv:2409.12186*, 2024. [arXiv](https://arxiv.org/abs/2409.12186)
|
||
|
||
3. **Yang, An, et al.**
|
||
*Qwen2 Technical Report.*
|
||
*arXiv preprint arXiv:2407.10671*, 2024. [arXiv](https://arxiv.org/abs/2407.10671)
|