Skip to content

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.

License

Notifications You must be signed in to change notification settings

AlanSteinbarth/Image-Flow

Repository files navigation

ImageFlow

ImageFlow - Profesjonalny konwerter plików graficznych

CI/CD Pipeline License: MIT Python 3.8+ Platform Code style: 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

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

git clone <adres-repo>
cd imageflow

2. Tworzenie środowiska wirtualnego (zalecane)

Windows:

python -m venv venv
venv\Scripts\activate

macOS/Linux:

python3 -m venv venv
source venv/bin/activate

3. Instalacja zależności

Metoda 1: Przez pip (zalecana)

pip install -r requirements.txt

Metoda 2: Instalacja jako pakiet

pip install -e .

Po tej instalacji możesz uruchomić aplikację z dowolnego miejsca:

image-converter

▶️ Uruchomienie

Metoda 1: Przez skrypt uruchamiający (zalecana na macOS/Linux)

./run.sh

Metoda 2: Bezpośrednio przez Python

# Upewnij się, że masz aktywne środowisko wirtualne lub conda
python app.py

Metoda 3: Jeśli zainstalowano jako pakiet

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

pip install --upgrade -r requirements.txt

Problemy z dragiem & drop

Upewnij się, że biblioteka tkinterdnd2 jest zainstalowana:

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:

python test_app.py

📸 Zrzuty ekranu

Udana konwersja z podglądem pliku

ImageFlow - Komunikat sukcesu z podglądem konwertowanego obrazu 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

ImageFlow - Interfejs z wybranymi plikami i ustawieniami konwersji 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)

ImageFlow - Główny interfejs aplikacji w ciemnym motywie 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

ImageFlow - Aplikacja w jasnym motywie z przełącznikiem motywów 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 po szczegóły.

👨‍💻 Autor

Alan Steinbarth


⭐ Jeśli ImageFlow Ci pomógł, zostaw gwiazdkę! ⭐

GitHub stars GitHub forks

Zbudowane z ❤️ dla społeczności open source

About

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.

Topics

Resources

License

Stars

Watchers

Forks