fotolab 0.19.0__tar.gz → 0.20.1__tar.gz

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.
Files changed (41) hide show
  1. {fotolab-0.19.0 → fotolab-0.20.1}/.pre-commit-config.yaml +1 -1
  2. {fotolab-0.19.0 → fotolab-0.20.1}/CHANGELOG.md +12 -0
  3. {fotolab-0.19.0 → fotolab-0.20.1}/PKG-INFO +10 -7
  4. {fotolab-0.19.0 → fotolab-0.20.1}/Pipfile.lock +82 -77
  5. {fotolab-0.19.0 → fotolab-0.20.1}/README.md +9 -6
  6. {fotolab-0.19.0 → fotolab-0.20.1}/fotolab/__init__.py +1 -1
  7. {fotolab-0.19.0 → fotolab-0.20.1}/fotolab/resize.py +17 -2
  8. {fotolab-0.19.0 → fotolab-0.20.1}/noxfile.py +1 -2
  9. {fotolab-0.19.0 → fotolab-0.20.1}/.coveragerc +0 -0
  10. {fotolab-0.19.0 → fotolab-0.20.1}/.gitignore +0 -0
  11. {fotolab-0.19.0 → fotolab-0.20.1}/.python-version +0 -0
  12. {fotolab-0.19.0 → fotolab-0.20.1}/CONTRIBUTING.md +0 -0
  13. {fotolab-0.19.0 → fotolab-0.20.1}/LICENSE.md +0 -0
  14. {fotolab-0.19.0 → fotolab-0.20.1}/Pipfile +0 -0
  15. {fotolab-0.19.0 → fotolab-0.20.1}/docs/Makefile +0 -0
  16. {fotolab-0.19.0 → fotolab-0.20.1}/docs/make.bat +0 -0
  17. {fotolab-0.19.0 → fotolab-0.20.1}/docs/source/CHANGELOG.md +0 -0
  18. {fotolab-0.19.0 → fotolab-0.20.1}/docs/source/CONTRIBUTING.md +0 -0
  19. {fotolab-0.19.0 → fotolab-0.20.1}/docs/source/LICENSE.md +0 -0
  20. {fotolab-0.19.0 → fotolab-0.20.1}/docs/source/README.md +0 -0
  21. {fotolab-0.19.0 → fotolab-0.20.1}/docs/source/_static/logo.jpg +0 -0
  22. {fotolab-0.19.0 → fotolab-0.20.1}/docs/source/conf.py +0 -0
  23. {fotolab-0.19.0 → fotolab-0.20.1}/docs/source/index.rst +0 -0
  24. {fotolab-0.19.0 → fotolab-0.20.1}/fotolab/__main__.py +0 -0
  25. {fotolab-0.19.0 → fotolab-0.20.1}/fotolab/animate.py +0 -0
  26. {fotolab-0.19.0 → fotolab-0.20.1}/fotolab/auto.py +0 -0
  27. {fotolab-0.19.0 → fotolab-0.20.1}/fotolab/border.py +0 -0
  28. {fotolab-0.19.0 → fotolab-0.20.1}/fotolab/cli.py +0 -0
  29. {fotolab-0.19.0 → fotolab-0.20.1}/fotolab/contrast.py +0 -0
  30. {fotolab-0.19.0 → fotolab-0.20.1}/fotolab/env.py +0 -0
  31. {fotolab-0.19.0 → fotolab-0.20.1}/fotolab/info.py +0 -0
  32. {fotolab-0.19.0 → fotolab-0.20.1}/fotolab/montage.py +0 -0
  33. {fotolab-0.19.0 → fotolab-0.20.1}/fotolab/rotate.py +0 -0
  34. {fotolab-0.19.0 → fotolab-0.20.1}/fotolab/sharpen.py +0 -0
  35. {fotolab-0.19.0 → fotolab-0.20.1}/fotolab/watermark.py +0 -0
  36. {fotolab-0.19.0 → fotolab-0.20.1}/pyproject.toml +0 -0
  37. {fotolab-0.19.0 → fotolab-0.20.1}/tests/__init__.py +0 -0
  38. {fotolab-0.19.0 → fotolab-0.20.1}/tests/conftest.py +0 -0
  39. {fotolab-0.19.0 → fotolab-0.20.1}/tests/test_env.py +0 -0
  40. {fotolab-0.19.0 → fotolab-0.20.1}/tests/test_help_flag.py +0 -0
  41. {fotolab-0.19.0 → fotolab-0.20.1}/tests/test_quiet_flag.py +0 -0
