Skip to content

Commit 9bc76ae

Browse files
committed
fix: correct images that are too small
1 parent 66df857 commit 9bc76ae

File tree

1 file changed

+15
-1
lines changed

1 file changed

+15
-1
lines changed

lib/components/canvas/image/editor_image.dart

Lines changed: 15 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ import 'dart:async';
22
import 'dart:convert';
33
import 'dart:io';
44
import 'dart:isolate';
5+
import 'dart:math';
56
import 'dart:ui' as ui;
67

78
import 'package:fast_image_resizer/fast_image_resizer.dart';
@@ -12,6 +13,7 @@ import 'package:logging/logging.dart';
1213
import 'package:meta/meta.dart';
1314
import 'package:pdfrx/pdfrx.dart';
1415
import 'package:saber/components/canvas/_asset_cache.dart';
16+
import 'package:saber/components/canvas/canvas_image.dart';
1517
import 'package:saber/components/canvas/invert_widget.dart';
1618
import 'package:saber/data/file_manager/file_manager.dart';
1719
import '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

Comments
 (0)