美文网首页
image_pickers的用法

image_pickers的用法

作者: 罐罐金 | 来源:发表于2023-02-17 15:24 被阅读0次

image_pickers支持本地图片多选,本地视频多选,支持将网络图片保存到相册,支持截图保存到相册,支持将网络视频保存到相册,支持预览视频和预览图片功能,支持主题颜色设置。

近来和安卓小伙伴更新了flutter的控件image_pickers

安卓部分解决了已知的bug,IOS部分 将以前引用的 https://github.com/longitachi/ZLPhotoBrowser 的oc版本更新为swift版本,新的版本已经优化了之前oc版本的已知缺陷。不得不说swift版本比oc版本的ZLPhotoBrowser功能更加强大。在此膜拜一下大神。我们只是踩在巨人肩膀上的搬用工。

如果用的是之前OC版本进行更新,若运行失败请删除以前的-l"ZLPhotoBrowser-objc" 位置在targer->build setting ->linking->other linker flags 

附image_pickers地址https://pub.flutter-io.cn/packages/image_pickers

具体方法如下:
///选择多张图片 Select multiple images

Future<void> selectImages() async {

    List<Media> _listImagePaths = await ImagePickers.pickerPaths(

              galleryMode: GalleryMode.image,

              selectCount: 2,

              showGif: false,

              showCamera: true,

              compressSize: 500,

              uiConfig: UIConfig(uiThemeColor: Color(0xffff0f50)),

              cropConfig: CropConfig(enableCrop: false, width: 2, height: 1));

  }

/// 或者 or

ImagePickers.pickerPaths().then((List medias){

      /// medias 照片路径信息 Photo path information

    });

///直接打开相机拍摄图片 Open the camera directly to take a picture

ImagePickers.openCamera().then((Media? media){

    /// media 包含照片路径信息 Include photo path information

    /// 未拍照返回 media = null

    if(media != null){

    }

  });

///直接打开相机拍摄视频 Open the camera directly to shoot the video

ImagePickers.openCamera(cameraMimeType: CameraMimeType.video).then((media){

    /// media 包含视频路径信息 Contains video path information

    /// 未拍摄视频返回 media = null

    if(media != null){

    }

  });

///预览图片 Preview picture

ImagePickers.previewImage(_listImagePaths[index].path);

///预览多张图片 Preview multiple pictures

ImagePickers.previewImagesByMedia(_listImagePaths,index);

///预览多张图片 Preview multiple pictures

ImagePickers.previewImages(paths,index);

///预览视频 Preview video

ImagePickers.previewVideo(_listVideoPaths[index].path);

///保存图片到图库 Save image to gallery

ImagePickers.saveImageToGallery("http://i1.sinaimg.cn/ent/d/2008-06-04/U105P28T3D2048907F326DT20080604225106.jpg");

/// 保存截图图片 ByteData 到图库 Save screenshot image ByteData to gallery

RenderRepaintBoundary boundary = globalKey.currentContext.findRenderObject();

ui.Image image = await boundary.toImage(pixelRatio: 3);

ByteData byteData = await image.toByteData(format: ui.ImageByteFormat.png);

Uint8List data = byteData.buffer.asUint8List();

String dataImagePath = await ImagePickers.saveByteDataImageToGallery(data,);

///保存视频到图库 Save video to gallery

ImagePickers.saveVideoToGallery("http://xxxx/xx/xx.mp4");

相关文章

网友评论

      本文标题:image_pickers的用法

      本文链接:https://www.haomeiwen.com/subject/ipqftdtx.html