fotolab


Namefotolab JSON
Version 0.26.0 PyPI version JSON
download
home_pageNone
SummaryA console program that manipulate images.
upload_time2025-01-19 06:59:18
maintainerNone
docs_urlNone
authorNone
requires_python>=3.9
licenseNone
keywords photography photo
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # fotolab

A console program to manipulate photos.

## Installation

Stable version From PyPI using `pipx`:

```console
pipx install fotolab
```

Stable version From PyPI using `pip`:

```console
python -m pip install fotolab
```

Upgrade to latest stable version:

```console
python3 -m pip install fotolab --upgrade
```

Latest development version from GitHub:

```console
python -m pip install -e git+https://github.com/kianmeng/fotolab.git
```

## Usage

```console
fotolab -h
```

<!--help !-->

```console
usage: fotolab [-h] [-o] [-op] [-od OUTPUT_DIR] [-q] [-v] [-d] [-V]
               {animate,auto,border,contrast,env,info,montage,resize,rotate,sharpen,watermark} ...

A console program to manipulate photos.

website: https://github.com/kianmeng/fotolab
changelog: https://github.com/kianmeng/fotolab/blob/master/CHANGELOG.md
issues: https://github.com/kianmeng/fotolab/issues

positional arguments:
  {animate,auto,border,contrast,env,info,montage,resize,rotate,sharpen,watermark}
                    sub-command help
    animate         animate an image
    auto            auto adjust (resize, contrast, and watermark) a photo
    border          add border to image
    contrast        contrast an image
    env             print environment information for bug reporting
    info            info an image
    montage         montage a list of image
    resize          resize an image
    rotate          rotate an image
    sharpen         sharpen an image
    watermark       watermark an image

options:
  -h, --help        show this help message and exit
  -o, --overwrite   overwrite existing image
  -op, --open       open the image using default program (default: 'False')
  -od, --output-dir OUTPUT_DIR
                    set default output folder (default: 'output')
  -q, --quiet       suppress all logging
  -v, --verbose     show verbosity of debugging log, use -vv, -vvv for more details
  -d, --debug       show debugging log and stacktrace
  -V, --version     show program's version number and exit
```

<!--help !-->

### fotolab animate

```console
fotolab animate -h
```

<!--help-animate !-->

```console
usage: fotolab animate [-h] [-f FORMAT] [-d DURATION] [-l LOOP]
                       IMAGE_FILENAMES [IMAGE_FILENAMES ...]

positional arguments:
  IMAGE_FILENAMES       set the image filenames

options:
  -h, --help            show this help message and exit
  -f, --format FORMAT   set the image format (default: 'gif')
  -d, --duration DURATION
                        set the duration in milliseconds (default: '2500')
  -l, --loop LOOP       set the loop cycle (default: '0')
```

<!--help-animate !-->

### fotolab auto

```console
fotolab auto -h
```

<!--help-auto !-->

```console
usage: fotolab auto [-h] IMAGE_FILENAMES [IMAGE_FILENAMES ...]

positional arguments:
  IMAGE_FILENAMES  set the image filename

options:
  -h, --help       show this help message and exit
```

<!--help-auto !-->

### fotolab border

```console
fotolab border -h
```

<!--help-border !-->

```console
usage: fotolab border [-h] [-c COLOR] [-w WIDTH] [-wt WIDTH] [-wr WIDTH]
                      [-wb WIDTH] [-wl WIDTH]
                      IMAGE_FILENAMES [IMAGE_FILENAMES ...]

positional arguments:
  IMAGE_FILENAMES       set the image filenames

options:
  -h, --help            show this help message and exit
  -c, --color COLOR     set the color of border (default: 'black')
  -w, --width WIDTH     set the width of border (default: '10')
  -wt, --width-top WIDTH
                        set the width of top border (default: '0')
  -wr, --width-right WIDTH
                        set the width of right border (default: '0')
  -wb, --width-bottom WIDTH
                        set the width of bottom border (default: '0')
  -wl, --width-left WIDTH
                        set the width of left border (default: '0')
```

