我的应用通过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 原因:空指针取消引用
请帮助我处理此问题。