Browse Source

1、标注图的绘制

guanxinyi 9 tháng trước cách đây
mục cha
commit
86bafb8863

+ 18 - 4
lib/process/calcuators/urm_calcuators/urm_trace_perfusion.dart

@@ -4,6 +4,9 @@ import 'package:fis_measure/process/calcuators/urm_calcuators/urm_trace_measure.
 import 'package:fis_measure/process/primitives/urm_measure/urm_trace_measure.dart';
 import 'package:fis_measure/process/workspace/urm/application.dart';
 import 'package:vid/us/vid_us_unit.dart';
+import 'dart:ui' as ui;
+import 'dart:convert';
+import 'dart:typed_data';
 
 class URMTracePerfusionCal extends URMTraceMeasureCal {
   URMTracePerfusionCal(super.ref);
@@ -43,15 +46,26 @@ class URMTracePerfusionCal extends URMTraceMeasureCal {
 
         feature.updateFloatValue(first, outresult.resultData, first.unit);
         if (feature is! TracePerfusionImageFeature) return;
-        feature.abc = outresult.perfusionImgData;
-        // final tracePerfusionImageFeature = TracePerfusionImageFeature(ref);
+        if (outresult.perfusionImgBase64 != null) {
+          feature.perfusionImg =
+              await loadImageFromBase64(outresult.perfusionImgBase64!);
+        }
       }
-
-      /// TODO  URMPerfusionFunction.Instance.ShowImage(outresult, feature, currentHostArea);
     } catch (e) {
       logger.e('URM Measure error: $e');
       return;
     }
     ref.application.updateRenderReady.emit(this, null);
   }
+
+  Future<ui.Image> loadImageFromBase64(String base64String) async {
+    // Replace this with your actual Base64 string
+    Uint8List bytes = base64Decode(base64String);
+    ui.Codec codec = await ui.instantiateImageCodec(bytes);
+    ui.FrameInfo frameInfo = await codec.getNextFrame();
+    return frameInfo.image;
+    // setState(() {
+    //   _image = frameInfo.image;
+    // });
+  }
 }

+ 10 - 2
lib/process/primitives/urm_measure/urm_trace_measure.dart

@@ -1,4 +1,3 @@
-import 'package:fis_jsonrpc/rpc.dart';
 import 'package:fis_measure/interfaces/date_types/point.dart';
 import 'package:fis_measure/interfaces/enums/items.dart';
 import 'package:fis_measure/interfaces/process/items/item.dart';
@@ -16,6 +15,7 @@ import 'package:fis_measure/process/primitives/trace.dart';
 import 'package:fis_measure/utils/canvas.dart';
 import 'package:fis_measure/utils/prompt_box.dart';
 import 'package:flutter/material.dart';
+import 'dart:ui' as ui;
 
 class URMTraceMeasure extends Trace {
   URMTraceMeasure(super.meta, super.parent);
@@ -144,7 +144,15 @@ class URMTraceMeasure extends Trace {
 class TracePerfusionImageFeature extends TraceFeature {
   TracePerfusionImageFeature(AreaItemAbstract refItem) : super(refItem);
 
-  NativeArray? abc;
+  ui.Image? perfusionImg;
+  @override
+  void paint(Canvas canvas, Size size) {
+    super.paint(canvas, size);
+    if (perfusionImg != null) {
+      Paint paint = Paint();
+      canvas.drawImage(perfusionImg!, Offset.zero, paint);
+    }
+  }
 }
 
 class TraceCurvatureFeature extends TraceFeature {

+ 1 - 1
pubspec.yaml

@@ -100,7 +100,7 @@ dependency_overrides:
   fis_jsonrpc:
     git:
       url: http://git.ius.plus:88/Project-Wing/fis_lib_jsonrpc.git
-      ref: "9ecd100"
+      ref: "cf62b49"
   fis_lib_business_components:
     git:
       url: http://git.ius.plus/Project-Wing/fis_lib_business_components.git