#image #flutter #dart #paint
Вопрос:
Я разрешаю пользователю рисовать на изображении. После сохранения качество изображения снизится. Как этого не допустить?
Future<void> _save() async {
RenderRepaintBoundary boundary =
globalKey.currentContext.findRenderObject();
ui.Image image = await boundary.toImage();
ByteData byteData = await image.toByteData(format: ui.ImageByteFormat.png);
Uint8List pngBytes = byteData.buffer.asUint8List();
Navigator.pop(context, pngBytes);
}
Полный код здесь
https://github.com/ptyagicodecamp/flutter_cookbook/blob/widgets/flutter_widgets/lib/canvas/painting.dart
Пожалуйста, помогите!
Ответ №1:
попробуйте увеличить пиксельрацию, 2 работает для меня:
Future<void> _save() async {
RenderRepaintBoundary boundary =
globalKey.currentContext.findRenderObject();
ui.Image image = await boundary.toImage(pixelRatio: 2.0);
ByteData byteData = await image.toByteData(format: ui.ImageByteFormat.png);
Uint8List pngBytes = byteData.buffer.asUint8List();
Navigator.pop(context, pngBytes);
}