Note: I'm actively working on this app's first release. Please hop on to the issues page if you would like to contribute.
- Select folder with images to mark annotated images.
- Zoom (like pinch zoom) and pan images in the view.
- Options available: Mark as Correct, Mark as Incorrect, Reset Selection.
- Export as a JSON file.
- The JSON file can retain previously annotated folders.
- See the info (track current image path, folder path, total files etc.) in the window itself.
- Invalid files are ignored, and a proper text is shown instead of the image viewer.
- Any sub-directories in the selected folder are ignored.
- Image file sizes are retained, and the app is scrollable + resizable.
- Binaries are available for Windows, OSX and Linux, here.
- Built 100% with Rust, GUI built using Iced library
Theme Switching
The app saves you some eye strain with dark and light theme switching option.
Welcome page - select your folder
- Any sub-folders present in the selected folder will be ignored.
- File validation is done while traversing through the folder, to save time.
Verify annotation
- Option to mark as correct/incorrect or reset selection.
- Click
Export
to export the results to a JSON file. (output.json
in the folder where you started the app from) - Mark as Incorrect will have an option to add comments (optional)
Invalid file
- In case a file is invalid, or the image couldn't be loaded, a message will appear and a user can see the file path in the info below to the text.
Add comments (optional)
A sample output is given here
{
"image_to_properties_map": {
"/home/krshrimali/Documents/Projects/rust/image-annotator-rust-app/sample_folder": [
{
"index": 0,
"image_path": "/home/krshrimali/Documents/Projects/rust/image-annotator-rust-app/sample_folder/invalid_file.txt",
"annotation": null,
"comments": null,
"last_updated": "2023-02-05 12:53:28.343688759 +05:30"
},
{
"index": 1,
"image_path": "/home/krshrimali/Documents/Projects/rust/image-annotator-rust-app/sample_folder/sample.webp",
"annotation": null,
"comments": null,
"last_updated": "2023-02-05 12:53:28.343921942 +05:30"
},
{
"index": 2,
"image_path": "/home/krshrimali/Documents/Projects/rust/image-annotator-rust-app/sample_folder/nature-3082832__480.jpg",
"annotation": null,
"comments": null,
"last_updated": "2023-02-05 12:53:28.343935682 +05:30"
}
]
}
}
If you are on Linux, following libraries are required:
- Rust toolchain, see: this for instructions.
cmake
,pkg-config
,fontconfig
.- OpenSSL 3.0
libgtk-3-dev
(GTK 3.0 dev libraries)
Once done, follow the instructions below:
# Build porject
cargo build
# Build binary for release
cargo build --release
# Run the app
cargo run