1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768 |
- import 'dart:io';
- import 'dart:typed_data';
- import 'package:dio/dio.dart' as dio;
- import 'package:vid/us/vid_us_image.dart';
- import 'package:vid/us/vid_us_image_data.dart';
- /// Vid文件帮助工具
- class VidFileHelper {
- /// 从文件获取单帧图像
- ///
- /// [file] vid单帧图像文件对象
- static Future<VidUsImage?> getImageFromFile(File file) async {
- final data = await getDataFromFile(file);
- if (data != null) {
- final frame = data.getImage(0);
- return frame;
- }
- return null;
- }
- /// 从文件中获取Vid信息
- ///
- /// [file] vid文件对象
- static Future<VidUsImageData?> getDataFromFile(File file) async {
- try {
- final fileData = await file.readAsBytes();
- final vidData = VidUsImageData(fileData);
- return vidData;
- } catch (e) {
- // logger.e
- return null;
- }
- }
- /// 从链接获取单帧图像
- ///
- /// [url] vid单帧图像链接
- static Future<VidUsImage?> getImageFromNetwork(String url) async {
- final data = await getDataFromNetwork(url);
- if (data != null) {
- final frame = data.getImage(0);
- return frame;
- }
- return null;
- }
- /// 从链接获取Vid信息
- ///
- /// [url] vid文件链接
- static Future<VidUsImageData?> getDataFromNetwork(String url) async {
- try {
- final httpClient = dio.Dio(dio.BaseOptions(
- responseType: dio.ResponseType.bytes,
- sendTimeout: 10 * 1000,
- ));
- final response = await httpClient.get(url);
- httpClient.close();
- final bytes = response.data as Uint8List;
- final vidData = VidUsImageData(bytes);
- return vidData;
- } catch (e) {
- // logger
- return null;
- }
- }
- }
|