{"id":30685161,"url":"https://github.com/alansteinbarth/image-flow","last_synced_at":"2026-04-13T23:33:20.097Z","repository":{"id":300386427,"uuid":"989026834","full_name":"AlanSteinbarth/Image-Flow","owner":"AlanSteinbarth","description":"Professional image converter supporting 15+ formats (HEIC→JPEG, PNG, WEBP, RAW). Batch processing, quality control, drag\u0026drop UI, live preview. Cross-platform Python desktop app with modern interface. Portfolio project showcasing GUI development skills.","archived":false,"fork":false,"pushed_at":"2025-07-09T12:13:12.000Z","size":24969,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-09-01T21:21:27.053Z","etag":null,"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"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/AlanSteinbarth.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-05-23T12:50:37.000Z","updated_at":"2025-07-09T12:13:15.000Z","dependencies_parsed_at":"2025-09-01T21:28:16.594Z","dependency_job_id":null,"html_url":"https://github.com/AlanSteinbarth/Image-Flow","commit_stats":null,"previous_names":["alansteinbarth/konwerter-plikow-graficznych","alansteinbarth/image-flow"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/AlanSteinbarth/Image-Flow","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AlanSteinbarth%2FImage-Flow","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AlanSteinbarth%2FImage-Flow/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AlanSteinbarth%2FImage-Flow/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AlanSteinbarth%2FImage-Flow/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/AlanSteinbarth","download_url":"https://codeload.github.com/AlanSteinbarth/Image-Flow/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AlanSteinbarth%2FImage-Flow/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31775886,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-13T20:17:16.280Z","status":"ssl_error","status_checked_at":"2026-04-13T20:17:08.216Z","response_time":93,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["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"],"created_at":"2025-09-01T21:07:15.181Z","updated_at":"2026-04-13T23:33:20.071Z","avatar_url":"https://github.com/AlanSteinbarth.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# ImageFlow\n\n\u003cdiv align=\"center\"\u003e\n  \u003cimg src=\"docs/screenshots/Cover.png\" alt=\"ImageFlow - Profesjonalny konwerter plików graficznych\" width=\"800\"/\u003e\n\u003c/div\u003e\n\n[![CI/CD Pipeline](https://github.com/AlanSteinbarth/Image-Flow/actions/workflows/ci.yml/badge.svg)](https://github.com/AlanSteinbarth/Image-Flow/actions/workflows/ci.yml)\n[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)\n[![Python 3.8+](https://img.shields.io/badge/python-3.8+-blue.svg)](https://www.python.org/downloads/)\n[![Platform](https://img.shields.io/badge/platform-Windows%20%7C%20macOS%20%7C%20Linux-lightgrey.svg)]()\n[![Code style: black](https://img.shields.io/badge/code%20style-black-000000.svg)](https://github.com/psf/black)\n\n**Uniwersalna aplikacja do konwersji plików graficznych z profesjonalnym interfejsem i obsługą 15+ formatów.**\n\n---\n---\n\n## ✨ Funkcje\n\n- **🔄 Obsługa 15+ formatów**: HEIC, JPG, JPEG, PNG, BMP, TIFF, GIF → JPEG, PNG, BMP, TIFF, WEBP\n- **🌍 Uniwersalna kompatybilność**: Windows 10+, macOS 10.14+, Ubuntu 18.04+\n- **🎨 Nowoczesny interfejs**: Jasny/ciemny motyw, animacje, tooltips\n- **📁 Przeciągnij i upuść**: Intuicyjna obsługa drag \u0026 drop\n- **🖼️ Live preview**: Miniaturki i szczegóły plików w czasie rzeczywistym\n- **⚙️ Precyzyjna kontrola**: Regulacja jakości dla JPEG (0-100%)\n- **📊 Progress tracking**: Pasek postępu z animacjami\n- **🛡️ Zaawansowana obsługa błędów**: Szczegółowe logi i graceful error handling\n- **🚫 Anti-duplicate**: Automatyczne wykrywanie i filtrowanie duplikatów\n- **🔧 System-aware**: Natywne dialogi i optymalizacje dla każdego OS\n\n## 🚀 Quick Start\n\n```bash\ngit clone https://github.com/AlanSteinbarth/Image-Flow.git\ncd Image-Flow\npython -m pip install -r requirements.txt\npython app.py\n```\n\n## 📊 Benchmarks \u0026 Performance\n\n| Operacja | Średni czas | Obsługiwane rozmiary |\n|----------|-------------|---------------------|\n| HEIC → JPEG | ~50ms/plik | Do 100MB |\n| PNG → JPEG | ~30ms/plik | Do 50MB |  \n| TIFF → PNG | ~80ms/plik | Do 200MB |\n| Batch (100 plików) | ~3s | Łącznie do 1GB |\n\n*Benchmarki wykonane na MacBook Pro M1, wyniki mogą się różnić*\n\n## 🖥️ Kompatybilność systemów\n\n### ✅ macOS\n- Natywna obsługa dialogów plików\n- Automatyczne centrowanie okien\n- Obsługa gestów i skrótów klawiszowych macOS\n- Folder domyślny: `~/Desktop`\n\n### ✅ Windows\n- Poprawne separatory w dialogach plików\n- Obsługa DPI awareness\n- Wykrywanie różnych nazw folderów Desktop (Pulpit, Bureau, Escritorio)\n- Wsparcie dla różnych wersji językowych\n\n### ✅ Linux\n- Obsługa XDG user directories\n- Kompatybilność z różnymi środowiskami graficznymi\n- Automatyczne wykrywanie folderu Desktop\n\n## 📋 Wymagania\n\n- **Python**: 3.8 lub nowszy\n- **System operacyjny**: Windows 10+, macOS 10.14+, Ubuntu 18.04+ (lub inne dystrybucje Linux)\n\n## 🚀 Instalacja\n\n### 1. Klonowanie repozytorium\n```bash\ngit clone \u003cadres-repo\u003e\ncd imageflow\n```\n\n### 2. Tworzenie środowiska wirtualnego (zalecane)\n\n#### Windows:\n```cmd\npython -m venv venv\nvenv\\Scripts\\activate\n```\n\n#### macOS/Linux:\n```bash\npython3 -m venv venv\nsource venv/bin/activate\n```\n\n### 3. Instalacja zależności\n\n#### Metoda 1: Przez pip (zalecana)\n```bash\npip install -r requirements.txt\n```\n\n#### Metoda 2: Instalacja jako pakiet\n```bash\npip install -e .\n```\nPo tej instalacji możesz uruchomić aplikację z dowolnego miejsca:\n```bash\nimage-converter\n```\n\n## ▶️ Uruchomienie\n\n### Metoda 1: Przez skrypt uruchamiający (zalecana na macOS/Linux)\n```bash\n./run.sh\n```\n\n### Metoda 2: Bezpośrednio przez Python\n```bash\n# Upewnij się, że masz aktywne środowisko wirtualne lub conda\npython app.py\n```\n\n### Metoda 3: Jeśli zainstalowano jako pakiet\n```bash\nimage-converter\n```\n\n### ⚠️ Ważne uwagi dla macOS\n- **NIE używaj** `/usr/bin/python3` (systemowy Python)\n- Użyj `python` z aktywnego środowiska conda/venv\n- Jeśli masz błąd \"No module named 'PIL'\", sprawdź czy używasz właściwego interpretera Python\n\n## 📝 Instrukcja użytkowania\n\n1. **Wybór plików**: Kliknij \"Wybierz pliki do konwersji\" lub przeciągnij pliki do okna\n2. **Podgląd**: Kliknij na plik z listy aby zobaczyć miniaturę i szczegóły\n3. **Format wyjściowy**: Wybierz docelowy format z listy rozwijanej\n4. **Jakość**: Ustaw jakość konwersji (tylko dla JPEG)\n5. **Folder docelowy**: Wybierz gdzie zapisać skonwertowane pliki\n6. **Konwersja**: Kliknij \"Konwertuj\" aby rozpocząć proces\n\n## 🔧 Funkcje specyficzne dla systemów\n\n### macOS\n- Dialog wyboru plików używa spacji jako separatorów formatów\n- Automatyczne centrowanie okien na ekranie\n- Obsługa natywnego zamykania aplikacji (Cmd+Q)\n\n### Windows\n- Dialog wyboru plików używa średników jako separatorów formatów\n- Automatyczne wykrywanie różnych nazw folderów Desktop\n- Obsługa DPI awareness dla wyświetlaczy wysokiej rozdzielczości\n\n### Linux\n- Używa XDG user directories do wykrywania folderu Desktop\n- Kompatybilność z różnymi środowiskami graficznymi (GNOME, KDE, XFCE)\n\n## 🐛 Rozwiązywanie problemów\n\n### Błędy uprawnień\nJeśli pojawi się błąd uprawnień do zapisu:\n- **Windows**: Uruchom jako administrator\n- **macOS**: Sprawdź uprawnienia w Systemowych ustawieniach → Bezpieczeństwo\n- **Linux**: Sprawdź uprawnienia do folderu docelowego\n\n### Błędy importu bibliotek\n```bash\npip install --upgrade -r requirements.txt\n```\n\n### Problemy z dragiem \u0026 drop\nUpewnij się, że biblioteka `tkinterdnd2` jest zainstalowana:\n```bash\npip install tkinterdnd2\n```\n\n### Przycisk \"Konwertuj\" nie działa\nJeśli przycisk \"Konwertuj\" jest nieaktywny lub nic się nie dzieje:\n1. **Sprawdź czy wybrano pliki**: Dodaj przynajmniej jeden plik do konwersji\n2. **Sprawdź folder docelowy**: Upewnij się, że wybrano folder zapisu\n3. **Restart aplikacji**: Zamknij i uruchom aplikację ponownie\n4. **Sprawdź logi**: Sprawdź pole logów na dole aplikacji pod kątem błędów\n\n### Test aplikacji\nMożesz uruchomić automatyczny test funkcjonalności:\n```bash\npython test_app.py\n```\n\n\n## 📸 Zrzuty ekranu\n\n### Udana konwersja z podglądem pliku\n![ImageFlow - Komunikat sukcesu z podglądem konwertowanego obrazu](docs/screenshots/Zrzut%20ekranu%202025-06-21%20o%2023.45.25.png)\n*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.*\n\n### Konfiguracja konwersji z wybranymi plikami  \n![ImageFlow - Interfejs z wybranymi plikami i ustawieniami konwersji](docs/screenshots/Zrzut%20ekranu%202025-06-21%20o%2023.43.40.png)\n*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.*\n\n### Czysty interfejs startowy (ciemny motyw)\n![ImageFlow - Główny interfejs aplikacji w ciemnym motywie](docs/screenshots/Zrzut%20ekranu%202025-06-21%20o%2023.41.33.png)\n*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.*\n\n### Interfejs w jasnym motywie\n![ImageFlow - Aplikacja w jasnym motywie z przełącznikiem motywów](docs/screenshots/Zrzut%20ekranu%202025-06-21%20o%2023.41.17.png)\n*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.*\n\n## 📄 Licencja\n\nMIT License - zobacz plik [LICENSE](LICENSE) po szczegóły.\n\n## 👨‍💻 Autor\n\nAlan Steinbarth\n\n- GitHub: [@AlanSteinbarth](https://github.com/AlanSteinbarth)\n- LinkedIn: [Alan Steinbarth](https://linkedin.com/in/alansteinbarth)\n\n---\n\n\u003cdiv align=\"center\"\u003e\n\n**⭐ Jeśli ImageFlow Ci pomógł, zostaw gwiazdkę! ⭐**\n\n[![GitHub stars](https://img.shields.io/github/stars/AlanSteinbarth/Image-Flow.svg?style=social\u0026label=Star)](https://github.com/AlanSteinbarth/Image-Flow)\n[![GitHub forks](https://img.shields.io/github/forks/AlanSteinbarth/Image-Flow.svg?style=social\u0026label=Fork)](https://github.com/AlanSteinbarth/Image-Flow/fork)\n\n*Zbudowane z ❤️ dla społeczności open source*\n\n\u003c/div\u003e\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Falansteinbarth%2Fimage-flow","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Falansteinbarth%2Fimage-flow","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Falansteinbarth%2Fimage-flow/lists"}