首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何共享颤振网的Uint8List图像?

如何共享颤振网的Uint8List图像?
EN

Stack Overflow用户
提问于 2022-06-04 16:19:03
回答 1查看 680关注 0票数 1

我正在截取一个小部件,并将其作为Uint8List

Path provider和Share Plus不支持在web上共享文件。有谁能从网上分享Uint8List的图片吗?

EN

回答 1

Stack Overflow用户

发布于 2022-06-04 18:06:57

不确定我们是否可以共享这个映像,但是我们可以用uint8List下载一个映像。尝试以下几点

在index.html中添加此脚本

代码语言:javascript
复制
<script src="https://cdnjs.cloudflare.com/ajax/libs/amcharts/3.21.15/plugins/export/libs/FileSaver.js/FileSaver.min.js"></script>

在颤振中使用这个

代码语言:javascript
复制
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
  ]);
}

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72501328

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档