<!--help-border !-->

### fotolab contrast

```console
fotolab contrast -h
```

<!--help-contrast !-->

```console
usage: fotolab contrast [-h] [-c CUTOFF] IMAGE_FILENAMES [IMAGE_FILENAMES ...]

positional arguments:
  IMAGE_FILENAMES      set the image filename

options:
  -h, --help           show this help message and exit
  -c, --cutoff CUTOFF  set the percentage of lightest or darkest pixels to
                       discard from histogram (default: '1')
```

<!--help-contrast !-->

### fotolab info

```console
fotolab info -h
```

<!--help-info !-->

```console
usage: fotolab info [-h] [-s] [--camera] [--datetime] IMAGE_FILENAME

positional arguments:
  IMAGE_FILENAME  set the image filename

options:
  -h, --help      show this help message and exit
  -s, --sort      show image info by sorted field name
  --camera        show the camera maker details
  --datetime      show the datetime
```

<!--help-info !-->

### fotolab rotate

```console
fotolab rotate -h
```

<!--help-rotate !-->

```console
usage: fotolab rotate [-h] [-r ROTATION] [-cw]
                      IMAGE_FILENAMES [IMAGE_FILENAMES ...]

positional arguments:
  IMAGE_FILENAMES       set the image filenames

options:
  -h, --help            show this help message and exit
  -r, --rotation ROTATION
                        Rotation angle in degrees (default: '0')
  -cw, --clockwise      Rotate clockwise (default: 'False)
```

<!--help-rotate !-->

### fotolab montage

```console
fotolab montage -h
```

<!--help-montage !-->

```console
usage: fotolab montage [-h] IMAGE_FILENAMES [IMAGE_FILENAMES ...]

positional arguments:
  IMAGE_FILENAMES  set the image filenames

options:
  -h, --help       show this help message and exit
```

<!--help-montage !-->

### fotolab resize

```console
fotolab resize -h
```

<!--help-resize !-->

```console
usage: fotolab resize [-h] [-c] [-l CANVAS_COLOR] [-W WIDTH | -H HEIGHT]
                      IMAGE_FILENAMES [IMAGE_FILENAMES ...]

positional arguments:
  IMAGE_FILENAMES       set the image filename

options:
  -h, --help            show this help message and exit
  -c, --canvas          paste image onto a larger canvas
  -l, --canvas-color CANVAS_COLOR
                        the color of the extended larger canvas(default:
                        'black')
  -W, --width WIDTH     set the width of the image (default: '600')
  -H, --height HEIGHT   set the height of the image (default: '277')
```

<!--help-resize !-->

### fotolab sharpen

```console
fotolab sharpen -h
```

<!--help-sharpen !-->

```console
usage: fotolab sharpen [-h] [-r RADIUS] [-p PERCENT] [-t THRESHOLD] [-ba]
                       IMAGE_FILENAMES [IMAGE_FILENAMES ...]

positional arguments:
  IMAGE_FILENAMES       set the image filenames

options:
  -h, --help            show this help message and exit
  -r, --radius RADIUS   set the radius or size of edges (default: '1')
  -p, --percent PERCENT
                        set the amount of overall strength of sharpening
                        effect (default: '100')
  -t, --threshold THRESHOLD
                        set the minimum brightness changed to be sharpened
                        (default: '3')
  -ba, --before-after   generate a GIF showing before and after changes
```

<!--help-sharpen !-->

### fotolab watermark

```console
fotolab watermark -h
```

<!--help-watermark !-->

