fotolab 0.21.1__py3-none-any.whl → 0.22.0__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- fotolab/__init__.py +1 -1
- fotolab/info.py +16 -0
- fotolab/watermark.py +2 -9
- {fotolab-0.21.1.dist-info → fotolab-0.22.0.dist-info}/METADATA +6 -4
- {fotolab-0.21.1.dist-info → fotolab-0.22.0.dist-info}/RECORD +8 -8
- {fotolab-0.21.1.dist-info → fotolab-0.22.0.dist-info}/LICENSE.md +0 -0
- {fotolab-0.21.1.dist-info → fotolab-0.22.0.dist-info}/WHEEL +0 -0
- {fotolab-0.21.1.dist-info → fotolab-0.22.0.dist-info}/entry_points.txt +0 -0
fotolab/__init__.py
CHANGED
fotolab/info.py
CHANGED
@@ -54,6 +54,14 @@ def build_subparser(subparsers) -> None:
|
|
54
54
|
help="show the camera maker details",
|
55
55
|
)
|
56
56
|
|
57
|
+
info_parser.add_argument(
|
58
|
+
"--datetime",
|
59
|
+
default=False,
|
60
|
+
action="store_true",
|
61
|
+
dest="datetime",
|
62
|
+
help="show the datetime",
|
63
|
+
)
|
64
|
+
|
57
65
|
|
58
66
|
def run(args: argparse.Namespace) -> None:
|
59
67
|
"""Run info subcommand.
|
@@ -67,6 +75,8 @@ def run(args: argparse.Namespace) -> None:
|
|
67
75
|
log.debug(args)
|
68
76
|
if args.camera:
|
69
77
|
print(camera_metadata(args.image_filename))
|
78
|
+
if args.datetime:
|
79
|
+
print(datetime(args.image_filename))
|
70
80
|
else:
|
71
81
|
exif_tags = extract_exif_tags(args.image_filename)
|
72
82
|
if exif_tags:
|
@@ -96,6 +106,12 @@ def extract_exif_tags(image_filename: str, sort: bool = False) -> dict:
|
|
96
106
|
return filtered_info
|
97
107
|
|
98
108
|
|
109
|
+
def datetime(image_filename):
|
110
|
+
"""Extract datetime metadata."""
|
111
|
+
exif_tags = extract_exif_tags(image_filename)
|
112
|
+
return exif_tags["DateTime"]
|
113
|
+
|
114
|
+
|
99
115
|
def camera_metadata(image_filename):
|
100
116
|
"""Extract camera and model metadata."""
|
101
117
|
exif_tags = extract_exif_tags(image_filename)
|
fotolab/watermark.py
CHANGED
@@ -22,7 +22,7 @@ import math
|
|
22
22
|
from PIL import Image, ImageColor, ImageDraw, ImageFont
|
23
23
|
|
24
24
|
from fotolab import save_image
|
25
|
-
from fotolab.info import
|
25
|
+
from fotolab.info import camera_metadata
|
26
26
|
|
27
27
|
log = logging.getLogger(__name__)
|
28
28
|
|
@@ -139,7 +139,7 @@ def build_subparser(subparsers) -> None:
|
|
139
139
|
"-l",
|
140
140
|
"--lowercase",
|
141
141
|
default=True,
|
142
|
-
action=
|
142
|
+
action=argparse.BooleanOptionalAction,
|
143
143
|
dest="lowercase",
|
144
144
|
help="lowercase the watermark text",
|
145
145
|
)
|
@@ -200,13 +200,6 @@ def watermark_image(image_filename, args):
|
|
200
200
|
return watermarked_image
|
201
201
|
|
202
202
|
|
203
|
-
def camera_metadata(image_filename):
|
204
|
-
"""Extract camera and model metadata."""
|
205
|
-
exif_tags = extract_exif_tags(image_filename)
|
206
|
-
metadata = f'{exif_tags["Make"]} {exif_tags["Model"]}'
|
207
|
-
return metadata.strip()
|
208
|
-
|
209
|
-
|
210
203
|
def calc_font_size(image, args) -> int:
|
211
204
|
"""Calculate the font size based on the width of the image."""
|
212
205
|
width, _height = image.size
|
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.1
|
2
2
|
Name: fotolab
|
3
|
-
Version: 0.
|
3
|
+
Version: 0.22.0
|
4
4
|
Summary: A console program that manipulate images.
|
5
5
|
Keywords: photography,photo
|
6
6
|
Author-email: Kian-Meng Ang <kianmeng@cpan.org>
|
@@ -206,7 +206,7 @@ fotolab info -h
|
|
206
206
|
<!--help-info !-->
|
207
207
|
|
208
208
|
```console
|
209
|
-
usage: fotolab info [-h] [-s] IMAGE_FILENAME
|
209
|
+
usage: fotolab info [-h] [-s] [--camera] IMAGE_FILENAME
|
210
210
|
|
211
211
|
positional arguments:
|
212
212
|
IMAGE_FILENAME set the image filename
|
@@ -214,6 +214,7 @@ positional arguments:
|
|
214
214
|
options:
|
215
215
|
-h, --help show this help message and exit
|
216
216
|
-s, --sort show image info by sorted field name
|
217
|
+
--camera show the camera maker details
|
217
218
|
```
|
218
219
|
|
219
220
|
<!--help-info !-->
|
@@ -326,7 +327,7 @@ usage: fotolab watermark [-h] [-t WATERMARK_TEXT]
|
|
326
327
|
[-p {top-left,top-right,bottom-left,bottom-right}]
|
327
328
|
[-pd PADDING] [-fs FONT_SIZE] [-fc FONT_COLOR]
|
328
329
|
[-ow OUTLINE_WIDTH] [-oc OUTLINE_COLOR] [--camera]
|
329
|
-
[-l]
|
330
|
+
[-l | --lowercase | --no-lowercase]
|
330
331
|
IMAGE_FILENAMES [IMAGE_FILENAMES ...]
|
331
332
|
|
332
333
|
positional arguments:
|
@@ -354,7 +355,8 @@ options:
|
|
354
355
|
set the outline color of the watermark text (default:
|
355
356
|
'black')
|
356
357
|
--camera use camera metadata as watermark
|
357
|
-
-l, --lowercase
|
358
|
+
-l, --lowercase, --no-lowercase
|
359
|
+
lowercase the watermark text
|
358
360
|
```
|
359
361
|
|
360
362
|
<!--help-watermark !-->
|
@@ -1,4 +1,4 @@
|
|
1
|
-
fotolab/__init__.py,sha256=
|
1
|
+
fotolab/__init__.py,sha256=pw2AneRyAlWbI9FH4Ikuepdam_hEWBbqqmTUXny6WP4,2061
|
2
2
|
fotolab/__main__.py,sha256=aboOURPs_snOXTEWYR0q8oq1UTY9e-NxCd1j33V0wHI,833
|
3
3
|
fotolab/animate.py,sha256=ejimhTozo9DN7BbqqcV4x8zLnanZRKq1pxBBFeOdr6Q,2967
|
4
4
|
fotolab/auto.py,sha256=l_-Kf5V5Anvwz1QV1ET-42YsDWEeHf_okHkXWOycWAI,2295
|
@@ -6,14 +6,14 @@ fotolab/border.py,sha256=5ch2d7LVPhB2OFuuXSW5ci6Cn967CPDQu0qSfaO7uMg,3591
|
|
6
6
|
fotolab/cli.py,sha256=FBFSeMNqcOiJ6MuAcy0qUvc9cscdFUG946HlWZXBPtY,4984
|
7
7
|
fotolab/contrast.py,sha256=l7Bs5p8W8ypN9Cg3fFHnU-A20UwMKtjTiPk6D0PRwpM,2095
|
8
8
|
fotolab/env.py,sha256=fzUoRWgYEiYJIWYEiiSLEb7dH_xVUOnhMpQgc1yjrTY,1457
|
9
|
-
fotolab/info.py,sha256=
|
9
|
+
fotolab/info.py,sha256=jIWmsDAk8ikKb3uZ568DHu3m21OW2-1Erg9PRYa4giw,3281
|
10
10
|
fotolab/montage.py,sha256=lUVY-zDSH7mwH-s34_XefdNp7CoDJHkwpbTUGiyJGgs,2037
|
11
11
|
fotolab/resize.py,sha256=2bH1Kgoe_DqU8ozJ1E_oA6a9JPtuwIlo5a4sq_4Yles,5018
|
12
12
|
fotolab/rotate.py,sha256=l_vQgf0IcI8AR1TSVsk4PrMZtJ3j_wpU77rKiGJ-KTA,1715
|
13
13
|
fotolab/sharpen.py,sha256=wUPtJdtB6mCRmcHrA0CoEVO0O0ROBJWhejTvUeL67QU,2655
|
14
|
-
fotolab/watermark.py,sha256
|
15
|
-
fotolab-0.
|
16
|
-
fotolab-0.
|
17
|
-
fotolab-0.
|
18
|
-
fotolab-0.
|
19
|
-
fotolab-0.
|
14
|
+
fotolab/watermark.py,sha256=XuVj-Cg1duNtW1Z9S8Y0AN4Q268lTM3dne5HnzLWgj0,7252
|
15
|
+
fotolab-0.22.0.dist-info/entry_points.txt,sha256=mvw7AY_yZkIyjAxPtHNed9X99NZeLnMxEeAfEJUbrCM,44
|
16
|
+
fotolab-0.22.0.dist-info/LICENSE.md,sha256=tGtFDwxWTjuR9syrJoSv1Hiffd2u8Tu8cYClfrXS_YU,31956
|
17
|
+
fotolab-0.22.0.dist-info/WHEEL,sha256=EZbGkh7Ie4PoZfRQ8I0ZuP9VklN_TvcZ6DSE5Uar4z4,81
|
18
|
+
fotolab-0.22.0.dist-info/METADATA,sha256=4pqzWJZoXD0c7sSRQM5RrSlC6HuEFFf9o2K-Yx6C_m0,10724
|
19
|
+
fotolab-0.22.0.dist-info/RECORD,,
|
File without changes
|
File without changes
|
File without changes
|