diff --git a/.gitignore b/.gitignore index cd2a080..908f17c 100644 --- a/.gitignore +++ b/.gitignore @@ -49,7 +49,7 @@ app.*.map.json *.deb *.tar.gz *.exe -!dist/imajviewer_1.6.1_amd64.deb +!dist/imajviewer_1.6.2_amd64.deb !dist/imajviewer_setup_1.1.0.exe deb/usr/lib/imajviewer/ release/ diff --git a/CHANGELOG.md b/CHANGELOG.md index 00223e4..8dadbb8 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,6 +4,11 @@ All notable changes to imajViewer are documented in this file. ## [Unreleased] +## [1.6.2] - 2026-10-14 + +### Changed +- Crop save JPEG quality raised from 93 to 95. + ## [1.6.1] - 2026-10-14 ### Fixed diff --git a/README.md b/README.md index 89d5eb0..475959c 100644 --- a/README.md +++ b/README.md @@ -26,7 +26,7 @@ Ultra-lightweight image viewer written in Flutter — Linux & Windows. - **Settings (gear):** sort by time/name, print, shortcut info - **Print:** send the image to a printer (A4, fit) - **Save visible area:** title bar save icon or `Ctrl+S` — the on-screen region is written at - original resolution as JPEG (quality 93) next to the source file (`photo.jpg` → + original resolution as JPEG (quality 95) next to the source file (`photo.jpg` → `photo_143025.jpg`); active effects (contrast/saturation/brightness), rotation and horizontal flip are baked into the output; if that name already exists, nothing is written and a warning is shown - Drag & drop to open images @@ -92,7 +92,7 @@ folder including `imajviewer.exe` and all DLLs). | Ctrl + R | Flip horizontally (clears effects; press again to undo) | | Double right click | Reset (all effects) | | Left / Right arrow | Previous / next image | -| Ctrl + S | Save visible area (JPEG 93, original resolution) | +| Ctrl + S | Save visible area (JPEG 95, original resolution) | | Ctrl + Q | Close window | | Ctrl + Shift + Q | Close all windows | diff --git a/dist/imajviewer_1.6.1_amd64.deb b/dist/imajviewer_1.6.2_amd64.deb similarity index 80% rename from dist/imajviewer_1.6.1_amd64.deb rename to dist/imajviewer_1.6.2_amd64.deb index 21cc33f..7b56da7 100644 Binary files a/dist/imajviewer_1.6.1_amd64.deb and b/dist/imajviewer_1.6.2_amd64.deb differ diff --git a/lib/l10n/app_en.arb b/lib/l10n/app_en.arb index 955c991..b257860 100644 --- a/lib/l10n/app_en.arb +++ b/lib/l10n/app_en.arb @@ -6,10 +6,10 @@ "sortByName": "By name", "appDescription": "Ultra-lightweight and fast image viewer. Open images and use arrows or keyboard keys to navigate.", "shortcuts": "Shortcuts", - "shortcutsList": "• Left/Right arrow — previous/next image\n• Ctrl+S — save visible area (JPEG 93)\n• Ctrl+R — flip horizontally (clears effects, press again to undo)\n• Ctrl+Q — close window\n• Ctrl+Shift+Q — close all windows\n• Double click — toggle fill/fit\n• Right-drag — contrast\n• Shift+right-drag — rotate\n• Ctrl+right-drag — saturation\n• Ctrl+Shift+right-drag — brightness", + "shortcutsList": "• Left/Right arrow — previous/next image\n• Ctrl+S — save visible area (JPEG 95)\n• Ctrl+R — flip horizontally (clears effects, press again to undo)\n• Ctrl+Q — close window\n• Ctrl+Shift+Q — close all windows\n• Double click — toggle fill/fit\n• Right-drag — contrast\n• Shift+right-drag — rotate\n• Ctrl+right-drag — saturation\n• Ctrl+Shift+right-drag — brightness", "print": "Print", "close": "Close", - "saveCrop": "Save visible area (JPEG 93)", + "saveCrop": "Save visible area (JPEG 95)", "cropSaved": "Saved: {path}", "@cropSaved": { "placeholders": { diff --git a/lib/l10n/app_localizations.dart b/lib/l10n/app_localizations.dart index 4126311..9989f24 100644 --- a/lib/l10n/app_localizations.dart +++ b/lib/l10n/app_localizations.dart @@ -137,7 +137,7 @@ abstract class AppLocalizations { /// No description provided for @shortcutsList. /// /// In en, this message translates to: - /// **'• Left/Right arrow — previous/next image\n• Ctrl+S — save visible area (JPEG 93)\n• Ctrl+R — flip horizontally (clears effects, press again to undo)\n• Ctrl+Q — close window\n• Ctrl+Shift+Q — close all windows\n• Double click — toggle fill/fit\n• Right-drag — contrast\n• Shift+right-drag — rotate\n• Ctrl+right-drag — saturation\n• Ctrl+Shift+right-drag — brightness'** + /// **'• Left/Right arrow — previous/next image\n• Ctrl+S — save visible area (JPEG 95)\n• Ctrl+R — flip horizontally (clears effects, press again to undo)\n• Ctrl+Q — close window\n• Ctrl+Shift+Q — close all windows\n• Double click — toggle fill/fit\n• Right-drag — contrast\n• Shift+right-drag — rotate\n• Ctrl+right-drag — saturation\n• Ctrl+Shift+right-drag — brightness'** String get shortcutsList; /// No description provided for @print. @@ -155,7 +155,7 @@ abstract class AppLocalizations { /// No description provided for @saveCrop. /// /// In en, this message translates to: - /// **'Save visible area (JPEG 93)'** + /// **'Save visible area (JPEG 95)'** String get saveCrop; /// No description provided for @cropSaved. diff --git a/lib/l10n/app_localizations_en.dart b/lib/l10n/app_localizations_en.dart index 6459ab3..bb14b06 100644 --- a/lib/l10n/app_localizations_en.dart +++ b/lib/l10n/app_localizations_en.dart @@ -29,7 +29,7 @@ class AppLocalizationsEn extends AppLocalizations { @override String get shortcutsList => - '• Left/Right arrow — previous/next image\n• Ctrl+S — save visible area (JPEG 93)\n• Ctrl+R — flip horizontally (clears effects, press again to undo)\n• Ctrl+Q — close window\n• Ctrl+Shift+Q — close all windows\n• Double click — toggle fill/fit\n• Right-drag — contrast\n• Shift+right-drag — rotate\n• Ctrl+right-drag — saturation\n• Ctrl+Shift+right-drag — brightness'; + '• Left/Right arrow — previous/next image\n• Ctrl+S — save visible area (JPEG 95)\n• Ctrl+R — flip horizontally (clears effects, press again to undo)\n• Ctrl+Q — close window\n• Ctrl+Shift+Q — close all windows\n• Double click — toggle fill/fit\n• Right-drag — contrast\n• Shift+right-drag — rotate\n• Ctrl+right-drag — saturation\n• Ctrl+Shift+right-drag — brightness'; @override String get print => 'Print'; @@ -38,7 +38,7 @@ class AppLocalizationsEn extends AppLocalizations { String get close => 'Close'; @override - String get saveCrop => 'Save visible area (JPEG 93)'; + String get saveCrop => 'Save visible area (JPEG 95)'; @override String cropSaved(String path) { diff --git a/lib/l10n/app_localizations_tr.dart b/lib/l10n/app_localizations_tr.dart index df82f3f..8c7a8d0 100644 --- a/lib/l10n/app_localizations_tr.dart +++ b/lib/l10n/app_localizations_tr.dart @@ -29,7 +29,7 @@ class AppLocalizationsTr extends AppLocalizations { @override String get shortcutsList => - '• Sol/Sağ ok — önceki/sonraki resim\n• Ctrl+S — görünen alanı kaydet (JPEG 93)\n• Ctrl+R — yatay aynala (efektleri sıfırlar, tekrar basınca geri alır)\n• Ctrl+Q — pencereyi kapat\n• Ctrl+Shift+Q — tüm pencereleri kapat\n• Çift tık — doldur/sığdır geçişi\n• Sağ tık sürükle — kontrast\n• Shift+sağ tık — döndür\n• Ctrl+sağ tık — doygunluk\n• Ctrl+Shift+sağ tık — parlaklık'; + '• Sol/Sağ ok — önceki/sonraki resim\n• Ctrl+S — görünen alanı kaydet (JPEG 95)\n• Ctrl+R — yatay aynala (efektleri sıfırlar, tekrar basınca geri alır)\n• Ctrl+Q — pencereyi kapat\n• Ctrl+Shift+Q — tüm pencereleri kapat\n• Çift tık — doldur/sığdır geçişi\n• Sağ tık sürükle — kontrast\n• Shift+sağ tık — döndür\n• Ctrl+sağ tık — doygunluk\n• Ctrl+Shift+sağ tık — parlaklık'; @override String get print => 'Yazdır'; @@ -38,7 +38,7 @@ class AppLocalizationsTr extends AppLocalizations { String get close => 'Kapat'; @override - String get saveCrop => 'Görünen alanı kaydet (JPEG 93)'; + String get saveCrop => 'Görünen alanı kaydet (JPEG 95)'; @override String cropSaved(String path) { diff --git a/lib/l10n/app_tr.arb b/lib/l10n/app_tr.arb index 5e152a2..b8fcfeb 100644 --- a/lib/l10n/app_tr.arb +++ b/lib/l10n/app_tr.arb @@ -6,10 +6,10 @@ "sortByName": "İsme göre", "appDescription": "Ultra hafif ve hızlı resim görüntüleyici. Görselleri açın, gezinti için okları veya klavye tuşlarını kullanın.", "shortcuts": "Kısayollar", - "shortcutsList": "• Sol/Sağ ok — önceki/sonraki resim\n• Ctrl+S — görünen alanı kaydet (JPEG 93)\n• Ctrl+R — yatay aynala (efektleri sıfırlar, tekrar basınca geri alır)\n• Ctrl+Q — pencereyi kapat\n• Ctrl+Shift+Q — tüm pencereleri kapat\n• Çift tık — doldur/sığdır geçişi\n• Sağ tık sürükle — kontrast\n• Shift+sağ tık — döndür\n• Ctrl+sağ tık — doygunluk\n• Ctrl+Shift+sağ tık — parlaklık", + "shortcutsList": "• Sol/Sağ ok — önceki/sonraki resim\n• Ctrl+S — görünen alanı kaydet (JPEG 95)\n• Ctrl+R — yatay aynala (efektleri sıfırlar, tekrar basınca geri alır)\n• Ctrl+Q — pencereyi kapat\n• Ctrl+Shift+Q — tüm pencereleri kapat\n• Çift tık — doldur/sığdır geçişi\n• Sağ tık sürükle — kontrast\n• Shift+sağ tık — döndür\n• Ctrl+sağ tık — doygunluk\n• Ctrl+Shift+sağ tık — parlaklık", "print": "Yazdır", "close": "Kapat", - "saveCrop": "Görünen alanı kaydet (JPEG 93)", + "saveCrop": "Görünen alanı kaydet (JPEG 95)", "cropSaved": "Kaydedildi: {path}", "@cropSaved": { "placeholders": { diff --git a/lib/services/crop_save_service.dart b/lib/services/crop_save_service.dart index c6adc5a..849a7f2 100644 --- a/lib/services/crop_save_service.dart +++ b/lib/services/crop_save_service.dart @@ -67,7 +67,7 @@ class CropSaveService { required img.Image source, required CropViewParams vp, List? matrix, - int jpegQuality = 93, + int jpegQuality = 95, }) async { final outPath = buildOutputPath(srcPath); if (outPath == null) throw const CropSaveError('file_exists'); diff --git a/pubspec.yaml b/pubspec.yaml index ad91850..4b5ade0 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -1,7 +1,7 @@ name: imajviewer description: "Ultra-lightweight image viewer for Linux and Windows." publish_to: 'none' -version: 1.6.1+13 +version: 1.6.2+14 msix_config: display_name: ImajViewer