```console
usage: fotolab watermark [-h] [-t WATERMARK_TEXT]
                         [-p {top-left,top-right,bottom-left,bottom-right}]
                         [-pd PADDING] [-fs FONT_SIZE] [-fc FONT_COLOR]
                         [-ow OUTLINE_WIDTH] [-oc OUTLINE_COLOR] [--camera]
                         [-l | --lowercase | --no-lowercase]
                         IMAGE_FILENAMES [IMAGE_FILENAMES ...]

positional arguments:
  IMAGE_FILENAMES       set the image filenames

options:
  -h, --help            show this help message and exit
  -t, --text WATERMARK_TEXT
                        set the watermark text (default: 'kianmeng.org')
  -p, --position {top-left,top-right,bottom-left,bottom-right}
                        set position of the watermark text (default: 'bottom-
                        left')
  -pd, --padding PADDING
                        set the padding of the watermark text relative to the
                        image (default: '15')
  -fs, --font-size FONT_SIZE
                        set the font size of watermark text (default: '12')
  -fc, --font-color FONT_COLOR
                        set the font color of watermark text (default:
                        'white')
  -ow, --outline-width OUTLINE_WIDTH
                        set the outline width of the watermark text (default:
                        '2')
  -oc, --outline-color OUTLINE_COLOR
                        set the outline color of the watermark text (default:
                        'black')
  --camera              use camera metadata as watermark
  -l, --lowercase, --no-lowercase
                        lowercase the watermark text
```

<!--help-watermark !-->

### fotolab env

```console
fotolab env -h
```

<!--help-env !-->

```console
usage: fotolab env [-h]

options:
  -h, --help  show this help message and exit
```

<!--help-env !-->

## Copyright and License

Copyright (C) 2024,2025 Kian-Meng Ang

This program is free software: you can redistribute it and/or modify it under
the terms of the GNU Affero General Public License as published by the Free
Software Foundation, either version 3 of the License, or (at your option) any
later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY
WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
PARTICULAR PURPOSE. See the GNU Affero General Public License for more details.

You should have received a copy of the GNU Affero General Public License along
with this program. If not, see <https://www.gnu.org/licenses/>.

