Add Home
commit
1dfe6dd8ba
1 changed files with 119 additions and 0 deletions
119
Home.md
Normal file
119
Home.md
Normal file
|
|
@ -0,0 +1,119 @@
|
||||||
|
# **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
|
||||||
|
```
|
||||||
|
|
||||||
|
### Performance Note
|
||||||
|
|
||||||
|
I recommend using *standard* Python rather than PyPy.
|
||||||
|
I ran a small-scale test measuring how long it took to convert images using Python 3.13.2 and PyPy 7.3.15 (Python 3.9.18). Surprisingly, Python was 2–5% faster than PyPy.
|
||||||
|
This is most likely because the program uses PySide6, which relies on CPython extensions that do not benefit from PyPy’s JIT optimizations. Additionally, since the program uses PySide6’s multithreading, we actually lose performance under PyPy.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 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)
|
||||||
Loading…
Add table
Add a link
Reference in a new issue