我代表@pskink 从我的 Android 设备上发布他的测试代码和生成的图像:
print('devicePixelRatio: ' + MediaQuery.of(context).devicePixelRatio.toString());
var pr = ui.PictureRecorder();
var c = Canvas(pr);
var p = Paint();
c.drawRect(Rect.fromLTWH(0, 0, 1, 3), p..color = Color(0x8000ff00));
c.drawRect(Rect.fromLTWH(1.5, 0, 1, 3), p);
c.drawLine(Offset(3.5, 3.0), Offset(3.5, 6.0), p..color = Color(0x80ff0000));
c.drawLine(Offset(5.0, 3.0), Offset(5.0, 6.0), p);
var img = await pr.endRecording().toImage(6, 6);
var data = await img.toByteData(format: ui.ImageByteFormat.png);
final imgDir = Platform.isAndroid ?
(await pathman.getExternalStorageDirectories(type: pathman.StorageDirectory.pictures))[0] :
(await pathman.getApplicationDocumentsDirectory());
if (Platform.isAndroid) {
await Directory(imgDir.path).create(recursive: true);
}
final suffix = DateTime.now().toString().replaceAll(RegExp(r'[\:\ \.]+'), '-');
final filePath = '${imgDir.path}/screenshot-$suffix.png';
File(filePath).writeAsBytesSync(data.buffer.asInt8List());
在我CustomPaint
的 's中有上面的代码paint()
给了我下面的小图像。
