{"id":23696007,"url":"https://github.com/aben20807/picdate","last_synced_at":"2026-02-14T18:01:55.169Z","repository":{"id":107925557,"uuid":"550040204","full_name":"aben20807/picdate","owner":"aben20807","description":"Quick and Simple Date Marking for Photos","archived":false,"fork":false,"pushed_at":"2025-02-17T01:49:17.000Z","size":44,"stargazers_count":2,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-09-29T01:18:46.883Z","etag":null,"topics":["aspect-ratio","cli","date","datetime","font-image","instagram","photo-develop","photography","photos","watermark"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/aben20807.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2022-10-12T05:40:55.000Z","updated_at":"2025-02-17T01:49:20.000Z","dependencies_parsed_at":null,"dependency_job_id":"504f0de6-fc7c-49db-bae5-0fdd70a629b2","html_url":"https://github.com/aben20807/picdate","commit_stats":null,"previous_names":[],"tags_count":7,"template":false,"template_full_name":null,"purl":"pkg:github/aben20807/picdate","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aben20807%2Fpicdate","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aben20807%2Fpicdate/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aben20807%2Fpicdate/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aben20807%2Fpicdate/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/aben20807","download_url":"https://codeload.github.com/aben20807/picdate/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aben20807%2Fpicdate/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29451912,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-14T15:52:44.973Z","status":"ssl_error","status_checked_at":"2026-02-14T15:52:11.208Z","response_time":53,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["aspect-ratio","cli","date","datetime","font-image","instagram","photo-develop","photography","photos","watermark"],"created_at":"2024-12-30T05:58:32.615Z","updated_at":"2026-02-14T18:01:55.153Z","avatar_url":"https://github.com/aben20807.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# PicDate: Quick and Simple Date Marking for Photos\n\n[![PyPI](https://img.shields.io/pypi/v/picdate?color=blue\u0026style=flat\u0026logo=pypi)](https://pypi.org/project/picdate/) [![PyPI Downloads](https://static.pepy.tech/badge/picdate)](https://pepy.tech/projects/picdate) [![GitHub license](https://img.shields.io/github/license/aben20807/picdate?color=blue)](LICENSE) [![Coding style](https://img.shields.io/badge/code%20style-black-1183C3.svg)](https://github.com/psf/black)\n\n## Description\n\nPhoto studios no longer offer the service of adding dates to photos, so if you need it, you have to do it yourself. Since there didn't seem to be any tools for this, I created one. The format and style are almost fully controlled by users. The [`DateTimeOriginal`](https://web.archive.org/web/20240329145302/https://www.awaresystems.be/imaging/tiff/tifftags/privateifd/exif/datetimeoriginal.html), i.e., the date the photo was taken, is added if the exif information exists; otherwise, [`stat.ST_MTIME`](https://docs.python.org/3/library/stat.html#stat.ST_MTIME), the time of last modification, is used for those photo without exif information. Note that `ST_MTIME` is just close to but not the taken time. The image qualities are different after processed due to Pillow tool.\n\n## Install\n\nfrom PyPi:\n\n```bash\npip3 install picdate\n```\n\nfrom GitHub:\n\n```bash\npip3 install git+https://github.com/aben20807/picdate.git\n```\n\n```bash\n# or with specific version\npip3 install git+https://github.com/aben20807/picdate.git@v2.0.1\n```\n\n## Usage\n\n```bash\npicdate -s 20221012/ -r\n```\n\nAfter processing, a folder named `picdate_result` will be created, containing the processed files.\n\n## Screenshot\n\n![DSC_0005](https://user-images.githubusercontent.com/14831545/207787756-1e98292a-2e5a-4fdb-9db4-1dbe9aad7227.JPG)\n\n## Font\n\n+ [CursedTimerUlil-Aznm.ttf](https://www.fontspace.com/cursed-timer-ulil-font-f29411): designed by [heaven castro](https://www.fontspace.com/heaven-castro) and licensed as Freeware\n\n## Performance\n\n+ 360 photos (1.72 GB) -\u003e 360 photos with dates (1.31 GB): 5.967s\n\n## Help\n\n```bash\n$ picdate -h\nusage: picdate [-h] -s DIR [-d DIR] [-f] [-r] [-j N] [--text_size N]\n               [--text_color COLOR] [--text_anchor TEXT_ANCHOR] [--pos_x X]\n               [--pos_y Y] [--fine_tune_aspect_ratio RATIO] [--stroke_width N]\n               [--stroke_color COLOR] [--quality N] [--resize W,H]\n               [--format FORMAT] [--img_exts IMG_EXTS]\n\nPicDate: Quick and Simple Date Marking for Photos\n\noptions:\n  -h, --help            show this help message and exit\n  -s DIR, --src DIR     input dir (required) (default: None)\n  -d DIR, --dst DIR     output dir (default: ./picdate_result/)\n  -f, --force           overwrite existing files (default: False)\n  -r, --recursive       recursively process (default: False)\n  -j N, --jobs N        parallel jobs to process (default: 16)\n  --text_size N         text size ('N' mm) (default: 4.24)\n  --text_color COLOR    text color (default: (255, 149, 21))\n  --text_anchor TEXT_ANCHOR\n                        text anchor (ref:\n                        https://pillow.readthedocs.io/en/stable/handbook/text-\n                        anchors.html#text-anchors) (default: rb)\n  --pos_x X             position for x-axis from 0 (left) to 1 (right) (default:\n                        0.94)\n  --pos_y Y             position for y-axis from 0 (top) to 1 (bottom) (default:\n                        0.94)\n  --fine_tune_aspect_ratio RATIO\n                        expect aspect ratio for fine tune pos for cropping\n                        ('none' or 'M/N' (M\u003c=N)) (default: 2/3)\n  --stroke_width N      stroke width for text (default: 1)\n  --stroke_color COLOR  stroke color (default: (242, 97, 0))\n  --quality N           jpg output quality (default: 95)\n  --resize W,H          resize image to WxH (default: None)\n  --format FORMAT       date format (ref: https://docs.python.org/3/library/date\n                        time.html#strftime-and-strptime-format-codes) (default:\n                        `%y %#m %#d)\n  --img_exts IMG_EXTS   support extensions for processed photos (case\n                        insensitive) (default: jpg,jpeg,png,tiff)\n```\n\n## Known issues\n\n+ `strftime` exhibits different behavior across platforms, leading to invalid format strings. The current implementation detects the platform and applies a different default format: windows (`` `%y %#m %#d ``) and others (`` `%y %-m %-d ``).\n\n## License\n\nMIT\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Faben20807%2Fpicdate","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Faben20807%2Fpicdate","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Faben20807%2Fpicdate/lists"}