如何解决Flutter 如何在图像共享时在图像上添加水印
这是我的图像共享代码,现在我想共享带有一些短信水印的图像......!我看到 他们正在展示 drwaString 的此类文章,但无法获得它...请问您能帮帮我吗??水印 分享按钮..
void _onShare() async {
var request = await HttpClient().getUrl(Uri.parse(imagepath));
var response = await request.close();
Uint8List bytes = await consolidateHttpClientResponseBytes(response);
await Share.file('ESYS AMLOG','.jpg',bytes,'image/jpg',text: "Hello");
}
解决方法
您可以使用 image package
可以在 in this medium article 找到完整的教程,但您可以查看此代码段
import 'package:image/image.dart' as ui;
class _MyHomePageState extends State<MyHomePage> {
File _originalImage;
File _watermarkImage;
File _watermarkedImage;
applyWaterMark() async {
ui.Image originalImage = ui.decodeImage(_originalImage.readAsBytesSync());
ui.Image watermarkImage = ui.decodeImage(_watermarkImage.readAsBytesSync());
// add watermark over originalImage
// initialize width and height of watermark image
ui.Image image = ui.Image(160,50);
ui.drawImage(image,watermarkImage);
// give position to watermark over image
// originalImage.width - 160 - 25 (width of originalImage - width of watermarkImage - extra margin you want to give)
// originalImage.height - 50 - 25 (height of originalImage - height of watermarkImage - extra margin you want to give)
ui.copyInto(originalImage,image,dstX: originalImage.width - 160 - 25,dstY: originalImage.height - 50 - 25);
// for adding text over image
// Draw some text using 24pt arial font
// 100 is position from x-axis,120 is position from y-axis
ui.drawString(originalImage,ui.arial_24,100,120,'Think Different');
// Store the watermarked image to a File
List<int> wmImage = ui.encodePng(originalImage);
setState(() {
_watermarkedImage = File.fromRawPath(Uint8List.fromList(wmImage));
});
}
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。