Browse Source

update(3D measure view): 颈动脉2D图像不缩放

gavin.chen 2 years ago
parent
commit
20888c68bb

+ 1 - 1
lib/measure_page_test.dart

@@ -7,7 +7,7 @@ import 'package:fis_measure/interfaces/process/workspace/exam_info.dart';
 import 'package:fis_measure/interfaces/process/workspace/measure_controller.dart';
 import 'package:fis_measure/process/workspace/measure_controller.dart';
 import 'package:fis_measure/process/workspace/measure_data_controller.dart';
-import 'package:fis_measure/view/main/desktop.dart';
+import 'package:fis_measure/view/measure/measure_main_view.dart';
 import 'package:flutter/material.dart';
 import 'package:get/get.dart';
 

+ 1 - 1
lib/vid_player_test.dart

@@ -1,9 +1,9 @@
+import 'package:fis_measure/view/measure/measure_main_view.dart';
 import 'package:fis_vid/data_host/data_host.dart';
 import 'package:flutter/material.dart';
 import 'package:get/get.dart';
 
 import 'index.dart';
-import 'view/main/desktop.dart';
 
 class VidPlayerPage extends StatefulWidget {
   const VidPlayerPage(this.url, {Key? key}) : super(key: key);

+ 4 - 4
lib/view/3d_view/carotid_player.dart

@@ -109,10 +109,10 @@ class _CarotidPlayerState extends State<CarotidPlayer> {
       return RepaintBoundary(
         child: CustomPaint(
           painter: VidPainter(
-            image: image!,
-            frameIndex: frameIndex,
-            colorFilterMatrix: curColorFilterMatrix,
-          ),
+              image: image!,
+              frameIndex: frameIndex,
+              colorFilterMatrix: curColorFilterMatrix,
+              enableScale: false),
           isComplex: false, //是否为复杂图像(true会缓存)
           size: size,
         ),

+ 25 - 8
lib/view/vid_painter/vid_painter.dart

@@ -10,21 +10,38 @@ class VidPainter extends CustomPainter {
         0, 1, 0, 0, 0, // green
         0, 0, 1, 0, 0, // blue
         0, 0, 0, 1, 0, // alpha
-      ]});
+      ],
+      this.enableScale = true});
   ui.Image image;
   int frameIndex;
   List<double> colorFilterMatrix;
 
+  /// 允许自适应缩放
+  bool enableScale;
+
   @override
   void paint(Canvas canvas, Size size) async {
-    final double scale = size.width / image.width;
-    final double offsetY = (size.height - image.height * scale) / 2;
     canvas.save();
-    canvas.drawImageRect(
-        image,
-        Rect.fromLTWH(0, 0, image.width.toDouble(), image.height.toDouble()),
-        Rect.fromLTWH(0, offsetY, size.width, image.height * scale),
-        Paint()..colorFilter = ColorFilter.matrix(colorFilterMatrix));
+
+    /// TODO: 自适应缩放只做了横向的,纵向的还没有做
+    if (enableScale) {
+      final double scale = size.width / image.width;
+      final double offsetY = (size.height - image.height * scale) / 2;
+      canvas.drawImageRect(
+          image,
+          Rect.fromLTWH(0, 0, image.width.toDouble(), image.height.toDouble()),
+          Rect.fromLTWH(0, offsetY, size.width, image.height * scale),
+          Paint()..colorFilter = ColorFilter.matrix(colorFilterMatrix));
+    } else {
+      final double offsetX = (size.width - image.width) / 2;
+      final double offsetY = (size.height - image.height) / 2;
+      canvas.drawImageRect(
+          image,
+          Rect.fromLTWH(0, 0, image.width.toDouble(), image.height.toDouble()),
+          Rect.fromLTWH(offsetX, offsetY, image.width.toDouble(),
+              image.height.toDouble()),
+          Paint()..colorFilter = ColorFilter.matrix(colorFilterMatrix));
+    }
     canvas.restore();
   }