feat: jfif/jpe/wbmp format destegi, pencere cascade yerlesimi, konum kaydi duzeltmesi
- file_handler/image_manager: jfif, jpe, wbmp uzantilari - .desktop + install.sh MimeType: image/vnd.wap.wbmp eklendi - main.dart: yeni pencere oncekinin saginda acilir (screen_retriever ile ekran tespiti) - viewer_screen: 2sn polling kaldirildi, konum kaydi tek akisa oturtuldu (acilis + move/resize debounce + close senkron) - dist/rebuild-deb.sh: .desktop kaynaktan kopyalanir (MimeType/StartupWMClass guncel kalir) - .deb guncellendi, docs: session-2026-08-03 + plan dokumanlari
This commit is contained in:
1 parent
d09351feef
commit
a65bdc152c
17 files changed
+272
-38
No files matched your search
@@ -0,0 +1,59 @@
|
||||
# Ek Görüntü Formatları Destek Planı
|
||||
|
||||
> Tarih: 2026-08-03 · Değerlendirme + implementasyon planı
|
||||
> Not: TIFF değerlendirildi ve **vazgeçildi** (kullanıcı kararı). Bu plan yalnızca mevcut mimariye sıfır maliyetle eklenebilen formatları kapsar.
|
||||
|
||||
## 1. Hedef
|
||||
|
||||
imajViewer'ın desteklediği format listesini, **ek decode katmanı gerektirmeden** (Flutter/Skia'nın zaten açabildiği) formatlarla genişletmek.
|
||||
|
||||
## 2. Mevcut Durum
|
||||
|
||||
### Desteklenen uzantılar (kod içi, 3 yerde)
|
||||
| Dosya | Satır | Liste |
|
||||
|---|---|---|
|
||||
| `lib/services/file_handler.dart` | 9 | png, jpg, jpeg, webp, bmp, gif |
|
||||
| `lib/services/image_manager.dart` | 24 | png, jpg, jpeg, webp, bmp, gif |
|
||||
| `imajviewer.desktop` + `deb/.../imajviewer.desktop` | 9 | image/png;image/jpeg;image/webp;image/bmp;image/gif;image/jpg |
|
||||
| `install.sh` | 77 | aynı MimeType listesi |
|
||||
|
||||
### Flutter'ın yerleşik codec'leri (Skia)
|
||||
Resmi dokümantasyona göre Flutter açabilir: **JPEG, PNG, GIF, WebP, BMP, WBMP**
|
||||
|
||||
Yani Skia zaten açabiliyor ama listemizde olmayanlar:
|
||||
- `.jfif` — JPEG/JFIF içerik (aslında JPEG, magic-byte aynı)
|
||||
- `.jpe` — JPEG alternatif uzantısı
|
||||
- `.wbmp` — Skia'da WBMP codec var
|
||||
- `.avif` — **YOK**: Flutter issue #61229 açık, native plugin (`flutter_avif`/libavif) gerekir → kapsam dışı
|
||||
- `.tif/.tiff` — **YOK**: image paketi gerekir → vazgeçildi
|
||||
|
||||
## 3. Eklenecekler
|
||||
|
||||
| Uzantı | MIME | Neden açılır | Maliyet |
|
||||
|---|---|---|---|
|
||||
| `.jfif` | image/jpeg | JPEG codec, aynı magic byte | sadece filtre |
|
||||
| `.jpe` | image/jpeg | JPEG alternatif uzantısı | sadece filtre |
|
||||
| `.wbmp` | image/vnd.wap.wbmp | Skia WBMP codec | sadece filtre |
|
||||
|
||||
> `.avif` bilinçli olarak eklenmiyor: Flutter'ın yerleşik decoder'ı yok; native libavif bağımlılığı "ultra hafif" felsefeyi bozar. İstenirse ileride ayrı plan yapılır.
|
||||
|
||||
## 4. Yapılacaklar (sıralı)
|
||||
|
||||
1. [ ] `file_handler.dart` → allowedExtensions: `'jfif', 'jpe', 'wbmp'` ekle
|
||||
2. [ ] `image_manager.dart` → supported: `'jfif', 'jpe', 'wbmp'` ekle
|
||||
3. [ ] `imajviewer.desktop` → MimeType'a `image/jpeg` zaten var (jfif/jpe kapsar), `image/vnd.wap.wbmp;` ekle
|
||||
4. [ ] `deb/usr/share/applications/imajviewer.desktop` → aynı
|
||||
5. [ ] `install.sh` → aynı MimeType güncellemesi
|
||||
6. [ ] Windows installer (`.iss`) dosya ilişkilendirme listesi kontrolü — varsa `image/jpeg` jfif/jpe'yi kapsar
|
||||
|
||||
## 5. Riskler / Açık Sorular
|
||||
|
||||
- **JFIF varyantı:** Bazı .jfif dosyaları CMYK-JPEG olabilir; Skia çoğunu açıyor ama tamamını değil → açılmayanlar `errorBuilder` ekranı gösterir (mevcut davranış, çökme yok)
|
||||
- **WBMP nadir:** Çoğu kullanıcı hiç karşılaşmaz; eklemesi zararsız
|
||||
- **Windows ilişkilendirme:** Inno Setup `.iss` dosyası `image/jpeg` kayıtlıysa .jfif/.jpe otomatik kapsanır; `.wbmp` için ayrı registry gerekebilir (opsiyonel)
|
||||
|
||||
## 6. Kabul Kriterleri
|
||||
|
||||
- [ ] `.jfif`, `.jpe`, `.wbmp` dosyaları dosya seçicide görünür
|
||||
- [ ] JFIF dosyası pan/zoom/filtre ile görüntülenir
|
||||
- [ ] Mevcut PNG/JPEG/WebP/GIF/BMP davranışı değişmez
|
||||
Reference in new issue
Block a user