如何找到图片路径?

时间:2021-08-01 13:27:27

标签: firebase flutter google-cloud-firestore

我需要在 Firestore 中添加签名图片的路径作为 URL,但我无法弄清楚这个签名图片的路径。我不想将图像保存到图库中,而是直接保存到 firebase,我该怎么做?也许将它暂时存储在某个地方,直到我将它发送到 firebase。或者我可以将字节保存到 Firebase 并取回图像吗?我是 Flutter 新手,请帮忙。

这是我目前使用的代码:

import 'package:flutter/material.dart';

import 'package:signature/signature.dart';
import 'RegistrationPage.dart';
import 'dart:io';


class signaturePage extends StatefulWidget {

  @override
  _signaturePageState createState() => _signaturePageState();
}

class _signaturePageState extends State<signaturePage> {
  SignatureController controller;
  File imageFile;
 
  @override
  void initState() {
    super.initState();
    controller = SignatureController(
      penColor: Colors.white,
      penStrokeWidth: 5,
    );
  }
  @override
  void dispose() {
    super.dispose();
    controller.dispose();
  }
  @override
  Widget build(BuildContext context) => Scaffold(
    body: Column(
      children: [
        Signature(controller: controller, backgroundColor: Colors.black,),
        Spacer(),
        buildButtons(context),
      ],
    )
  );

Widget buildButtons (BuildContext context) => Container(
  color: Colors.black,
  child: Row(
    mainAxisAlignment: MainAxisAlignment.center,
    children: [
      buildCheck(context),
      buildClear(context),
    ],
  ),
);

Widget buildCheck(BuildContext context) => IconButton(
  iconSize: 36,
  icon: Icon(Icons.check, color: Colors.green),
  onPressed: () async{
    if(controller.isNotEmpty){
      final signature = await exportSignature();
//print(imageFile);

      // await Navigator.push(context, MaterialPageRoute(
      //     builder: (context) => RegistrationScreen(file: signature)));
    }
  },
  );

Widget buildClear(BuildContext context) => IconButton(
  iconSize: 36,
  icon: Icon(Icons.close, color: Colors.red),
  onPressed: () => controller.clear(),
);

Future exportSignature() async {
  final exportController = SignatureController(
    penStrokeWidth: 5,
    penColor: Colors.black,
    exportBackgroundColor: Colors.white,
    points: controller.points,
  );
  final signature = exportController.toImage();
  

  exportController.dispose();
  return signature;

}
}

0 个答案:

没有答案