# Image Reorder
[![pypi](https://img.shields.io/pypi/v/image-reorder.svg)](https://pypi.org/project/image-reorder/)
[![license](https://img.shields.io/pypi/l/image-reorder.svg)](https://github.com/pronovic/image-reorder/blob/master/LICENSE)
[![wheel](https://img.shields.io/pypi/wheel/image-reorder.svg)](https://pypi.org/project/image-reorder/)
[![python](https://img.shields.io/pypi/pyversions/image-reorder.svg)](https://pypi.org/project/image-reorder/)
[![Test Suite](https://github.com/pronovic/image-reorder/workflows/Test%20Suite/badge.svg)](https://github.com/image-reorder/actions?query=workflow%3A%22Test+Suite%22)
[![coverage](https://coveralls.io/repos/github/image-reorder/badge.svg?branch=master)](https://coveralls.io/github/pronovic/image-reorder?branch=master)
[![Poetry](https://img.shields.io/endpoint?url=https://python-poetry.org/badge/v0.json)](https://python-poetry.org/)
Reorder images from multiple cameras into a single folder
To use, create a source directory (say, `pictures`) with a subdirectory for
each camera (`pictures/mom`, `pictures/dad`, etc.). Run the `analyze` command
to get some basic info about what images exist in the source directory:
```
$ reorder analyze --help
Usage: reorder analyze [OPTIONS] <source-dir>
Analyze images in a source directory.
Finds all images in a source directory and generates some information about
those images, including camera models.
Options:
-h, --help Show this message and exit.
```
Then, run the `copy` command to copy files from the source directory to some
target directory:
```
$ reorder copy --help
Usage: reorder copy [OPTIONS] <source-dir> <target-dir>
Reorder images from a source directory into a target directory.
Finds all images in a source directory and reorders them into a target
directory by EXIF creation date, taking into account any offsets. The
target folder will be created if it does not already exist.
The copied filenames will get a prefix like "image001__". This way, you can
sort the images by filename, and they'll have the correct order.
If the clocks on the cameras are not in sync, you may optionally provide a
time offset by camera model. The configured hours and minutes will be added
to or removed from the the actual EXIF time. Use a format like "PowerShot
A70=+06:55" or "Pixel 2=-00:03". The `reorder analyze` command will show
you all of the different camera models among your images. You can provide
the --offset switch multiple times.
Options:
-o, --offset <offset> Time offset like 'PowerShot A70=+06:55'
-h, --help Show this message and exit.
```
Raw data
{
"_id": null,
"home_page": "https://pypi.org/project/image-reorder/",
"name": "image-reorder",
"maintainer": "",
"docs_url": null,
"requires_python": ">=3.11,<4",
"maintainer_email": "",
"keywords": "",
"author": "Kenneth J. Pronovici",
"author_email": "pronovic@ieee.org",
"download_url": "https://files.pythonhosted.org/packages/4a/56/7823848fc3cbc51ac6f7d6518eb2ec2e521e63e0746ad3437a9406446ef3/image_reorder-0.2.4.tar.gz",
"platform": null,
"description": "# Image Reorder\n\n[![pypi](https://img.shields.io/pypi/v/image-reorder.svg)](https://pypi.org/project/image-reorder/)\n[![license](https://img.shields.io/pypi/l/image-reorder.svg)](https://github.com/pronovic/image-reorder/blob/master/LICENSE)\n[![wheel](https://img.shields.io/pypi/wheel/image-reorder.svg)](https://pypi.org/project/image-reorder/)\n[![python](https://img.shields.io/pypi/pyversions/image-reorder.svg)](https://pypi.org/project/image-reorder/)\n[![Test Suite](https://github.com/pronovic/image-reorder/workflows/Test%20Suite/badge.svg)](https://github.com/image-reorder/actions?query=workflow%3A%22Test+Suite%22)\n[![coverage](https://coveralls.io/repos/github/image-reorder/badge.svg?branch=master)](https://coveralls.io/github/pronovic/image-reorder?branch=master)\n[![Poetry](https://img.shields.io/endpoint?url=https://python-poetry.org/badge/v0.json)](https://python-poetry.org/)\n\nReorder images from multiple cameras into a single folder\n\nTo use, create a source directory (say, `pictures`) with a subdirectory for\neach camera (`pictures/mom`, `pictures/dad`, etc.). Run the `analyze` command\nto get some basic info about what images exist in the source directory:\n\n```\n$ reorder analyze --help\nUsage: reorder analyze [OPTIONS] <source-dir>\n\n Analyze images in a source directory.\n\n Finds all images in a source directory and generates some information about\n those images, including camera models.\n\nOptions:\n -h, --help Show this message and exit.\n```\n\nThen, run the `copy` command to copy files from the source directory to some\ntarget directory:\n\n```\n$ reorder copy --help\nUsage: reorder copy [OPTIONS] <source-dir> <target-dir>\n\n Reorder images from a source directory into a target directory.\n\n Finds all images in a source directory and reorders them into a target\n directory by EXIF creation date, taking into account any offsets. The\n target folder will be created if it does not already exist.\n\n The copied filenames will get a prefix like \"image001__\". This way, you can\n sort the images by filename, and they'll have the correct order.\n\n If the clocks on the cameras are not in sync, you may optionally provide a\n time offset by camera model. The configured hours and minutes will be added\n to or removed from the the actual EXIF time. Use a format like \"PowerShot\n A70=+06:55\" or \"Pixel 2=-00:03\". The `reorder analyze` command will show\n you all of the different camera models among your images. You can provide\n the --offset switch multiple times.\n\nOptions:\n -o, --offset <offset> Time offset like 'PowerShot A70=+06:55'\n -h, --help Show this message and exit.\n```\n\n",
"bugtrack_url": null,
"license": "Apache-2.0",
"summary": "Reorder images from multiple cameras into a single folder",
"version": "0.2.4",
"project_urls": {
"Homepage": "https://pypi.org/project/image-reorder/",
"Repository": "https://github.com/pronovic/image-reorder"
},
"split_keywords": [],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "5954e4ddf1b8fafb86d94e5d0a723372358684f7b32bef998ccff47e861e28c7",
"md5": "4076f16c894752a2a456f4eb11bbf5bb",
"sha256": "08501a68163f23bdae4bfb6222e6828bd0685c391ca26cfb8cf6fd5920dd4774"
},
"downloads": -1,
"filename": "image_reorder-0.2.4-py3-none-any.whl",
"has_sig": false,
"md5_digest": "4076f16c894752a2a456f4eb11bbf5bb",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.11,<4",
"size": 11002,
"upload_time": "2024-02-26T03:44:56",
"upload_time_iso_8601": "2024-02-26T03:44:56.162445Z",
"url": "https://files.pythonhosted.org/packages/59/54/e4ddf1b8fafb86d94e5d0a723372358684f7b32bef998ccff47e861e28c7/image_reorder-0.2.4-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "4a567823848fc3cbc51ac6f7d6518eb2ec2e521e63e0746ad3437a9406446ef3",
"md5": "8300258d18fac2e944ccfb507d4b2906",
"sha256": "34c886916f3cdf255ff39b739042e7deff45a6d8918cfff3bde77aa275acb0d9"
},
"downloads": -1,
"filename": "image_reorder-0.2.4.tar.gz",
"has_sig": false,
"md5_digest": "8300258d18fac2e944ccfb507d4b2906",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.11,<4",
"size": 16926323,
"upload_time": "2024-02-26T03:44:57",
"upload_time_iso_8601": "2024-02-26T03:44:57.659596Z",
"url": "https://files.pythonhosted.org/packages/4a/56/7823848fc3cbc51ac6f7d6518eb2ec2e521e63e0746ad3437a9406446ef3/image_reorder-0.2.4.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2024-02-26 03:44:57",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "pronovic",
"github_project": "image-reorder",
"travis_ci": false,
"coveralls": true,
"github_actions": true,
"lcname": "image-reorder"
}