Security News
Research
Data Theft Repackaged: A Case Study in Malicious Wrapper Packages on npm
The Socket Research Team breaks down a malicious wrapper package that uses obfuscation to harvest credentials and exfiltrate sensitive data.
A console program to manipulate photos.
Stable version From PyPI using pipx
:
pipx install fotolab
Stable version From PyPI using pip
:
python -m pip install fotolab
Upgrade to latest stable version:
python3 -m pip install fotolab --upgrade
Latest development version from GitHub:
python -m pip install -e git+https://github.com/kianmeng/fotolab.git
fotolab -h
usage: fotolab [-h] [-o] [-op] [-od OUTPUT_DIR] [-q] [-v] [-d] [-V]
{animate,auto,border,contrast,info,resize,rotate,montage,sharpen,watermark,env} ...
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,info,resize,rotate,montage,sharpen,watermark,env}
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
info info an image
resize resize an image
rotate rotate an image
montage montage a list of image
sharpen sharpen an image
watermark watermark an image
env print environment information for bug reporting
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
fotolab animate -h
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')
fotolab auto -h
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
fotolab border -h
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')
fotolab contrast -h
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')
fotolab info -h
usage: fotolab info [-h] [-s] [--camera] 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
fotolab rotate -h
usage: fotolab rotate [-h] IMAGE_FILENAMES [IMAGE_FILENAMES ...]
positional arguments:
IMAGE_FILENAMES set the image filenames
options:
-h, --help show this help message and exit
fotolab montage -h
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
fotolab resize -h
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')
fotolab sharpen -h
usage: fotolab sharpen [-h] [-r RADIUS] [-p PERCENT] [-t THRESHOLD]
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')
fotolab watermark -h
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
fotolab env -h
usage: fotolab env [-h]
options:
-h, --help show this help message and exit
Copyright (C) 2024 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.
FAQs
A console program that manipulate images.
We found that fotolab demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
Research
The Socket Research Team breaks down a malicious wrapper package that uses obfuscation to harvest credentials and exfiltrate sensitive data.
Research
Security News
Attackers used a malicious npm package typosquatting a popular ESLint plugin to steal sensitive data, execute commands, and exploit developer systems.
Security News
The Ultralytics' PyPI Package was compromised four times in one weekend through GitHub Actions cache poisoning and failure to rotate previously compromised API tokens.