Dart 颤振:将图像添加到画布,编译时出错
我正在尝试将图像从字节缓冲区添加到画布元素:Dart 颤振:将图像添加到画布,编译时出错,dart,flutter,Dart,Flutter,我正在尝试将图像从字节缓冲区添加到画布元素: Uint8List image = bd.buffer.asUint8List(++offset, len); await ui.decodeImageFromList(image, addIMage); 其中调用了回调函数addImage() Canvas painter是CustomPainter,如下所示: class CanvasPainter implements CustomPainter{ var items = new List
Uint8List image = bd.buffer.asUint8List(++offset, len);
await ui.decodeImageFromList(image, addIMage);
其中调用了回调函数addImage()
Canvas painter是CustomPainter,如下所示:
class CanvasPainter implements CustomPainter{
var items = new List();
void addItems(var item){
items.add(item);}
@override
void paint(Canvas canvas, Size size){
for (var item in items){
canvas.drawImage(item,new Offset(50.0,50.0),new Paint();
}
...
}
class WriteScreen extends StatefulWidget {
ScreenState state;
@override
ScreenState createState() => state = new ScreenState();
}
class ScreenState extends State<WriteScreen> {
GestureDetector touch;
CustomPaint canvas;
CanvasPainter canvasPainter;
@override
void initState() {
super.initState();
canvasPainter = new CanvasPainter(const Color.fromRGBO(255, 255, 255, 1.0));
}
@override
Widget build(BuildContext context) {
touch = new GestureDetector(
onPanStart: panStart
);
final mediaQueryData = MediaQuery.of(context);
canvasPainter.size = mediaQueryData.size;
canvas = new CustomPaint( painter: canvasPainter);
}
}
我被错误消息弄糊涂了,因为我正在从dart.ui导入图像,所以我不确定编译器为什么会抛出此异常
任何帮助/建议都将不胜感激。在CanvasPainter中添加一些类型,并使用任何新的错误消息更新问题
import 'dart:ui' as ui;
import 'package:flutter/material.dart';
....
class CanvasPainter extends CustomPainter {
List<ui.Image> items = new List<ui.Image>();
void addItems(ui.Image item) {
items.add(item);
}
@override
void paint(Canvas canvas, Size size) {
for (ui.Image item in items) {
canvas.drawImage(item, new Offset(50.0, 50.0), new Paint());
}
}
}
将'dart:ui'导入为ui;
进口“包装:颤振/材料.省道”;
....
类CanvasPainter扩展了CustomPainter{
列表项=新列表();
无效附加项(ui.Image项){
项目。添加(项目);
}
@凌驾
空心油漆(帆布,尺寸){
用于(项中的ui.Image项){
canvas.drawImage(项目,新偏移量(50.0,50.0),新绘制());
}
}
}
能否共享canvas_painter.dart的第64行?那你的进口呢?这就成功了。“类型为#lib1::Image的值”的错误让我有点困惑,但实际上这是一个简单的问题。谢谢你的帮助
compiler message: lib/canvas_painter.dart:64:28: Error: A value of type '#lib1::Image' can't be assigned to a variable of type 'dart.ui::Image'.
compiler message: Try changing the type of the left hand side, or casting the right hand side to 'dart.ui::Image'.
compiler message: canvas.drawImage(item, new Offset(50.0, 50.0), strokePaint);
compiler message:
import 'dart:ui' as ui;
import 'package:flutter/material.dart';
....
class CanvasPainter extends CustomPainter {
List<ui.Image> items = new List<ui.Image>();
void addItems(ui.Image item) {
items.add(item);
}
@override
void paint(Canvas canvas, Size size) {
for (ui.Image item in items) {
canvas.drawImage(item, new Offset(50.0, 50.0), new Paint());
}
}
}