有可能在抖动中绘制像素吗?

时间:2019-12-05 10:21:38

标签: flutter

我的应用通过dart image library进行了一些简单的图像处理。作为图像处理的结果,我具有带像素的ByteData。我想按原样显示图像处理的结果(不转换为png或其他格式)。 我尝试实现ui.Image并将其绘制在Canvas上,但是遇到了本机代码错误。我的代码是:

import 'dart:async';
import 'dart:typed_data';
import 'dart:ui' as ui;

import 'package:flutter/material.dart';

class WorkImage implements ui.Image {
  final int width;
  final int height;
  final ByteData byteData;

  WorkImage({
    this.width,
    this.height,
    this.byteData,
  });

  @override
  Future<ByteData> toByteData({
    ui.ImageByteFormat format = ui.ImageByteFormat.rawRgba
  }) {
    return Future.value(byteData);
  }

  @override
  void dispose() {

  }
}

class ViewPainter extends CustomPainter {
  final ui.Image image;

  ViewPainter({ this.image });

  @override
  void paint(Canvas canvas, Size size) {
    canvas.drawImage(image, Offset(0, 0), Paint());
  }

  @override
  bool shouldRepaint(CustomPainter oldDelegate) {
    return false;
  }
}

错误是:

  

信号11(SIGSEGV),代码1(SEGV_MAPERR),故障地址0x78f   原因:空指针取消引用

请帮助我处理此问题。

0 个答案:

没有答案