需求

画报分享,常见于电商APP

效果实现

1 写布局

2 将需要导出的内容用RepaintBoundary包裹


注意:需要生成一个key,并赋给RepaintBoundary,后面要用到

3 编写点击事件
3.1 判断是否有保存图片的权限
使用permission_handler插件

PermissionStatus status = await Permission.storage.status;if (!status.isGranted) {status = await Permission.storage.request();return;}

3.2 将组件生成图片

BuildContext buildContext = _repaintKey.currentContext;
RenderRepaintBoundary boundary = buildContext.findRenderObject();
ui.Image image = await boundary.toImage();
ByteData byteData = await image.toByteData(format: ui.ImageByteFormat.png);

注意:await boundary.toImage();返回的是 ui.Image ,其中Image就是 dart:ui中的Image,面前加的ui,需要在导入包的时候as。

import 'dart:ui' as ui;

3.3 保存图片
使用image_gallery_saver插件

final result = await ImageGallerySaver.saveImage(byteData.buffer.asUint8List());
if(result['isSuccess']){DialogUtils.toast('保存成功');Navigator.of(context).pop();
}else{DialogUtils.toast('保存失败:${result['errorMessage']}');
}

整体代码

 _saveImage() async {//存储权限PermissionStatus status = await Permission.storage.status;if (!status.isGranted) {status = await Permission.storage.request();return;}BuildContext buildContext = _repaintKey.currentContext;if (null != buildContext){RenderRepaintBoundary boundary = buildContext.findRenderObject();ui.Image image = await boundary.toImage();ByteData byteData = await image.toByteData(format: ui.ImageByteFormat.png);final result = await ImageGallerySaver.saveImage(byteData.buffer.asUint8List());if(result['isSuccess']){DialogUtils.toast('保存成功');Navigator.of(context).pop();}else{DialogUtils.toast('保存失败:${result['errorMessage']}');}}}

最终效果

点击保存后,可以在相册内找到

PS

生成二维码使用qr_flutter插件

flutter 保存分享海报、画报相关推荐

  1. uniapp生成商品分享海报

    uniapp用canvas生成一个分享商品的海报 文章目录 前言 一.展示效果 二.使用步骤 1.HTML部分 2.CSS部分 3.JS部分 总结 前言 uniapp用canvas生成一个分享商品的海 ...

  2. 微信分享海报、头像、图片、二维码合成(java)

    最近做一个微信小应用,最后的保存分享海报页面,需要将海报上面展示当前用户的微信头像,二维码.添加参数等,最终合成一张海报展示,分享使用: 需求原型: 如上图所示:就是在原始海报上叠加上当前登录用户的相 ...

  3. 前端Vue H5生成带二维码的分享海报,实现长按保存到手机相册

    前端Vue H5生成带二维码的分享海报,实现长按保存到手机相册 前言:关于H5分享海报的需求,经常会遇到,通常就是一个分享的二维码+分享文案,生成一张图片,供用户在手机上长按保存到手机,然后就可以将保 ...

  4. 小程序生成分享海报图片并保存相册

    文章目录 前言 一.普通二维码生成 二.生成海报图片并保存 1.引入依赖组件 2.生成海报图片 2.1 配置painter海报json 2.2 引入数据构造函数并在适当时间触发生成海报 2.3 弹窗组 ...

  5. ios 从assets加载图片_Flutter图片添加水印功能,Flutter保存Widget为图片

    添加水印,两种实现思路,一种是将图片与水印解码,然后混编再编码,另一种是通过Widget的方式合成. 在这里采用的实现思路是使用层叠布局Stack加载图片以及水印部分,水印部分可能是一个现成的图片也可 ...

  6. h5页面生成图片分享到微信js_html2canvas 动态生成微信分享海报的优质js库

    如何把网页上的内容用javascript来实现截图?今天分享的html2canvas就可以. 介绍 在微信项目中经常会遇到动态生成海报的需求,Web前端合成图片往往会使用canvas.canvas虽然 ...

  7. 微信小程序之分享海报生成

    作者 | 结一 为了吸引更多的用户,设计好一个分享海报还是很有必要的.而小程序要生成一个海报还是有点坑的,下面分享下我们打卡小程序的一些经验. 分享海报的效果图如下: 制作要求: 海报以弹窗形式展现, ...

  8. h5页面使用html2canvas实现分享海报

    这段做了一个nft数藏类项目,h5版本里需要实现一个分享海报的功能,总结如下. 功能简单来说就是,使用html2canvas生成海报图片,在pc端可以显示下载按钮可以下载海报,在手机端可以使用手机浏览 ...

  9. h5页面生成分享海报(保存图片、分享)

    一.案例简介 最近遇见了h5分享页面,就是自己写的整页内容(内含二维码)可以长按保存到手机里,然后发给别人. 其实就是h5生成分享海报,以前的时候写过这个东西,但是太久了都忘了,然后上网去搜索,答案也 ...

最新文章

  1. 算法-------LIS算法(Java版本)
  2. java lists 引用包,在线等java【不在同一类,同一个包的两个LIst可以实现复制么?怎...
  3. 线程:ReentrantReadWriteLock类
  4. 秒过,度目智慧通行让常态化防疫更高效
  5. spss数据_spss数据分析软件
  6. c++ 字符串转数字
  7. 六年打磨!阿里开源混沌工程工具 ChaosBlade
  8. 1495: 蛇行矩阵
  9. 网络请求中常见的加密机制和加密算法理解
  10. mysql语言的特点不包括_SQL语言具有两种使用方式,分别称为交互式SQL和__________...
  11. 2011东北地区赛G题(二分-网络流判可行性)
  12. 安装配置rsync服务端
  13. 一键刷入twrp工具_OPPORealme X 刷入原生lineage16-AOSP纯净系统完美ROOT 刷机必备
  14. 机器视觉:嵌入式视觉系统中的接口
  15. network 宽带比特b,字节B
  16. 简易可行Live2D直播应用路线分享
  17. 2018年最全阿里巴巴开源项目汇总
  18. linux更新系统内核,Linux内核升级方法详解
  19. php投票小程序源码,微信小程序:投票小程序源码
  20. jquery 封装幻灯插件_21个jQuery幻灯片插件

热门文章

  1. 【一包通刷】晶晨S905L3A/B_完美AI语音线刷包_打开ADB_ROOT权限
  2. jacob操作word和excel
  3. Editplus设置/修改默认字符集
  4. 云服务器修复,云服务器修复
  5. 解决windows系统powershell命令行无法使用代理的问题
  6. vue实现一个日历切换功能
  7. 地图四染色问题——栈的回溯
  8. 微信小程序---- 获取手机号(微信最新更新)
  9. c语言考试系统题库判断和选择,C考试系统题库判断和选择.doc
  10. windows下,配置mysql远程连接