A console program to manipulate photos.
Project description
fotolab
A console program to manipulate photos.
Installation
Stable version From PyPI using uv:
uv tool install fotolab
Upgrade to latest stable version:
uv tool upgrade fotolab
Usage
fotolab -h
usage: fotolab [-h] [-o] [-q] [-v] [-d] [-V]
{animate,auto,border,bw,contrast,crop,env,halftone,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,bw,contrast,crop,env,halftone,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
bw apply a black and white filter effect to an image
contrast contrast an image.
crop crop an image
env print environment information for bug reporting
halftone halftone an image
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
-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
fotolab animate
fotolab animate -h
usage: fotolab animate [-h] [-op] [-od OUTPUT_DIR] [-f FORMAT] [-d DURATION]
[-l LOOP] [--webp-quality QUALITY] [--webp-lossless]
[--webp-method METHOD] [-of OUTPUT_FILENAME]
IMAGE_PATHS [IMAGE_PATHS ...]
positional arguments:
IMAGE_PATHS set the image filenames
options:
-h, --help show this help message and exit
-op, --open open the image using default program (default:
'False')
-od, --output-dir OUTPUT_DIR
set default output folder (default: 'output')
-f, --format FORMAT set the image format (default: 'gif')
-d, --duration DURATION
set the duration in milliseconds (must be a positive
integer, default: '2500')
-l, --loop LOOP set the loop cycle (default: '0')
--webp-quality QUALITY
set WEBP quality (0-100, default: '80')
--webp-lossless enable WEBP lossless compression (default: 'False')
--webp-method METHOD set WEBP encoding method (0=fast, 6=slow/best,
default: '4')
-of, --output-filename OUTPUT_FILENAME
set output filename (default: 'None')
fotolab auto
fotolab auto -h
usage: fotolab auto [-h] [-op] [-od OUTPUT_DIR] [-t TITLE] [-w WATERMARK_TEXT]
IMAGE_PATHS [IMAGE_PATHS ...]
positional arguments:
IMAGE_PATHS set the image filenames
options:
-h, --help show this help message and exit
-op, --open open the image using default program (default:
'False')
-od, --output-dir OUTPUT_DIR
set default output folder (default: 'output')
-t, --title TITLE set the tile (default: 'None')
-w, --watermark WATERMARK_TEXT
set the watermark (default: 'kianmeng.org')
fotolab border
fotolab border -h
usage: fotolab border [-h] [-op] [-od OUTPUT_DIR] [-c COLOR] [-w WIDTH]
[-wt WIDTH] [-wr WIDTH] [-wb WIDTH] [-wl WIDTH]
IMAGE_PATHS [IMAGE_PATHS ...]
positional arguments:
IMAGE_PATHS set the image filenames
options:
-h, --help show this help message and exit
-op, --open open the image using default program (default:
'False')
-od, --output-dir OUTPUT_DIR
set default output folder (default: 'output')
-c, --color COLOR set the color of border (default: 'black')
-w, --width WIDTH set the width of border in pixels (default: '10')
-wt, --width-top WIDTH
set the width of top border in pixels (default: '0')
-wr, --width-right WIDTH
set the width of right border in pixels (default: '0')
-wb, --width-bottom WIDTH
set the width of bottom border in pixels (default:
'0')
-wl, --width-left WIDTH
set the width of left border in pixels (default: '0')
fotolab bw
fotolab bw -h
usage: fotolab crop [-h] [-op] [-od OUTPUT_DIR] -b BOX
IMAGE_PATHS [IMAGE_PATHS ...]
positional arguments:
IMAGE_PATHS set the image filenames
options:
-h, --help show this help message and exit
-op, --open open the image using default program (default:
'False')
-od, --output-dir OUTPUT_DIR
set default output folder (default: 'output')
-b, --box BOX set the crop area as a 4-tuple (left, upper, right,
lower), e.g., '100,100,500,500'
fotolab contrast
fotolab contrast -h
usage: fotolab contrast [-h] [-op] [-od OUTPUT_DIR] [-c CUTOFF]
IMAGE_PATHS [IMAGE_PATHS ...]
positional arguments:
IMAGE_PATHS set the image filenames
options:
-h, --help show this help message and exit
-op, --open open the image using default program (default:
'False')
-od, --output-dir OUTPUT_DIR
set default output folder (default: 'output')
-c, --cutoff CUTOFF set the percentage (0-50) of lightest or darkest
pixels to discard from histogram (default: '1.0')
fotolab crop
fotolab crop -h
usage: fotolab crop [-h] [-op] [-od OUTPUT_DIR] -b BOX
IMAGE_PATHS [IMAGE_PATHS ...]
positional arguments:
IMAGE_PATHS set the image filenames
options:
-h, --help show this help message and exit
-op, --open open the image using default program (default:
'False')
-od, --output-dir OUTPUT_DIR
set default output folder (default: 'output')
-b, --box BOX set the crop area as a 4-tuple (left, upper, right,
lower), e.g., '100,100,500,500'
fotolab halftone
fotolab halftone -h
usage: fotolab halftone [-h] [-op] [-od OUTPUT_DIR] [-ba] [-c CELLS] [-g]
IMAGE_PATHS [IMAGE_PATHS ...]
positional arguments:
IMAGE_PATHS set the image filenames
options:
-h, --help show this help message and exit
-op, --open open the image using default program (default:
'False')
-od, --output-dir OUTPUT_DIR
set default output folder (default: 'output')
-ba, --before-after generate a GIF showing before and after changes
-c, --cells CELLS set number of cells across the image width (default:
50)
-g, --grayscale convert image to grayscale before applying halftone
fotolab info
fotolab info -h
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
fotolab rotate
fotolab rotate -h
usage: fotolab rotate [-h] [-op] [-od OUTPUT_DIR] [-r ROTATION] [-cw]
IMAGE_PATHS [IMAGE_PATHS ...]
positional arguments:
IMAGE_PATHS set the image filenames
options:
-h, --help show this help message and exit
-op, --open open the image using default program (default:
'False')
-od, --output-dir OUTPUT_DIR
set default output folder (default: 'output')
-r, --rotation ROTATION
Rotation angle in degrees (default: '0')
-cw, --clockwise Rotate clockwise (default: 'False)
fotolab montage
fotolab montage -h
usage: fotolab montage [-h] [-op] [-od OUTPUT_DIR]
IMAGE_PATHS [IMAGE_PATHS ...]
positional arguments:
IMAGE_PATHS set the image filenames
options:
-h, --help show this help message and exit
-op, --open open the image using default program (default:
'False')
-od, --output-dir OUTPUT_DIR
set default output folder (default: 'output')
fotolab resize
fotolab resize -h
usage: fotolab resize [-h] [-op] [-od OUTPUT_DIR] [-c] [-l CANVAS_COLOR]
[-W WIDTH] [-H HEIGHT] [-ar ASPECT_RATIO]
IMAGE_PATHS [IMAGE_PATHS ...]
positional arguments:
IMAGE_PATHS set the image filenames
options:
-h, --help show this help message and exit
-op, --open open the image using default program (default:
'False')
-od, --output-dir OUTPUT_DIR
set default output folder (default: 'output')
-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')
-ar, --aspect-ratio ASPECT_RATIO
set the aspect ratio of the image (e.g., '16:9',
'4:3')
fotolab sharpen
fotolab sharpen -h
usage: fotolab sharpen [-h] [-op] [-od OUTPUT_DIR] [-r RADIUS] [-p PERCENT]
[-t THRESHOLD] [-ba]
IMAGE_PATHS [IMAGE_PATHS ...]
positional arguments:
IMAGE_PATHS set the image filenames
options:
-h, --help show this help message and exit
-op, --open open the image using default program (default:
'False')
-od, --output-dir OUTPUT_DIR
set default output folder (default: 'output')
-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
fotolab watermark
fotolab watermark -h
usage: fotolab watermark [-h] [-op] [-od OUTPUT_DIR] [-t WATERMARK_TEXT]
[-p {top-left,top-right,bottom-left,bottom-right}]
[-pd PADDING] [--padding-x PADDING_X]
[--padding-y PADDING_Y] [-fs FONT_SIZE]
[-fc FONT_COLOR] [-ow OUTLINE_WIDTH]
[-oc OUTLINE_COLOR] [-a ALPHA_VALUE] [--camera]
[-l | --lowercase | --no-lowercase]
IMAGE_PATHS [IMAGE_PATHS ...]
positional arguments:
IMAGE_PATHS set the image filenames
options:
-h, --help show this help message and exit
-op, --open open the image using default program (default:
'False')
-od, --output-dir OUTPUT_DIR
set default output folder (default: 'output')
-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')
--padding-x PADDING_X
set the horizontal padding of the watermark text
relative to the image (overrides --padding for x-axis)
--padding-y PADDING_Y
set the vertical padding of the watermark text
relative to the image (overrides --padding for y-axis)
-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')
-a, --alpha ALPHA_VALUE
set the transparency of the watermark text (0-255,
where 0 is fully transparent and 255 is fully opaque;
default: '128')
--camera use camera metadata as watermark
-l, --lowercase, --no-lowercase
lowercase the watermark text
fotolab env
fotolab env -h
usage: fotolab env [-h]
options:
-h, --help show this help message and exit
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.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file fotolab-0.37.2.tar.gz.
File metadata
- Download URL: fotolab-0.37.2.tar.gz
- Upload date:
- Size: 39.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.9.2
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
6256a5df914b8054557222ae3cfc36e0d720e739599b5499547816c59eb1db12
|
|
| MD5 |
4fcfa3233864756a0fc323db849d2760
|
|
| BLAKE2b-256 |
a2f5380c46b6ac8d6dc9ec816282d262509f0c4e41f7ffa1f19c324500b1515a
|
File details
Details for the file fotolab-0.37.2-py3-none-any.whl.
File metadata
- Download URL: fotolab-0.37.2-py3-none-any.whl
- Upload date:
- Size: 48.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.9.2
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
2a4824ccb0441493dfb337da5b64f78ca9cc337d33396d10a238e3183c1e29dc
|
|
| MD5 |
dca3d182dcc081551d58dddda9f97c4a
|
|
| BLAKE2b-256 |
0da650951e22c41b9577341d6b3044708e7f869558fd077e47484eaa84b07990
|