# PaintFE: przenośny wieloplatformowy edytor grafiki w Rust
Twórca Kyle Jackson wydał PaintFE — otwartoźródłowy edytor obrazów dla Windows i macOS. Projekt napisany w Rust, spakowany w pojedynczy plik wykonywalny bez zależności. Obsługuje warstwy, gradienty, tryby mieszania blend modes, filtry przyspieszane przez GPU, skrypty za pomocą Rhai oraz pracę z animowanymi GIF/APNG. Licencja MIT, repozytorium na GitHub.
Narzędzia obejmują edytory tekstu i zaawansowane palety kolorów. Lokalizacja w 15 językach: angielski, niemiecki, francuski, hiszpański, portugalski, włoski, rosyjski, polski, turecki, japoński, białoruski.
Realizacja techniczna
PaintFE zbudowany w Rust z użyciem Fe jako aluzji do żelaza (iron w układzie okresowym). Przyspieszenie filtrów przez GPU zwiększa wydajność podczas obróbki obrazów. Silnik skryptowy Rhai umożliwia automatyzację zadań bez kompilacji.
Kluczowe funkcje:
- Warstwy i blend modes: standardowe tryby mieszania, podobne do Photoshop.
- Gradienty i filtry: liniowe, radialne gradienty z wsparciem GPU.
- Animacja: import/eksport GIF i APNG z linią czasu.
- Skrypty: Rhai do niestandardowych narzędzi i przetwarzania wsadowego.
- Przenośność: jeden EXE/DMG, bez zależności runtime.
GitHub Copilot był używany do kodu szablonowego i składni Rust. Wszystkie fragmenty przeszły ręczną weryfikację, testy i przegląd. Architektura oraz UI/UX zaprojektowane przez ludzi.
Zalety dla programistów
Dla programistów średniego/zaawansowanego poziomu PaintFE jest ciekawym przykładem wieloplatformowego GUI w Rust. Projekt pokazuje integrację GPU (prawdopodobnie wgpu lub podobnego), skryptów i potoku zasobów w przenośny plik binarny.
Możliwości rozszerzeń:
- Wtyczki przez skrypty Rhai.
- Niestandardowe shadery dla filtrów.
- Integracja z zewnętrznymi formatami (HEIC, WebP).
Lokalizacja bez zewnętrznych bibliotek ułatwia wdrożenie. Rozmiar pliku wykonywalnego zminimalizowany dzięki statycznemu linkowaniu.
Co ważne
- Przenośność: pojedynczy plik dla Windows/macOS, bez instalacji czy zależności.
- Filtry GPU: przyspieszenie sprzętowe dla operacji zasobożernych.
- Skrypty Rhai: dynamiczna automatyzacja bez rekompilacji.
- Wielojęzyczność: 15 lokalizacji od razu.
- Otwartość: licencja MIT, pełny kod źródłowy na GitHub.
Projekt nadaje się do prototypowania narzędzi do obróbki obrazów. Rust zapewnia bezpieczeństwo pamięci przy pracy z buforami pikseli i zasobami GPU.
— Editorial Team
Brak komentarzy.