公司要求拍照以后返回加一层水印在照片上,网上找了几个组件本来都实现了结果发现只有英文不给写中文气得要死
整体来说就是这个方法,思路就是把照片当做画布然后再画一个水印出来设置透明背景把两张图拼在一起 copyImageToDocumentDirectory方法是为了解决ios图片地址的问题 有兴趣的小伙伴可以参考一下
Future<String> createAndSaveImageWithMerge(String imagePath) async {
final image = await loadImage(imagePath);
final imageWidth = image.width;
final imageHeight = image.height;
final recorder = ui.PictureRecorder();
final canvas = Canvas(
recorder,
Rect.fromPoints(Offset(0, 0),
Offset(imageWidth.toDouble(), imageHeight.toDouble())));
final paint = Paint();
canvas.drawImage(image, Offset.zero, paint);
final textSpan = TextSpan(
text:
'${widget.watermarkModel?.siteName ?? "--"}\n${widget.watermarkModel?.watermarkTime}\n${widget.watermarkModel?.addressName}\n',
style: const TextStyle(color: Colors.white, fontSize: 50),
);
final textPainter = TextPa