我正在截取一个小部件,并将其作为Uint8List。
Path provider和Share Plus不支持在web上共享文件。有谁能从网上分享Uint8List的图片吗?
发布于 2022-06-04 18:06:57
不确定我们是否可以共享这个映像,但是我们可以用uint8List下载一个映像。尝试以下几点
在index.html中添加此脚本
<script src="https://cdnjs.cloudflare.com/ajax/libs/amcharts/3.21.15/plugins/export/libs/FileSaver.js/FileSaver.min.js"></script>在颤振中使用这个
import 'dart:html' as html; //ignore: avoid_web_libraries_in_flutter
import 'dart:js' as js;
import 'dart:typed_data';
import 'package:flutter/material.dart';
import 'package:image_picker/image_picker.dart';
void main() {
runApp(const MyApp());
}
class MyApp extends StatelessWidget {
const MyApp({
Key ? key
}): super(key: key);
@override
Widget build(BuildContext context) {
return const MaterialApp(
home: MyHomePage(),
);
}
}
class MyHomePage extends StatefulWidget {
const MyHomePage({
Key ? key
}): super(key: key);
@override
State < MyHomePage > createState() => _MyHomePageState();
}
class _MyHomePageState extends State < MyHomePage > {
final ImagePicker _picker = ImagePicker();
XFile ? image;
@override
Widget build(BuildContext context) {
return Scaffold(
body: SafeArea(
child: Center(
child: Column(
mainAxisAlignment: MainAxisAlignment.center,
children: [
InkWell(
onTap: () async {
image = await _picker.pickImage(source: ImageSource.gallery);
},
child: const Icon(
Icons.upload,
color: Colors.black,
),
),
const SizedBox(
height: 50,
),
TextButton(
onPressed: () async {
// Directory tempDir = await getTemporaryDirectory();
// String tempPath = tempDir.path;
// print(tempPath);
saveImg(await image!.readAsBytes(), "downloadImg.png");
},
child: const Text("SHARE"))
],
),
),
),
);
}
void saveImg(Uint8List bytes, String fileName) =>
js.context.callMethod("saveAs", [
html.Blob([bytes]),
fileName
]);
}
https://stackoverflow.com/questions/72501328
复制相似问题