我试图在图像上添加文本,然后保存到图片库。
代码:
_originalImage = File(pickedFile.path);
ui.Image Img = ui.decodeImage(_originalImage.readAsBytesSync());
ui.drawString(Img, ui.arial_24, 100, 120, 'Add Text');
List<int> wmImage = ui.encodeJpg(Img);
_watermarkedImage = File.fromRawPath(Uint8List.fromList(wmImage));但这会引发一个错误:
FileSystemException:无法打开文件,路径=?
我从ImagePicker (照相机)源获取图像。
发布于 2020-09-26 21:20:08
您可以使用带有全局密钥的RepaintBoundary。这只是一个给你一个想法的示例代码。以下是可能有帮助的视频链接- https://www.youtube.com/watch?v=jljv7yNzqJw
takeScreenshot() async {
RenderRepaintBoundary boundary =
globalKey.currentContext.findRenderObject();
ui.Image image = await boundary.toImage();
final directory = (await getApplicationDocumentsDirectory()).path;
byteData = await image.toByteData(format: ui.ImageByteFormat.png);
Uint8List pngBytes = byteData.buffer.asUint8List();
print(pngBytes);
File imgFile = new File('$directory/screenshot${rng.nextInt(200)}.png');
setState(() {
_imageFile = imgFile;
});
_savefile(_imageFile);
//saveFileLocal();
imgFile.writeAsBytes(pngBytes);}
https://stackoverflow.com/questions/64081077
复制相似问题