@@ -2,6 +2,7 @@ import 'dart:async';
2
2
import 'dart:convert' ;
3
3
import 'dart:io' ;
4
4
import 'dart:isolate' ;
5
+ import 'dart:math' ;
5
6
import 'dart:ui' as ui;
6
7
7
8
import 'package:fast_image_resizer/fast_image_resizer.dart' ;
@@ -12,6 +13,7 @@ import 'package:logging/logging.dart';
12
13
import 'package:meta/meta.dart' ;
13
14
import 'package:pdfrx/pdfrx.dart' ;
14
15
import 'package:saber/components/canvas/_asset_cache.dart' ;
16
+ import 'package:saber/components/canvas/canvas_image.dart' ;
15
17
import 'package:saber/components/canvas/invert_widget.dart' ;
16
18
import 'package:saber/data/file_manager/file_manager.dart' ;
17
19
import 'package:saber/data/prefs.dart' ;
@@ -48,10 +50,22 @@ sealed class EditorImage extends ChangeNotifier {
48
50
49
51
Rect srcRect = Rect .zero;
50
52
51
- Rect _dstRect = Rect .zero;
53
+ late Rect _dstRect =
54
+ Rect .fromLTWH (0 , 0 , CanvasImage .minImageSize, CanvasImage .minImageSize);
52
55
Rect get dstRect => _dstRect;
53
56
set dstRect (Rect dstRect) {
54
57
_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
+ }
55
69
notifyListeners ();
56
70
}
57
71
0 commit comments