image_gallery_saver 0.1.0

  • README.md
  • CHANGELOG.md
  • Example
  • Installing
  • Versions
  • 90

image_gallery_saver #

Build Status pub package license

We use image_picker to selecte images from the Android and iOS image library, but it can't save image to gallery,this plugin can provide this feature.

Usage #

To use this plugin, add image_gallery_saver as a dependency in your pubspec.yaml file.

iOS #

Add the following keys to your Info.plist file, located in <project root>/ios/Runner/Info.plist:

  • NSPhotoLibraryAddUsageDescription - describe why your app needs permission for the photo library. This is called Privacy - Photo Library Additions Usage Description in the visual editor

Android #

No configuration required - the plugin should work out of the box.

Example #

import 'dart:typed_data';

import 'package:flutter/material.dart';
import 'package:flutter/rendering.dart';
import 'package:image_gallery_saver/image_gallery_saver.dart';
import 'dart:ui' as ui;

void main() => runApp(MyApp());

class MyApp extends StatelessWidget {
    @override
    Widget build(BuildContext context) {
        return MaterialApp(
            title: 'Flutter Demo',
            theme: ThemeData(
                primarySwatch: Colors.blue,
            ),
            home: MyHomePage(),
        );
    }
}

class MyHomePage extends StatefulWidget {
    @override
    _MyHomePageState createState() => _MyHomePageState();
}

class _MyHomePageState extends State<MyHomePage> {
    GlobalKey _globalKey = GlobalKey();

    @override
    Widget build(BuildContext context) {
        return Scaffold(
            appBar: AppBar(
                title: Text(""),
            ),
            body: RepaintBoundary(
                key: _globalKey,
                child: Center(
                    child: Container(
                        child: RaisedButton(
                            onPressed: _saved,
                            child: Text("保存屏幕截图"),
                        ),
                        width: 100,
                        height: 50,
                    ),
                ),
            )
        );
    }
    
    _saved() async {
        RenderRepaintBoundary boundary =
        _globalKey.currentContext.findRenderObject();
        ui.Image image = await boundary.toImage();
        ByteData byteData =
        await image.toByteData(format: ui.ImageByteFormat.png);
        final result = await ImageGallerySaver.save(byteData.buffer.asUint8List());
    }
}

0.1.0 #

  • Updated README and CHANGELOG
  • Add LICENSE
  • Add Test

0.0.2 #

  • Updated README and CHANGELOG

0.0.1 #

  • Initial Open Source release.

example/README.md

example/lib/main.dart

import 'dart:typed_data';

import 'package:flutter/material.dart';
import 'package:flutter/rendering.dart';
import 'package:image_gallery_saver/image_gallery_saver.dart';
import 'dart:ui' as ui;

void main() => runApp(MyApp());

class MyApp extends StatelessWidget {
    @override
    Widget build(BuildContext context) {
        return MaterialApp(
            title: 'Save image to gallery',
            theme: ThemeData(
                primarySwatch: Colors.blue,
                ),
            home: MyHomePage(),
        );
    }
}

class MyHomePage extends StatefulWidget {
    @override
    _MyHomePageState createState() => _MyHomePageState();
}

class _MyHomePageState extends State<MyHomePage> {
    GlobalKey _globalKey = GlobalKey();
    
    @override
    Widget build(BuildContext context) {
        return Scaffold(
            appBar: AppBar(
                title: Text(""),
                ),
                body: RepaintBoundary(
                    key: _globalKey,
                    child: Center(
                        child: Container(
                            child: RaisedButton(
                                onPressed: _saved,
                                child: Text("保存屏幕截图"),
                            ),
                            width: 100,
                            height: 50,
                        ),
                    ),
                )
        );
    }
    
    _saved() async {
        RenderRepaintBoundary boundary =
        _globalKey.currentContext.findRenderObject();
        ui.Image image = await boundary.toImage();
        ByteData byteData =
        await image.toByteData(format: ui.ImageByteFormat.png);
        final result = await ImageGallerySaver.save(byteData.buffer.asUint8List());
    }
}

Use this package as a library

1. Depend on it

Add this to your package's pubspec.yaml file:


dependencies:
  image_gallery_saver: ^0.1.0

2. Install it

You can install packages from the command line:

with Flutter:


$ flutter pub get

Alternatively, your editor might support flutter pub get. Check the docs for your editor to learn more.

3. Import it

Now in your Dart code, you can use:


import 'package:image_gallery_saver/image_gallery_saver.dart';
  
Version Uploaded Documentation Archive
1.1.0 Apr 16, 2019 Go to the documentation of image_gallery_saver 1.1.0 Download image_gallery_saver 1.1.0 archive
1.0.0 Mar 7, 2019 Go to the documentation of image_gallery_saver 1.0.0 Download image_gallery_saver 1.0.0 archive
0.1.2 Dec 17, 2018 Go to the documentation of image_gallery_saver 0.1.2 Download image_gallery_saver 0.1.2 archive
0.1.1 Dec 17, 2018 Go to the documentation of image_gallery_saver 0.1.1 Download image_gallery_saver 0.1.1 archive
0.1.0 Dec 14, 2018 Go to the documentation of image_gallery_saver 0.1.0 Download image_gallery_saver 0.1.0 archive
0.0.2 Dec 13, 2018 Go to the documentation of image_gallery_saver 0.0.2 Download image_gallery_saver 0.0.2 archive
0.0.1 Dec 11, 2018 Go to the documentation of image_gallery_saver 0.0.1 Download image_gallery_saver 0.0.1 archive
Popularity:
Describes how popular the package is relative to other packages. [more]
84
Health:
Code health derived from static analysis. [more]
99
Maintenance:
Reflects how tidy and up-to-date the package is. [more]
90
Overall:
Weighted score of the above. [more]
90
Learn more about scoring.

We analyzed this package on May 8, 2019, and provided a score, details, and suggestions below. Analysis was completed with status completed using:

  • Dart: 2.3.0
  • pana: 0.12.15
  • Flutter: 1.5.8

Platforms

Detected platforms: Flutter

References Flutter, and has no conflicting libraries.

Health issues and suggestions

Document public APIs. (-1 points)

4 out of 4 API elements have no dartdoc comment.Providing good documentation for libraries, classes, functions, and other API elements improves code readability and helps developers find and use your API.

Format lib/image_gallery_saver.dart.

Run flutter format to format lib/image_gallery_saver.dart.

Maintenance suggestions

The description is too long. (-10 points)

Search engines display only the first part of the description. Try to keep the value of the description field in your package's pubspec.yaml file between 60 and 180 characters.

Dependencies

Package Constraint Resolved Available
Direct dependencies
Dart SDK >=2.0.0-dev.68.0 <3.0.0
flutter 0.0.0
Transitive dependencies
collection 1.14.11
meta 1.1.6 1.1.7
sky_engine 0.0.99
typed_data 1.1.6
vector_math 2.0.8
Dev dependencies
flutter_test