Files
imajviewer/docs/format-destegi-ek-formatlar.md
Alhan a65bdc152c 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
2026-08-03 06:44:57 +03:00

3.0 KiB
Raw Permalink Blame History

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
  • .avifYOK: Flutter issue #61229 açık, native plugin (flutter_avif/libavif) gerekir → kapsam dışı
  • .tif/.tiffYOK: 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