image_tool 0.2.2

  • Readme
  • Changelog
  • Example
  • Installing
  • 50

Image Tool #

pub package

A command-line tool which simplifies a task of placing image files into appropriate folders based on their resolution. Refer to for further information regarding how Flutter manages resolution-appropriate images. To put it another way, when you place your image assets in a Flutter project and run this plugin. It'll look into all images' filename and automatically move them to appropriate-resolution folders.

For example, if you place images in the asset folder as shown below:

+-- images/
|   +-- icons/
|   |   +-- search.png
|   |   +-- search@2x.png
|   |   +-- search@3x.png
|   +-- logo.png
|   +-- logo@2x.png
|   +-- logo@3x.png

After running this plugin (with a configuration file in the project's root directory), the images whose filename includes a resolution indicator will be moved as follows:

+-- images/
|   +-- 2.0x/
|   |   +-- logo.png
|   +-- 3.0x/
|   |   +-- logo.png
|   +-- icons/
|   |   +-- 2.0x/
|   |   |   +-- search.png
|   |   +-- 3.0x/
|   |   |   +-- search.png
|   |   +-- search.png
|   +-- logo.png

Getting Started #

  1. Install the image_tool plugin by adding it in pubspec.yaml under dev_dependencies section and run flutter packages get
         image_tool: ^0.2.2
  2. Create a new configuration file called image_tool.yaml in the project's root directory
     # The organizer recursively looks into all files in the `asset_folder_path`. (relative to the project's root)
     asset_folder_path: assets/images/
     pubspec_path: example/pubspec.yaml
     # The organizer only arranges files with their extension listed in the `file_extensions`.
         - .jpg
         - .png
     # The organizer uses `resolution_indicator` to extract a resolution's part from the filename.
     # The `resolution_indicator` must conform to the following pattern:
     #   '[start_token]{N}[end_token]' where
     #       - [start_token]: A token that indicates a starting point of the resolution's part.
     #       - [end_token]: A token that indicates an ending point of the resolution's part.
     # Valid `resolution_indicator`s along with example filenames that they can detect are shown below.
     #   '@{N}x': logo@2x.png, logo@2.0x.png, @2.0xlogo.png
     #   '--{N}#': logo--2#.png, logo--2.0#.png, --2.0#logo.png
     resolution_indicator: '@{N}x'
     # If `allow_overwrite` is true when there is the same filename already existing in a target folder, the organizer will replace it.
     allow_overwrite: false
  3. Run the plugin in the project's root directory. See Available CLI Commands
     flutter packages pub run image_tool:main <command>

Note that this plugin can be installed globally by flutter packages pub global activate image_tool. Instead of typing a long command shown above, you can run it by just imgtool.

If you encounter an issue indicating dart: command not found, please install Dart separately first and try running again.

Available CLI Commands #

[blank]Run this plugin once, add images to pubspec.yaml
runRun this plugin once, add images to pubspec.yaml
groupRun this plugin once, group images according to resolution
watchRun this plugin and watch for changes, group images according to resolution

Usage #

  • If the plugin was installed globally, run it by:
      imgtool <command>
  • If the plugin was installed locally in a Flutter project, run it by:
      flutter packages pub run image_tool:main <command>

Snapshots #

0.2.2 (16 October 2019) #

  • Update version constraint in pubspec.yaml
  • Fix typos in

0.2.1 (20 June 2019) #

  • Update version constraint in pubspec.yaml

0.2.0 (19 April 2019) #

  • Add an option in image_res.yaml to allow overwriting
  • Update

0.1.1 (17 April 2019) #

  • Fix typos in
  • Add a Pub badge from

0.1.0 (17 April 2019) #

  • Now this plugin can watch for file changes

0.0.5 (17 April 2019) #

  • Edit

0.0.4 (17 April 2019) #

  • Fix typos in

0.0.2 (17 April 2019) #

  • Change a plugin's name to image_res
  • Add and LICENSE files

0.0.1 (16 April 2019) #

  • Initial a project


void main() {

Use this package as an executable

1. Install it

You can install the package from the command line:

$ pub global activate image_tool

2. Use it

The package has the following executables:

$ imgtool

Use this package as a library

1. Depend on it

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

  image_tool: ^0.2.2

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_tool/image_tool.dart';
Describes how popular the package is relative to other packages. [more]
Code health derived from static analysis. [more]
Reflects how tidy and up-to-date the package is. [more]
Weighted score of the above. [more]
Learn more about scoring.

We analyzed this package on Jul 10, 2020, and provided a score, details, and suggestions below. Analysis was completed with status completed using:

  • Dart: 2.8.4
  • pana: 0.13.13
  • Flutter: 1.17.5

Analysis suggestions

Package not compatible with SDK dart

because of import path [image_tool] that is in a package requiring null.

Package not compatible with runtime flutter-web on web

Because of the import of dart:io via the import chain package:image_tool/image_tool.dartpackage:image_tool/src/config.dartdart:io

Health suggestions

Fix lib/image_tool.dart. (-1.49 points)

Analysis of lib/image_tool.dart reported 3 hints:

line 59 col 16: Don't explicitly initialize variables to null.

line 69 col 14: Don't explicitly initialize variables to null.

line 107 col 29: Avoid using braces in interpolation when not needed.

Format lib/src/config.dart.

Run flutter format to format lib/src/config.dart.


Package Constraint Resolved Available
Direct dependencies
Dart SDK >=2.1.0 <3.0.0
flutter 0.0.0
path ^1.6.2 1.7.0
watcher ^0.9.7+12 0.9.7+15
yaml ^2.1.16 2.2.1
Transitive dependencies
async 2.4.2
charcode 1.1.3
collection 1.14.12 1.14.13
meta 1.1.8 1.2.2
pedantic 1.9.0 1.9.2
sky_engine 0.0.99
source_span 1.7.0
string_scanner 1.0.5
term_glyph 1.1.0
typed_data 1.1.6 1.2.0
vector_math 2.0.8 2.1.0-nullsafety
Dev dependencies