The fish logo used in the documentation generated by Sphinx is a public domain
drawing of male freshwater phase [Sockeye (red) salmon (Oncorhynchus nerka)]
(https://en.wikipedia.org/w/index.php?oldid=1186575702) from
<https://commons.wikimedia.org/entity/M2787002>.

            

Raw data

            {
    "_id": null,
    "home_page": null,
    "name": "fotolab",
    "maintainer": null,
    "docs_url": null,
    "requires_python": ">=3.9",
    "maintainer_email": null,
    "keywords": "photography, photo",
    "author": null,
    "author_email": "Kian-Meng Ang <kianmeng@cpan.org>",
    "download_url": "https://files.pythonhosted.org/packages/10/12/cd12d43254a7cbd311d453c8756002aa4fcd61c92dffb10c3ae9f93da10a/fotolab-0.26.0.tar.gz",
    "platform": null,
    "description": "# fotolab\n\nA console program to manipulate photos.\n\n## Installation\n\nStable version From PyPI using `pipx`:\n\n```console\npipx install fotolab\n```\n\nStable version From PyPI using `pip`:\n\n```console\npython -m pip install fotolab\n```\n\nUpgrade to latest stable version:\n\n```console\npython3 -m pip install fotolab --upgrade\n```\n\nLatest development version from GitHub:\n\n```console\npython -m pip install -e git+https://github.com/kianmeng/fotolab.git\n```\n\n## Usage\n\n```console\nfotolab -h\n```\n\n<!--help !-->\n\n```console\nusage: fotolab [-h] [-o] [-op] [-od OUTPUT_DIR] [-q] [-v] [-d] [-V]\n               {animate,auto,border,contrast,env,info,montage,resize,rotate,sharpen,watermark} ...\n\nA console program to manipulate photos.\n\nwebsite: https://github.com/kianmeng/fotolab\nchangelog: https://github.com/kianmeng/fotolab/blob/master/CHANGELOG.md\nissues: https://github.com/kianmeng/fotolab/issues\n\npositional arguments:\n  {animate,auto,border,contrast,env,info,montage,resize,rotate,sharpen,watermark}\n                    sub-command help\n    animate         animate an image\n    auto            auto adjust (resize, contrast, and watermark) a photo\n    border          add border to image\n    contrast        contrast an image\n    env             print environment information for bug reporting\n    info            info an image\n    montage         montage a list of image\n    resize          resize an image\n    rotate          rotate an image\n    sharpen         sharpen an image\n    watermark       watermark an image\n\noptions:\n  -h, --help        show this help message and exit\n  -o, --overwrite   overwrite existing image\n  -op, --open       open the image using default program (default: 'False')\n  -od, --output-dir OUTPUT_DIR\n                    set default output folder (default: 'output')\n  -q, --quiet       suppress all logging\n  -v, --verbose     show verbosity of debugging log, use -vv, -vvv for more details\n  -d, --debug       show debugging log and stacktrace\n  -V, --version     show program's version number and exit\n```\n\n<!--help !-->\n\n### fotolab animate\n\n```console\nfotolab animate -h\n```\n\n<!--help-animate !-->\n\n```console\nusage: fotolab animate [-h] [-f FORMAT] [-d DURATION] [-l LOOP]\n                       IMAGE_FILENAMES [IMAGE_FILENAMES ...]\n\npositional arguments:\n  IMAGE_FILENAMES       set the image filenames\n\noptions:\n  -h, --help            show this help message and exit\n  -f, --format FORMAT   set the image format (default: 'gif')\n  -d, --duration DURATION\n                        set the duration in milliseconds (default: '2500')\n  -l, --loop LOOP       set the loop cycle (default: '0')\n```\n\n<!--help-animate !-->\n\n### fotolab auto\n\n```console\nfotolab auto -h\n```\n\n<!--help-auto !-->\n\n```console\nusage: fotolab auto [-h] IMAGE_FILENAMES [IMAGE_FILENAMES ...]\n\npositional arguments:\n  IMAGE_FILENAMES  set the image filename\n\noptions:\n  -h, --help       show this help message and exit\n```\n\n<!--help-auto !-->\n\n### fotolab border\n\n```console\nfotolab border -h\n```\n\n<!--help-border !-->\n\n```console\nusage: fotolab border [-h] [-c COLOR] [-w WIDTH] [-wt WIDTH] [-wr WIDTH]\n                      [-wb WIDTH] [-wl WIDTH]\n                      IMAGE_FILENAMES [IMAGE_FILENAMES ...]\n\npositional arguments:\n  IMAGE_FILENAMES       set the image filenames\n\noptions:\n  -h, --help            show this help message and exit\n  -c, --color COLOR     set the color of border (default: 'black')\n  -w, --width WIDTH     set the width of border (default: '10')\n  -wt, --width-top WIDTH\n                        set the width of top border (default: '0')\n  -wr, --width-right WIDTH\n                        set the width of right border (default: '0')\n  -wb, --width-bottom WIDTH\n                        set the width of bottom border (default: '0')\n  -wl, --width-left WIDTH\n                        set the width of left border (default: '0')\n```\n\n<!--help-border !-->\n\n### fotolab contrast\n\n```console\nfotolab contrast -h\n```\n\n<!--help-contrast !-->\n\n```console\nusage: fotolab contrast [-h] [-c CUTOFF] IMAGE_FILENAMES [IMAGE_FILENAMES ...]\n\npositional arguments:\n  IMAGE_FILENAMES      set the image filename\n\noptions:\n  -h, --help           show this help message and exit\n  -c, --cutoff CUTOFF  set the percentage of lightest or darkest pixels to\n                       discard from histogram (default: '1')\n```\n\n<!--help-contrast !-->\n\n### fotolab info\n\n```console\nfotolab info -h\n```\n\n<!--help-info !-->\n\n```console\nusage: fotolab info [-h] [-s] [--camera] [--datetime] IMAGE_FILENAME\n\npositional arguments:\n  IMAGE_FILENAME  set the image filename\n\noptions:\n  -h, --help      show this help message and exit\n  -s, --sort      show image info by sorted field name\n  --camera        show the camera maker details\n  --datetime      show the datetime\n```\n\n<!--help-info !-->\n\n### fotolab rotate\n\n```console\nfotolab rotate -h\n```\n\n<!--help-rotate !-->\n\n```console\nusage: fotolab rotate [-h] [-r ROTATION] [-cw]\n                      IMAGE_FILENAMES [IMAGE_FILENAMES ...]\n\npositional arguments:\n  IMAGE_FILENAMES       set the image filenames\n\noptions:\n  -h, --help            show this help message and exit\n  -r, --rotation ROTATION\n                        Rotation angle in degrees (default: '0')\n  -cw, --clockwise      Rotate clockwise (default: 'False)\n```\n\n<!--help-rotate !-->\n\n### fotolab montage\n\n```console\nfotolab montage -h\n```\n\n<!--help-montage !-->\n\n```console\nusage: fotolab montage [-h] IMAGE_FILENAMES [IMAGE_FILENAMES ...]\n\npositional arguments:\n  IMAGE_FILENAMES  set the image filenames\n\noptions:\n  -h, --help       show this help message and exit\n```\n\n<!--help-montage !-->\n\n### fotolab resize\n\n```console\nfotolab resize -h\n```\n\n<!--help-resize !-->\n\n```console\nusage: fotolab resize [-h] [-c] [-l CANVAS_COLOR] [-W WIDTH | -H HEIGHT]\n                      IMAGE_FILENAMES [IMAGE_FILENAMES ...]\n\npositional arguments:\n  IMAGE_FILENAMES       set the image filename\n\noptions:\n  -h, --help            show this help message and exit\n  -c, --canvas          paste image onto a larger canvas\n  -l, --canvas-color CANVAS_COLOR\n                        the color of the extended larger canvas(default:\n                        'black')\n  -W, --width WIDTH     set the width of the image (default: '600')\n  -H, --height HEIGHT   set the height of the image (default: '277')\n```\n\n<!--help-resize !-->\n\n### fotolab sharpen\n\n```console\nfotolab sharpen -h\n```\n\n<!--help-sharpen !-->\n\n```console\nusage: fotolab sharpen [-h] [-r RADIUS] [-p PERCENT] [-t THRESHOLD] [-ba]\n                       IMAGE_FILENAMES [IMAGE_FILENAMES ...]\n\npositional arguments:\n  IMAGE_FILENAMES       set the image filenames\n\noptions:\n  -h, --help            show this help message and exit\n  -r, --radius RADIUS   set the radius or size of edges (default: '1')\n  -p, --percent PERCENT\n                        set the amount of overall strength of sharpening\n                        effect (default: '100')\n  -t, --threshold THRESHOLD\n                        set the minimum brightness changed to be sharpened\n                        (default: '3')\n  -ba, --before-after   generate a GIF showing before and after changes\n```\n\n<!--help-sharpen !-->\n\n### fotolab watermark\n\n```console\nfotolab watermark -h\n```\n\n<!--help-watermark !-->\n\n```console\nusage: fotolab watermark [-h] [-t WATERMARK_TEXT]\n                         [-p {top-left,top-right,bottom-left,bottom-right}]\n                         [-pd PADDING] [-fs FONT_SIZE] [-fc FONT_COLOR]\n                         [-ow OUTLINE_WIDTH] [-oc OUTLINE_COLOR] [--camera]\n                         [-l | --lowercase | --no-lowercase]\n                         IMAGE_FILENAMES [IMAGE_FILENAMES ...]\n\npositional arguments:\n  IMAGE_FILENAMES       set the image filenames\n\noptions:\n  -h, --help            show this help message and exit\n  -t, --text WATERMARK_TEXT\n                        set the watermark text (default: 'kianmeng.org')\n  -p, --position {top-left,top-right,bottom-left,bottom-right}\n                        set position of the watermark text (default: 'bottom-\n                        left')\n  -pd, --padding PADDING\n                        set the padding of the watermark text relative to the\n                        image (default: '15')\n  -fs, --font-size FONT_SIZE\n                        set the font size of watermark text (default: '12')\n  -fc, --font-color FONT_COLOR\n                        set the font color of watermark text (default:\n                        'white')\n  -ow, --outline-width OUTLINE_WIDTH\n                        set the outline width of the watermark text (default:\n                        '2')\n  -oc, --outline-color OUTLINE_COLOR\n                        set the outline color of the watermark text (default:\n                        'black')\n  --camera              use camera metadata as watermark\n  -l, --lowercase, --no-lowercase\n                        lowercase the watermark text\n```\n\n<!--help-watermark !-->\n\n### fotolab env\n\n```console\nfotolab env -h\n```\n\n<!--help-env !-->\n\n```console\nusage: fotolab env [-h]\n\noptions:\n  -h, --help  show this help message and exit\n```\n\n<!--help-env !-->\n\n## Copyright and License\n\nCopyright (C) 2024,2025 Kian-Meng Ang\n\nThis program is free software: you can redistribute it and/or modify it under\nthe terms of the GNU Affero General Public License as published by the Free\nSoftware Foundation, either version 3 of the License, or (at your option) any\nlater version.\n\nThis program is distributed in the hope that it will be useful, but WITHOUT ANY\nWARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A\nPARTICULAR PURPOSE. See the GNU Affero General Public License for more details.\n\nYou should have received a copy of the GNU Affero General Public License along\nwith this program. If not, see <https://www.gnu.org/licenses/>.\n\nThe fish logo used in the documentation generated by Sphinx is a public domain\ndrawing of male freshwater phase [Sockeye (red) salmon (Oncorhynchus nerka)]\n(https://en.wikipedia.org/w/index.php?oldid=1186575702) from\n<https://commons.wikimedia.org/entity/M2787002>.\n",
    "bugtrack_url": null,
    "license": null,
    "summary": "A console program that manipulate images.",
    "version": "0.26.0",
    "project_urls": {
        "Changelog": "https://github.com/kianmeng/fotolab/blob/master/CHANGELOG.md",
        "Issues": "https://github.com/kianmeng/fotolab/issues",
        "Source": "https://github.com/kianmeng/fotolab"
    },
    "split_keywords": [
        "photography",
        " photo"
    ],
    "urls": [
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "22a3959001e031ea00626fb99a686510e648d8f8825676c3d47097c4cf5e292c",
                "md5": "9c5667b61eab3820c484ec06ec6f1788",
                "sha256": "1ce8df73ff1f22e5201b35bb1474139696ef9276fdeaddd217cfb75be9605dd8"
            },
            "downloads": -1,
            "filename": "fotolab-0.26.0-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "9c5667b61eab3820c484ec06ec6f1788",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.9",
            "size": 36384,
            "upload_time": "2025-01-19T06:59:14",
            "upload_time_iso_8601": "2025-01-19T06:59:14.514098Z",
            "url": "https://files.pythonhosted.org/packages/22/a3/959001e031ea00626fb99a686510e648d8f8825676c3d47097c4cf5e292c/fotolab-0.26.0-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "1012cd12d43254a7cbd311d453c8756002aa4fcd61c92dffb10c3ae9f93da10a",
                "md5": "68720db50cffba71aa777abdf86750c0",
                "sha256": "8b3c1a15b319a452f445033edf2f374181904aa35b9e2ca353ec13848c3d83ca"
            },
            "downloads": -1,
            "filename": "fotolab-0.26.0.tar.gz",
            "has_sig": false,
            "md5_digest": "68720db50cffba71aa777abdf86750c0",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.9",
            "size": 75067,
            "upload_time": "2025-01-19T06:59:18",
            "upload_time_iso_8601": "2025-01-19T06:59:18.331526Z",
            "url": "https://files.pythonhosted.org/packages/10/12/cd12d43254a7cbd311d453c8756002aa4fcd61c92dffb10c3ae9f93da10a/fotolab-0.26.0.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2025-01-19 06:59:18",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "kianmeng",
    "github_project": "fotolab",
    "github_not_found": true,
    "lcname": "fotolab"
}
        
Elapsed time: 1.07468s