@@ -15,7 +15,7 @@ repos:
15
15
  - id: trailing-whitespace
16
16
 
17
17
  - repo: https://github.com/abravalheri/validate-pyproject
18
- rev: v0.22
18
+ rev: v0.23
19
19
  hooks:
20
20
  - id: validate-pyproject
21
21
  name: validate-pyproject
@@ -7,6 +7,18 @@ and this project adheres to [0-based versioning](https://0ver.org/).
7
7
 
8
8
  ## [Unreleased]
9
9
 
10
+ ## v0.20.1 (2024-11-17)
11
+
12
+ - Bump deps and `pre-commit` hooks
13
+ - Bump deps using minimum supported Python version in `nox`
14
+ - Remove duplicate `nox_session` decorator in `nox`
15
+
16
+ ## v0.20.0 (2024-11-10)
17
+
18
+ - Add `-l` or `--canvas-color` option to set color to extended canvas
19
+ - Bump deps
20
+ - Update help message in readme
21
+
10
22
  ## v0.19.0 (2024-11-03)
11
23
 
12
24
  - Add `-c` or `--canvas` flag to paste an image onto larger canvas
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: fotolab
3
- Version: 0.19.0
3
+ Version: 0.20.1
4
4
  Summary: A console program that manipulate images.
5
5
  Keywords: photography,photo
6
6
  Author-email: Kian-Meng Ang <kianmeng@cpan.org>
@@ -266,17 +266,20 @@ fotolab resize -h
266
266
  <!--help-resize !-->
267
267
 
268
268
  ```console
269
- usage: fotolab resize [-h] [-c] [-W WIDTH | -H HEIGHT]
269
+ usage: fotolab resize [-h] [-c] [-l CANVAS_COLOR] [-W WIDTH | -H HEIGHT]
270
270
  IMAGE_FILENAMES [IMAGE_FILENAMES ...]
271
271
 
272
272
  positional arguments:
273
- IMAGE_FILENAMES set the image filename
273
+ IMAGE_FILENAMES set the image filename
274
274
 
275
275
  options:
276
- -h, --help show this help message and exit
277
- -c, --canvas paste image onto a larger canvas
278
- -W, --width WIDTH set the width of the image (default: '600')
279
- -H, --height HEIGHT set the height of the image (default: '277')
276
+ -h, --help show this help message and exit
277
+ -c, --canvas paste image onto a larger canvas
278
+ -l, --canvas-color CANVAS_COLOR
279
+ the color of the extended larger canvas(default:
280
+ 'black')
281
+ -W, --width WIDTH set the width of the image (default: '600')
282
+ -H, --height HEIGHT set the height of the image (default: '277')
280
283
  ```
281
284
 
282
285
  <!--help-resize !-->
@@ -18,85 +18,90 @@
18
18
  "default": {
19
19
  "pillow": {
20
20
  "hashes": [
21
- "sha256:00177a63030d612148e659b55ba99527803288cea7c75fb05766ab7981a8c1b7",
22
- "sha256:006bcdd307cc47ba43e924099a038cbf9591062e6c50e570819743f5607404f5",
23
- "sha256:084a07ef0821cfe4858fe86652fffac8e187b6ae677e9906e192aafcc1b69903",
24
- "sha256:0ae08bd8ffc41aebf578c2af2f9d8749d91f448b3bfd41d7d9ff573d74f2a6b2",
25
- "sha256:0e038b0745997c7dcaae350d35859c9715c71e92ffb7e0f4a8e8a16732150f38",
26
- "sha256:1187739620f2b365de756ce086fdb3604573337cc28a0d3ac4a01ab6b2d2a6d2",
27
- "sha256:16095692a253047fe3ec028e951fa4221a1f3ed3d80c397e83541a3037ff67c9",
28
- "sha256:1a61b54f87ab5786b8479f81c4b11f4d61702830354520837f8cc791ebba0f5f",
29
- "sha256:1c1d72714f429a521d8d2d018badc42414c3077eb187a59579f28e4270b4b0fc",
30
- "sha256:1e2688958a840c822279fda0086fec1fdab2f95bf2b717b66871c4ad9859d7e8",
31
- "sha256:20ec184af98a121fb2da42642dea8a29ec80fc3efbaefb86d8fdd2606619045d",
32
- "sha256:21a0d3b115009ebb8ac3d2ebec5c2982cc693da935f4ab7bb5c8ebe2f47d36f2",
33
- "sha256:224aaa38177597bb179f3ec87eeefcce8e4f85e608025e9cfac60de237ba6316",
34
- "sha256:2679d2258b7f1192b378e2893a8a0a0ca472234d4c2c0e6bdd3380e8dfa21b6a",
35
- "sha256:27a7860107500d813fcd203b4ea19b04babe79448268403172782754870dac25",
36
- "sha256:290f2cc809f9da7d6d622550bbf4c1e57518212da51b6a30fe8e0a270a5b78bd",
37
- "sha256:2e46773dc9f35a1dd28bd6981332fd7f27bec001a918a72a79b4133cf5291dba",
38
- "sha256:3107c66e43bda25359d5ef446f59c497de2b5ed4c7fdba0894f8d6cf3822dafc",
39
- "sha256:375b8dd15a1f5d2feafff536d47e22f69625c1aa92f12b339ec0b2ca40263273",
40
- "sha256:45c566eb10b8967d71bf1ab8e4a525e5a93519e29ea071459ce517f6b903d7fa",
41
- "sha256:499c3a1b0d6fc8213519e193796eb1a86a1be4b1877d678b30f83fd979811d1a",
42
- "sha256:4ad70c4214f67d7466bea6a08061eba35c01b1b89eaa098040a35272a8efb22b",
43
- "sha256:4b60c9520f7207aaf2e1d94de026682fc227806c6e1f55bba7606d1c94dd623a",
44
- "sha256:5178952973e588b3f1360868847334e9e3bf49d19e169bbbdfaf8398002419ae",
45
- "sha256:52a2d8323a465f84faaba5236567d212c3668f2ab53e1c74c15583cf507a0291",
46
- "sha256:598b4e238f13276e0008299bd2482003f48158e2b11826862b1eb2ad7c768b97",
47
- "sha256:5bd2d3bdb846d757055910f0a59792d33b555800813c3b39ada1829c372ccb06",
48
- "sha256:5c39ed17edea3bc69c743a8dd3e9853b7509625c2462532e62baa0732163a904",
49
- "sha256:5d203af30149ae339ad1b4f710d9844ed8796e97fda23ffbc4cc472968a47d0b",
50
- "sha256:5ddbfd761ee00c12ee1be86c9c0683ecf5bb14c9772ddbd782085779a63dd55b",
51
- "sha256:607bbe123c74e272e381a8d1957083a9463401f7bd01287f50521ecb05a313f8",
52
- "sha256:61b887f9ddba63ddf62fd02a3ba7add935d053b6dd7d58998c630e6dbade8527",
53
- "sha256:6619654954dc4936fcff82db8eb6401d3159ec6be81e33c6000dfd76ae189947",
54
- "sha256:674629ff60030d144b7bca2b8330225a9b11c482ed408813924619c6f302fdbb",
55
- "sha256:6ec0d5af64f2e3d64a165f490d96368bb5dea8b8f9ad04487f9ab60dc4bb6003",
56
- "sha256:6f4dba50cfa56f910241eb7f883c20f1e7b1d8f7d91c750cd0b318bad443f4d5",
57
- "sha256:70fbbdacd1d271b77b7721fe3cdd2d537bbbd75d29e6300c672ec6bb38d9672f",
58
- "sha256:72bacbaf24ac003fea9bff9837d1eedb6088758d41e100c1552930151f677739",
59
- "sha256:7326a1787e3c7b0429659e0a944725e1b03eeaa10edd945a86dead1913383944",
60
- "sha256:73853108f56df97baf2bb8b522f3578221e56f646ba345a372c78326710d3830",
61
- "sha256:73e3a0200cdda995c7e43dd47436c1548f87a30bb27fb871f352a22ab8dcf45f",
62
- "sha256:75acbbeb05b86bc53cbe7b7e6fe00fbcf82ad7c684b3ad82e3d711da9ba287d3",
63
- "sha256:8069c5179902dcdce0be9bfc8235347fdbac249d23bd90514b7a47a72d9fecf4",
64
- "sha256:846e193e103b41e984ac921b335df59195356ce3f71dcfd155aa79c603873b84",
65
- "sha256:8594f42df584e5b4bb9281799698403f7af489fba84c34d53d1c4bfb71b7c4e7",
66
- "sha256:86510e3f5eca0ab87429dd77fafc04693195eec7fd6a137c389c3eeb4cfb77c6",
67
- "sha256:8853a3bf12afddfdf15f57c4b02d7ded92c7a75a5d7331d19f4f9572a89c17e6",
68
- "sha256:88a58d8ac0cc0e7f3a014509f0455248a76629ca9b604eca7dc5927cc593c5e9",
69
- "sha256:8ba470552b48e5835f1d23ecb936bb7f71d206f9dfeee64245f30c3270b994de",
70
- "sha256:8c676b587da5673d3c75bd67dd2a8cdfeb282ca38a30f37950511766b26858c4",
71
- "sha256:8ec4a89295cd6cd4d1058a5e6aec6bf51e0eaaf9714774e1bfac7cfc9051db47",
72
- "sha256:94f3e1780abb45062287b4614a5bc0874519c86a777d4a7ad34978e86428b8dd",
73
- "sha256:9a0f748eaa434a41fccf8e1ee7a3eed68af1b690e75328fd7a60af123c193b50",
74
- "sha256:a5629742881bcbc1f42e840af185fd4d83a5edeb96475a575f4da50d6ede337c",
75
- "sha256:a65149d8ada1055029fcb665452b2814fe7d7082fcb0c5bed6db851cb69b2086",
76
- "sha256:b3c5ac4bed7519088103d9450a1107f76308ecf91d6dabc8a33a2fcfb18d0fba",
77
- "sha256:b4fd7bd29610a83a8c9b564d457cf5bd92b4e11e79a4ee4716a63c959699b306",
78
- "sha256:bcd1fb5bb7b07f64c15618c89efcc2cfa3e95f0e3bcdbaf4642509de1942a699",
79
- "sha256:c12b5ae868897c7338519c03049a806af85b9b8c237b7d675b8c5e089e4a618e",
80
- "sha256:c26845094b1af3c91852745ae78e3ea47abf3dbcd1cf962f16b9a5fbe3ee8488",
81
- "sha256:c6a660307ca9d4867caa8d9ca2c2658ab685de83792d1876274991adec7b93fa",
82
- "sha256:c809a70e43c7977c4a42aefd62f0131823ebf7dd73556fa5d5950f5b354087e2",
83
- "sha256:c8b2351c85d855293a299038e1f89db92a2f35e8d2f783489c6f0b2b5f3fe8a3",
84
- "sha256:cb929ca942d0ec4fac404cbf520ee6cac37bf35be479b970c4ffadf2b6a1cad9",
85
- "sha256:d2c0a187a92a1cb5ef2c8ed5412dd8d4334272617f532d4ad4de31e0495bd923",
86
- "sha256:d69bfd8ec3219ae71bcde1f942b728903cad25fafe3100ba2258b973bd2bc1b2",
87
- "sha256:daffdf51ee5db69a82dd127eabecce20729e21f7a3680cf7cbb23f0829189790",
88
- "sha256:e58876c91f97b0952eb766123bfef372792ab3f4e3e1f1a2267834c2ab131734",
89
- "sha256:eda2616eb2313cbb3eebbe51f19362eb434b18e3bb599466a1ffa76a033fb916",
90
- "sha256:ee217c198f2e41f184f3869f3e485557296d505b5195c513b2bfe0062dc537f1",
91
- "sha256:f02541ef64077f22bf4924f225c0fd1248c168f86e4b7abdedd87d6ebaceab0f",
92
- "sha256:f1b82c27e89fffc6da125d5eb0ca6e68017faf5efc078128cfaa42cf5cb38798",
93
- "sha256:fba162b8872d30fea8c52b258a542c5dfd7b235fb5cb352240c8d63b414013eb",
94
- "sha256:fbbcb7b57dc9c794843e3d1258c0fbf0f48656d46ffe9e09b63bbd6e8cd5d0a2",
95
- "sha256:fcb4621042ac4b7865c179bb972ed0da0218a076dc1820ffc48b1d74c1e37fe9"
21
+ "sha256:02a2be69f9c9b8c1e97cf2713e789d4e398c751ecfd9967c18d0ce304efbf885",
22
+ "sha256:030abdbe43ee02e0de642aee345efa443740aa4d828bfe8e2eb11922ea6a21ea",
23
+ "sha256:06b2f7898047ae93fad74467ec3d28fe84f7831370e3c258afa533f81ef7f3df",
24
+ "sha256:0755ffd4a0c6f267cccbae2e9903d95477ca2f77c4fcf3a3a09570001856c8a5",
25
+ "sha256:0a9ec697746f268507404647e531e92889890a087e03681a3606d9b920fbee3c",
26
+ "sha256:0ae24a547e8b711ccaaf99c9ae3cd975470e1a30caa80a6aaee9a2f19c05701d",
27
+ "sha256:134ace6dc392116566980ee7436477d844520a26a4b1bd4053f6f47d096997fd",
28
+ "sha256:166c1cd4d24309b30d61f79f4a9114b7b2313d7450912277855ff5dfd7cd4a06",
29
+ "sha256:1b5dea9831a90e9d0721ec417a80d4cbd7022093ac38a568db2dd78363b00908",
30
+ "sha256:1d846aea995ad352d4bdcc847535bd56e0fd88d36829d2c90be880ef1ee4668a",
31
+ "sha256:1ef61f5dd14c300786318482456481463b9d6b91ebe5ef12f405afbba77ed0be",
32
+ "sha256:297e388da6e248c98bc4a02e018966af0c5f92dfacf5a5ca22fa01cb3179bca0",
33
+ "sha256:298478fe4f77a4408895605f3482b6cc6222c018b2ce565c2b6b9c354ac3229b",
34
+ "sha256:29dbdc4207642ea6aad70fbde1a9338753d33fb23ed6956e706936706f52dd80",
35
+ "sha256:2db98790afc70118bd0255c2eeb465e9767ecf1f3c25f9a1abb8ffc8cfd1fe0a",
36
+ "sha256:32cda9e3d601a52baccb2856b8ea1fc213c90b340c542dcef77140dfa3278a9e",
37
+ "sha256:37fb69d905be665f68f28a8bba3c6d3223c8efe1edf14cc4cfa06c241f8c81d9",
38
+ "sha256:416d3a5d0e8cfe4f27f574362435bc9bae57f679a7158e0096ad2beb427b8696",
39
+ "sha256:43efea75eb06b95d1631cb784aa40156177bf9dd5b4b03ff38979e048258bc6b",
40
+ "sha256:4b35b21b819ac1dbd1233317adeecd63495f6babf21b7b2512d244ff6c6ce309",
41
+ "sha256:4d9667937cfa347525b319ae34375c37b9ee6b525440f3ef48542fcf66f2731e",
42
+ "sha256:5161eef006d335e46895297f642341111945e2c1c899eb406882a6c61a4357ab",
43
+ "sha256:543f3dc61c18dafb755773efc89aae60d06b6596a63914107f75459cf984164d",
44
+ "sha256:551d3fd6e9dc15e4c1eb6fc4ba2b39c0c7933fa113b220057a34f4bb3268a060",
45
+ "sha256:59291fb29317122398786c2d44427bbd1a6d7ff54017075b22be9d21aa59bd8d",
46
+ "sha256:5b001114dd152cfd6b23befeb28d7aee43553e2402c9f159807bf55f33af8a8d",
47
+ "sha256:5b4815f2e65b30f5fbae9dfffa8636d992d49705723fe86a3661806e069352d4",
48
+ "sha256:5dc6761a6efc781e6a1544206f22c80c3af4c8cf461206d46a1e6006e4429ff3",
49
+ "sha256:5e84b6cc6a4a3d76c153a6b19270b3526a5a8ed6b09501d3af891daa2a9de7d6",
50
+ "sha256:6209bb41dc692ddfee4942517c19ee81b86c864b626dbfca272ec0f7cff5d9fb",
51
+ "sha256:673655af3eadf4df6b5457033f086e90299fdd7a47983a13827acf7459c15d94",
52
+ "sha256:6c762a5b0997f5659a5ef2266abc1d8851ad7749ad9a6a5506eb23d314e4f46b",
53
+ "sha256:7086cc1d5eebb91ad24ded9f58bec6c688e9f0ed7eb3dbbf1e4800280a896496",
54
+ "sha256:73664fe514b34c8f02452ffb73b7a92c6774e39a647087f83d67f010eb9a0cf0",
55
+ "sha256:76a911dfe51a36041f2e756b00f96ed84677cdeb75d25c767f296c1c1eda1319",
56
+ "sha256:780c072c2e11c9b2c7ca37f9a2ee8ba66f44367ac3e5c7832afcfe5104fd6d1b",
57
+ "sha256:7928ecbf1ece13956b95d9cbcfc77137652b02763ba384d9ab508099a2eca856",
58
+ "sha256:7970285ab628a3779aecc35823296a7869f889b8329c16ad5a71e4901a3dc4ef",
59
+ "sha256:7a8d4bade9952ea9a77d0c3e49cbd8b2890a399422258a77f357b9cc9be8d680",
60
+ "sha256:7c1ee6f42250df403c5f103cbd2768a28fe1a0ea1f0f03fe151c8741e1469c8b",
61
+ "sha256:7dfecdbad5c301d7b5bde160150b4db4c659cee2b69589705b6f8a0c509d9f42",
62
+ "sha256:812f7342b0eee081eaec84d91423d1b4650bb9828eb53d8511bcef8ce5aecf1e",
63
+ "sha256:866b6942a92f56300012f5fbac71f2d610312ee65e22f1aa2609e491284e5597",
64
+ "sha256:86dcb5a1eb778d8b25659d5e4341269e8590ad6b4e8b44d9f4b07f8d136c414a",
65
+ "sha256:87dd88ded2e6d74d31e1e0a99a726a6765cda32d00ba72dc37f0651f306daaa8",
66
+ "sha256:8bc1a764ed8c957a2e9cacf97c8b2b053b70307cf2996aafd70e91a082e70df3",
67
+ "sha256:8d4d5063501b6dd4024b8ac2f04962d661222d120381272deea52e3fc52d3736",
68
+ "sha256:8f0aef4ef59694b12cadee839e2ba6afeab89c0f39a3adc02ed51d109117b8da",
69
+ "sha256:930044bb7679ab003b14023138b50181899da3f25de50e9dbee23b61b4de2126",
70
+ "sha256:950be4d8ba92aca4b2bb0741285a46bfae3ca699ef913ec8416c1b78eadd64cd",
71
+ "sha256:961a7293b2457b405967af9c77dcaa43cc1a8cd50d23c532e62d48ab6cdd56f5",
72
+ "sha256:9b885f89040bb8c4a1573566bbb2f44f5c505ef6e74cec7ab9068c900047f04b",
73
+ "sha256:9f4727572e2918acaa9077c919cbbeb73bd2b3ebcfe033b72f858fc9fbef0026",
74
+ "sha256:a02364621fe369e06200d4a16558e056fe2805d3468350df3aef21e00d26214b",
75
+ "sha256:a985e028fc183bf12a77a8bbf36318db4238a3ded7fa9df1b9a133f1cb79f8fc",
76
+ "sha256:ac1452d2fbe4978c2eec89fb5a23b8387aba707ac72810d9490118817d9c0b46",
77
+ "sha256:b15e02e9bb4c21e39876698abf233c8c579127986f8207200bc8a8f6bb27acf2",
78
+ "sha256:b2724fdb354a868ddf9a880cb84d102da914e99119211ef7ecbdc613b8c96b3c",
79
+ "sha256:bbc527b519bd3aa9d7f429d152fea69f9ad37c95f0b02aebddff592688998abe",
80
+ "sha256:bcd5e41a859bf2e84fdc42f4edb7d9aba0a13d29a2abadccafad99de3feff984",
81
+ "sha256:bd2880a07482090a3bcb01f4265f1936a903d70bc740bfcb1fd4e8a2ffe5cf5a",
82
+ "sha256:bee197b30783295d2eb680b311af15a20a8b24024a19c3a26431ff83eb8d1f70",
83
+ "sha256:bf2342ac639c4cf38799a44950bbc2dfcb685f052b9e262f446482afaf4bffca",
84
+ "sha256:c76e5786951e72ed3686e122d14c5d7012f16c8303a674d18cdcd6d89557fc5b",
85
+ "sha256:cbed61494057c0f83b83eb3a310f0bf774b09513307c434d4366ed64f4128a91",
86
+ "sha256:cfdd747216947628af7b259d274771d84db2268ca062dd5faf373639d00113a3",
87
+ "sha256:d7480af14364494365e89d6fddc510a13e5a2c3584cb19ef65415ca57252fb84",
88
+ "sha256:dbc6ae66518ab3c5847659e9988c3b60dc94ffb48ef9168656e0019a93dbf8a1",
89
+ "sha256:dc3e2db6ba09ffd7d02ae9141cfa0ae23393ee7687248d46a7507b75d610f4f5",
90
+ "sha256:dfe91cb65544a1321e631e696759491ae04a2ea11d36715eca01ce07284738be",
91
+ "sha256:e4d49b85c4348ea0b31ea63bc75a9f3857869174e2bf17e7aba02945cd218e6f",
92
+ "sha256:e4db64794ccdf6cb83a59d73405f63adbe2a1887012e308828596100a0b2f6cc",
93
+ "sha256:e553cad5179a66ba15bb18b353a19020e73a7921296a7979c4a2b7f6a5cd57f9",
94
+ "sha256:e88d5e6ad0d026fba7bdab8c3f225a69f063f116462c49892b0149e21b6c0a0e",
95
+ "sha256:ecd85a8d3e79cd7158dec1c9e5808e821feea088e2f69a974db5edf84dc53141",
96
+ "sha256:f5b92f4d70791b4a67157321c4e8225d60b119c5cc9aee8ecf153aace4aad4ef",
97
+ "sha256:f5f0c3e969c8f12dd2bb7e0b15d5c468b51e5017e01e2e867335c81903046a22",
98
+ "sha256:f7baece4ce06bade126fb84b8af1c33439a76d8a6fd818970215e0560ca28c27",
99
+ "sha256:ff25afb18123cea58a591ea0244b92eb1e61a1fd497bf6d6384f09bc3262ec3e",
100
+ "sha256:ff337c552345e95702c5fde3158acb0625111017d0e5f24bf3acdb9cc16b90d1"
96
101
  ],
97
102
  "index": "pypi",
98
- "markers": "python_version >= '3.9'",
99
- "version": "==11.0.0"
103
+ "markers": "python_version >= '3.8'",
104
+ "version": "==10.4.0"
100
105
  }
101
106
  },
102
107
  "develop": {
@@ -244,17 +244,20 @@ fotolab resize -h
244
244
  <!--help-resize !-->
245
245
 
246
246
  ```console
247
- usage: fotolab resize [-h] [-c] [-W WIDTH | -H HEIGHT]
247
+ usage: fotolab resize [-h] [-c] [-l CANVAS_COLOR] [-W WIDTH | -H HEIGHT]
248
248
  IMAGE_FILENAMES [IMAGE_FILENAMES ...]
249
249
 
250
250
  positional arguments:
251
- IMAGE_FILENAMES set the image filename
251
+ IMAGE_FILENAMES set the image filename
252
252
 
253
253
  options:
254
- -h, --help show this help message and exit
255
- -c, --canvas paste image onto a larger canvas
256
- -W, --width WIDTH set the width of the image (default: '600')
257
- -H, --height HEIGHT set the height of the image (default: '277')
254
+ -h, --help show this help message and exit
255
+ -c, --canvas paste image onto a larger canvas
256
+ -l, --canvas-color CANVAS_COLOR
257
+ the color of the extended larger canvas(default:
258
+ 'black')
259
+ -W, --width WIDTH set the width of the image (default: '600')
260
+ -H, --height HEIGHT set the height of the image (default: '277')
258
261
  ```
259
262
 
260
263
  <!--help-resize !-->
@@ -21,7 +21,7 @@ import subprocess
21
21
  import sys
22
22
  from pathlib import Path
23
23
 
24
- __version__ = "0.19.0"
24
+ __version__ = "0.20.1"
25
25
 
26
26
  log = logging.getLogger(__name__)
27
27
 
@@ -20,7 +20,7 @@ import logging
20
20
  import math
21
21
  import sys
22
22
 
23
- from PIL import Image
23
+ from PIL import Image, ImageColor
24
24
 
25
25
  from fotolab import save_image
26
26
 
@@ -54,6 +54,17 @@ def build_subparser(subparsers) -> None:
54
54
  help="paste image onto a larger canvas",
55
55
  )
56
56
 
57
+ resize_parser.add_argument(
58
+ "-l",
59
+ "--canvas-color",
60
+ default="black",
61
+ dest="canvas_color",
62
+ help=(
63
+ "the color of the extended larger canvas"
64
+ "(default: '%(default)s')"
65
+ ),
66
+ )
67
+
57
68
  if "-c" in sys.argv or "--canvas" in sys.argv:
58
69
  resize_parser.add_argument(
59
70
  "-W",
@@ -119,7 +130,11 @@ def run(args: argparse.Namespace) -> None:
119
130
 
120
131
 
121
132
  def _resize_image_onto_canvas(original_image, args):
122
- resized_image = Image.new("RGB", (args.width, args.height), (0, 0, 0))
133
+ resized_image = Image.new(
134
+ "RGB",
135
+ (args.width, args.height),
136
+ (*ImageColor.getrgb(args.canvas_color), 128),
137
+ )
123
138
  x_offset = (args.width - original_image.width) // 2
124
139
  y_offset = (args.height - original_image.height) // 2
125
140
  resized_image.paste(original_image, (x_offset, y_offset))
@@ -24,7 +24,7 @@ import nox
24
24
  from packaging.version import Version
25
25
 
26
26
 
27
- @nox.session()
27
+ @nox.session(python="3.8")
28
28
  def deps(session: nox.Session) -> None:
29
29
  """Update pre-commit hooks and deps."""
30
30
  session.install("pre-commit", "pipenv")
@@ -32,7 +32,6 @@ def deps(session: nox.Session) -> None:
32
32
  session.run("pipenv", "update", env={"PIPENV_VERBOSITY": "-1"})
33
33
 
34
34
 
35
- @nox.session()
36
35
  @nox.session(python="3.13")
37
36
  def lint(session: nox.Session) -> None:
38
37
  """Run pre-commit tasks.
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes