https://github.com/alansteinbarth/image-flow
Professional image converter supporting 15+ formats (HEIC→JPEG, PNG, WEBP, RAW). Batch processing, quality control, drag&drop UI, live preview. Cross-platform Python desktop app with modern interface. Portfolio project showcasing GUI development skills.
https://github.com/alansteinbarth/image-flow
batch-processing cross-platform desktop-application drag-and-drop file-conversion gui-application heic-converter image-converter image-processing linux macos mit-license modern-ui open-source pillow portfolio-project python tkinter user-interface windows
Last synced: about 2 months ago
JSON representation
Professional image converter supporting 15+ formats (HEIC→JPEG, PNG, WEBP, RAW). Batch processing, quality control, drag&drop UI, live preview. Cross-platform Python desktop app with modern interface. Portfolio project showcasing GUI development skills.
- Host: GitHub
- URL: https://github.com/alansteinbarth/image-flow
- Owner: AlanSteinbarth
- License: mit
- Created: 2025-05-23T12:50:37.000Z (about 1 year ago)
- Default Branch: main
- Last Pushed: 2025-07-09T12:13:12.000Z (11 months ago)
- Last Synced: 2025-09-01T21:21:27.053Z (9 months ago)
- Topics: batch-processing, cross-platform, desktop-application, drag-and-drop, file-conversion, gui-application, heic-converter, image-converter, image-processing, linux, macos, mit-license, modern-ui, open-source, pillow, portfolio-project, python, tkinter, user-interface, windows
- Language: Python
- Homepage:
- Size: 23.8 MB
- Stars: 0
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- Contributing: CONTRIBUTING.md
- License: LICENSE
Awesome Lists containing this project
README
# ImageFlow
[](https://github.com/AlanSteinbarth/Image-Flow/actions/workflows/ci.yml)
[](https://opensource.org/licenses/MIT)
[](https://www.python.org/downloads/)
[]()
[](https://github.com/psf/black)
**Uniwersalna aplikacja do konwersji plików graficznych z profesjonalnym interfejsem i obsługą 15+ formatów.**
---
---
## ✨ Funkcje
- **🔄 Obsługa 15+ formatów**: HEIC, JPG, JPEG, PNG, BMP, TIFF, GIF → JPEG, PNG, BMP, TIFF, WEBP
- **🌍 Uniwersalna kompatybilność**: Windows 10+, macOS 10.14+, Ubuntu 18.04+
- **🎨 Nowoczesny interfejs**: Jasny/ciemny motyw, animacje, tooltips
- **📁 Przeciągnij i upuść**: Intuicyjna obsługa drag & drop
- **🖼️ Live preview**: Miniaturki i szczegóły plików w czasie rzeczywistym
- **⚙️ Precyzyjna kontrola**: Regulacja jakości dla JPEG (0-100%)
- **📊 Progress tracking**: Pasek postępu z animacjami
- **🛡️ Zaawansowana obsługa błędów**: Szczegółowe logi i graceful error handling
- **🚫 Anti-duplicate**: Automatyczne wykrywanie i filtrowanie duplikatów
- **🔧 System-aware**: Natywne dialogi i optymalizacje dla każdego OS
## 🚀 Quick Start
```bash
git clone https://github.com/AlanSteinbarth/Image-Flow.git
cd Image-Flow
python -m pip install -r requirements.txt
python app.py
```
## 📊 Benchmarks & Performance
| Operacja | Średni czas | Obsługiwane rozmiary |
|----------|-------------|---------------------|
| HEIC → JPEG | ~50ms/plik | Do 100MB |
| PNG → JPEG | ~30ms/plik | Do 50MB |
| TIFF → PNG | ~80ms/plik | Do 200MB |
| Batch (100 plików) | ~3s | Łącznie do 1GB |
*Benchmarki wykonane na MacBook Pro M1, wyniki mogą się różnić*
## 🖥️ Kompatybilność systemów
### ✅ macOS
- Natywna obsługa dialogów plików
- Automatyczne centrowanie okien
- Obsługa gestów i skrótów klawiszowych macOS
- Folder domyślny: `~/Desktop`
### ✅ Windows
- Poprawne separatory w dialogach plików
- Obsługa DPI awareness
- Wykrywanie różnych nazw folderów Desktop (Pulpit, Bureau, Escritorio)
- Wsparcie dla różnych wersji językowych
### ✅ Linux
- Obsługa XDG user directories
- Kompatybilność z różnymi środowiskami graficznymi
- Automatyczne wykrywanie folderu Desktop
## 📋 Wymagania
- **Python**: 3.8 lub nowszy
- **System operacyjny**: Windows 10+, macOS 10.14+, Ubuntu 18.04+ (lub inne dystrybucje Linux)
## 🚀 Instalacja
### 1. Klonowanie repozytorium
```bash
git clone
cd imageflow
```
### 2. Tworzenie środowiska wirtualnego (zalecane)
#### Windows:
```cmd
python -m venv venv
venv\Scripts\activate
```
#### macOS/Linux:
```bash
python3 -m venv venv
source venv/bin/activate
```
### 3. Instalacja zależności
#### Metoda 1: Przez pip (zalecana)
```bash
pip install -r requirements.txt
```
#### Metoda 2: Instalacja jako pakiet
```bash
pip install -e .
```
Po tej instalacji możesz uruchomić aplikację z dowolnego miejsca:
```bash
image-converter
```
## ▶️ Uruchomienie
### Metoda 1: Przez skrypt uruchamiający (zalecana na macOS/Linux)
```bash
./run.sh
```
### Metoda 2: Bezpośrednio przez Python
```bash
# Upewnij się, że masz aktywne środowisko wirtualne lub conda
python app.py
```
### Metoda 3: Jeśli zainstalowano jako pakiet
```bash
image-converter
```
### ⚠️ Ważne uwagi dla macOS
- **NIE używaj** `/usr/bin/python3` (systemowy Python)
- Użyj `python` z aktywnego środowiska conda/venv
- Jeśli masz błąd "No module named 'PIL'", sprawdź czy używasz właściwego interpretera Python
## 📝 Instrukcja użytkowania
1. **Wybór plików**: Kliknij "Wybierz pliki do konwersji" lub przeciągnij pliki do okna
2. **Podgląd**: Kliknij na plik z listy aby zobaczyć miniaturę i szczegóły
3. **Format wyjściowy**: Wybierz docelowy format z listy rozwijanej
4. **Jakość**: Ustaw jakość konwersji (tylko dla JPEG)
5. **Folder docelowy**: Wybierz gdzie zapisać skonwertowane pliki
6. **Konwersja**: Kliknij "Konwertuj" aby rozpocząć proces
## 🔧 Funkcje specyficzne dla systemów
### macOS
- Dialog wyboru plików używa spacji jako separatorów formatów
- Automatyczne centrowanie okien na ekranie
- Obsługa natywnego zamykania aplikacji (Cmd+Q)
### Windows
- Dialog wyboru plików używa średników jako separatorów formatów
- Automatyczne wykrywanie różnych nazw folderów Desktop
- Obsługa DPI awareness dla wyświetlaczy wysokiej rozdzielczości
### Linux
- Używa XDG user directories do wykrywania folderu Desktop
- Kompatybilność z różnymi środowiskami graficznymi (GNOME, KDE, XFCE)
## 🐛 Rozwiązywanie problemów
### Błędy uprawnień
Jeśli pojawi się błąd uprawnień do zapisu:
- **Windows**: Uruchom jako administrator
- **macOS**: Sprawdź uprawnienia w Systemowych ustawieniach → Bezpieczeństwo
- **Linux**: Sprawdź uprawnienia do folderu docelowego
### Błędy importu bibliotek
```bash
pip install --upgrade -r requirements.txt
```
### Problemy z dragiem & drop
Upewnij się, że biblioteka `tkinterdnd2` jest zainstalowana:
```bash
pip install tkinterdnd2
```
### Przycisk "Konwertuj" nie działa
Jeśli przycisk "Konwertuj" jest nieaktywny lub nic się nie dzieje:
1. **Sprawdź czy wybrano pliki**: Dodaj przynajmniej jeden plik do konwersji
2. **Sprawdź folder docelowy**: Upewnij się, że wybrano folder zapisu
3. **Restart aplikacji**: Zamknij i uruchom aplikację ponownie
4. **Sprawdź logi**: Sprawdź pole logów na dole aplikacji pod kątem błędów
### Test aplikacji
Możesz uruchomić automatyczny test funkcjonalności:
```bash
python test_app.py
```
## 📸 Zrzuty ekranu
### Udana konwersja z podglądem pliku

*Widok po udanej konwersji - popup "Sukces!" z informacją o zakończeniu procesu, panel podglądu z miniaturą zdjęcia natury oraz szczegółowe logi procesu konwersji w dolnej części okna. Aplikacja w ciemnym motywie.*
### Konfiguracja konwersji z wybranymi plikami

*Główny widok pracy z aplikacją - wybrany plik do konwersji, ustawienia formatu wyjściowego (JPEG) z jakością 100%, informacje systemowe (macOS Darwin) oraz ścieżki plików wejściowych i wyjściowych. Panel logów pokazuje szczegóły procesu.*
### Czysty interfejs startowy (ciemny motyw)

*Interfejs początkowy aplikacji w ciemnym motywie - widoczne przyciski wyboru plików, ustawienia formatu (JPEG), suwak jakości (100%) oraz informacje systemowe. Gotowy do pracy z plikami.*
### Interfejs w jasnym motywie

*Aplikacja przełączona na jasny motyw - widoczna ikona słońca w prawym górnym rogu jako przełącznik motywów. Interfejs pokazuje wszystkie podstawowe elementy: przyciski wyboru plików, ustawienia formatu, panel logów na dole. Demonstracja funkcji przełączania między jasnym a ciemnym motywem.*
## 📄 Licencja
MIT License - zobacz plik [LICENSE](LICENSE) po szczegóły.
## 👨💻 Autor
Alan Steinbarth
- GitHub: [@AlanSteinbarth](https://github.com/AlanSteinbarth)
- LinkedIn: [Alan Steinbarth](https://linkedin.com/in/alansteinbarth)
---
**⭐ Jeśli ImageFlow Ci pomógł, zostaw gwiazdkę! ⭐**
[](https://github.com/AlanSteinbarth/Image-Flow)
[](https://github.com/AlanSteinbarth/Image-Flow/fork)
*Zbudowane z ❤️ dla społeczności open source*