@@ -2,6 +2,7 @@ import 'dart:async';
22import 'dart:convert' ;
33import 'dart:io' ;
44import 'dart:isolate' ;
5+ import 'dart:math' ;
56import 'dart:ui' as ui;
67
78import 'package:fast_image_resizer/fast_image_resizer.dart' ;
@@ -12,6 +13,7 @@ import 'package:logging/logging.dart';
1213import 'package:meta/meta.dart' ;
1314import 'package:pdfrx/pdfrx.dart' ;
1415import 'package:saber/components/canvas/_asset_cache.dart' ;
16+ import 'package:saber/components/canvas/canvas_image.dart' ;
1517import 'package:saber/components/canvas/invert_widget.dart' ;
1618import 'package:saber/data/file_manager/file_manager.dart' ;
1719import 'package:saber/data/prefs.dart' ;
@@ -48,10 +50,22 @@ sealed class EditorImage extends ChangeNotifier {
4850
4951 Rect srcRect = Rect .zero;
5052
51- Rect _dstRect = Rect .zero;
53+ late Rect _dstRect =
54+ Rect .fromLTWH (0 , 0 , CanvasImage .minImageSize, CanvasImage .minImageSize);
5255 Rect get dstRect => _dstRect;
5356 set dstRect (Rect dstRect) {
5457 _dstRect = dstRect;
58+ if (_dstRect.width < CanvasImage .minImageSize ||
59+ _dstRect.height < CanvasImage .minImageSize) {
60+ final scale = max (CanvasImage .minImageSize / _dstRect.width,
61+ CanvasImage .minImageSize / _dstRect.height);
62+ _dstRect = Rect .fromLTWH (
63+ _dstRect.left,
64+ _dstRect.top,
65+ _dstRect.width * scale,
66+ _dstRect.height * scale,
67+ );
68+ }
5569 notifyListeners ();
5670 }
5771
0 commit comments