{"id":20217640,"url":"https://github.com/pforret/splashmark","last_synced_at":"2025-04-10T15:43:53.211Z","repository":{"id":144773502,"uuid":"299364045","full_name":"pforret/splashmark","owner":"pforret","description":"Download/create (unsplash/pixabay/replicate) pics and resize/add effects/add attribution/watermark/...","archived":false,"fork":false,"pushed_at":"2025-03-07T14:12:52.000Z","size":66225,"stargazers_count":9,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-03-24T13:36:07.854Z","etag":null,"topics":["bashew","exif","image-processing","iptc","markup","metadata","pixabay-api","replicate-api","social-media","stable-diffusion","unsplash","unsplash-api","watermark"],"latest_commit_sha":null,"homepage":"https://blog.forret.com/tag/splashmark/","language":"Shell","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/pforret.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","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":"2020-09-28T16:13:43.000Z","updated_at":"2025-03-07T14:12:56.000Z","dependencies_parsed_at":null,"dependency_job_id":"165bca1e-96f4-4974-b8fe-91bc64b65f05","html_url":"https://github.com/pforret/splashmark","commit_stats":null,"previous_names":[],"tags_count":55,"template":false,"template_full_name":"pforret/bashew","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pforret%2Fsplashmark","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pforret%2Fsplashmark/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pforret%2Fsplashmark/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pforret%2Fsplashmark/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/pforret","download_url":"https://codeload.github.com/pforret/splashmark/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248243497,"owners_count":21071054,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","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":["bashew","exif","image-processing","iptc","markup","metadata","pixabay-api","replicate-api","social-media","stable-diffusion","unsplash","unsplash-api","watermark"],"created_at":"2024-11-14T06:34:56.193Z","updated_at":"2025-04-10T15:43:53.195Z","avatar_url":"https://github.com/pforret.png","language":"Shell","funding_links":[],"categories":[],"sub_categories":[],"readme":"![GitHub release (latest by date)](https://img.shields.io/github/v/release/pforret/splashmark)\n![GitHub top language](https://img.shields.io/github/languages/top/pforret/splashmark)\n![Shellcheck CI](https://github.com/pforret/splashmark/workflows/Shellcheck%20CI/badge.svg) \n![Bash CI](https://github.com/pforret/splashmark/workflows/Bash%20CI/badge.svg)\n![GitHub code size in bytes](https://img.shields.io/github/languages/code-size/pforret/splashmark)\n![GitHub issues](https://img.shields.io/github/issues-raw/pforret/splashmark)\n[![basher install](https://img.shields.io/badge/basher-install-white?logo=gnu-bash\u0026style=flat)](https://basher.gitparade.com/package/)\n\n# splashmark\n\n![splashmark logo](assets/genai.jpg)\n\nRemix images by\n* resize/crop\n* add visual FX (blur/monochrome/darken/median/grain...)\n* add attribution (by saving it as EXIF/IPTC meta data)\n* add watermarks (Unsplash URL or other)\n\nWorks with\n* local image file\n* image URL\n* [Unsplash](https://unsplash.com/) images\n* [Pixabay](https://pixabay.com/) images\n* [Replicate](https://replicate.com/) StableDiffusion images\n\n## Usage\n\n```bash\nProgram : splashmark  by peter@forret.com\nVersion : v3.5.3 (Apr 14 21:33:20 2023)\nPurpose : Mark up images (unspash/pixabay/URL) with titles, effects and resize\nUsage   : splashmark [-h] [-q] [-v] [-l \u003clog_dir\u003e] [-t \u003ctmp_dir\u003e] [-w \u003cwidth\u003e] [-c \u003ccrop\u003e] [-s \u003cpreset\u003e] [-S \u003cresize\u003e] [-1 \u003cnorthwest\u003e] [-2 \u003cnortheast\u003e] [-3 \u003csouthwest\u003e] [-4 \u003csoutheast\u003e] [-d \u003crandomize\u003e] [-D \u003cnumber\u003e] [-e \u003ceffect\u003e] [-g \u003cgravity\u003e] [-i \u003ctitle\u003e] [-z \u003ctitlesize\u003e] [-k \u003csubtitle\u003e] [-j \u003csubtitlesize\u003e] [-m \u003cmargin\u003e] [-o \u003cfontsize\u003e] [-p \u003cfonttype\u003e] [-r \u003cfontcolor\u003e] [-x \u003cphotographer\u003e] [-u \u003curl\u003e] [-P \u003cPIXABAY_ACCESSKEY\u003e] [-U \u003cUNSPLASH_ACCESSKEY\u003e] [-R \u003cREPLICATE_ACCESSKEY\u003e] [-X \u003cEXPORT\u003e] [-E \u003cEXTENSION\u003e] \u003caction\u003e \u003cinput?\u003e \u003coutput?\u003e\nFlags, options and parameters:\n    -h|--help        : [flag] show usage [default: off]\n    -q|--quiet       : [flag] no output [default: off]\n    -v|--verbose     : [flag] output more [default: off]\n    -l|--log_dir \u003c?\u003e : [option] folder for log files   [default: /Users/pforret/log/splashmark]\n    -t|--tmp_dir \u003c?\u003e : [option] folder for temp files  [default: /tmp/splashmark]\n    -w|--width \u003c?\u003e   : [option] image width for resizing  [default: 1200]\n    -c|--crop \u003c?\u003e    : [option] image height for cropping  [default: 0]\n    -s|--preset \u003c?\u003e  : [option] image size preset\n    -S|--resize \u003c?\u003e  : [option] multiply preset with factor\n    -1|--northwest \u003c?\u003e: [option] text to put in left top\n    -2|--northeast \u003c?\u003e: [option] text to put in right top  [default: {url}]\n    -3|--southwest \u003c?\u003e: [option] text to put in left bottom  [default: Created with pforret/splashmark]\n    -4|--southeast \u003c?\u003e: [option] text to put in right bottom  [default: {copyright2}]\n    -d|--randomize \u003c?\u003e: [option] take a random picture in the first N results  [default: 1]\n    -D|--number \u003c?\u003e  : [option] take the Nth picture from query results  [default: 1]\n    -e|--effect \u003c?\u003e  : [option] use effect chain on image: bw/blur/dark/grain/light/median/paint/pixel\n    -g|--gravity \u003c?\u003e : [option] title alignment left/center/right  [default: center]\n    -i|--title \u003c?\u003e   : [option] big text to put in center\n    -z|--titlesize \u003c?\u003e: [option] font size for title  [default: 80]\n    -k|--subtitle \u003c?\u003e: [option] big text to put in center\n    -j|--subtitlesize \u003c?\u003e: [option] font size for subtitle  [default: 50]\n    -m|--margin \u003c?\u003e  : [option] margin for watermarks  [default: 30]\n    -o|--fontsize \u003c?\u003e: [option] font size for watermarks  [default: 15]\n    -p|--fonttype \u003c?\u003e: [option] font type family to use  [default: FiraSansExtraCondensed-Bold.ttf]\n    -r|--fontcolor \u003c?\u003e: [option] font color to use  [default: FFFFFF]\n    -x|--photographer \u003c?\u003e: [option] photographer name (empty: use name from API)\n    -u|--url \u003c?\u003e     : [option] photo URL override (empty: use URL from API)\n    -P|--PIXABAY_ACCESSKEY \u003c?\u003e: [option] Pixabay access key\n    -U|--UNSPLASH_ACCESSKEY \u003c?\u003e: [option] Unsplash access key\n    -R|--REPLICATE_ACCESSKEY \u003c?\u003e: [option] Replicate API key\n    -X|--EXPORT \u003c?\u003e  : [option] export to subfolder  [default: export]\n    -E|--EXTENSION \u003c?\u003e: [option] image extension to use  [default: jpg]\n    \u003caction\u003e         : [choice] action to perform  [options: unsplash,pixabay,text2image,file,folder,url,sizes,check,env,update]\n    \u003cinput\u003e          : [parameter] URL or search term (optional)\n    \u003coutput\u003e         : [parameter] output file (optional)\n     \n### TIPS \u0026 EXAMPLES\n* use splashmark unsplash to download or search a Unsplash photo (requires free Unsplash API key)\n  splashmark unsplash \"https://unsplash.com/photos/lGo_E2XonWY\" rose.jpg\n  splashmark unsplash \"rose\" \"rose.jpg\"\n  splashmark unsplash rose (will generate unsplash.rose.jpg)\n* use splashmark text2image to create an AI generated photo (requires Replicate API key)\n  splashmark text2image \"picture of a red rose\" rose.jpg\n  splashmark text2image \"prompt\"\n* use splashmark pixabay to download or search a Pixabay photo (requires free Pixabay API key)\n  splashmark pixabay \"https://pixabay.com/photos/rose-flower-love-romance-beautiful-729509/\" rose.jpg\n  splashmark pixabay rose rose.jpg\n  splashmark pixabay rose (will generate pixabay.rose.jpg)\n* use splashmark file to add texts and effects to a existing image\n  splashmark file waterfall.jpg sources/original.jpg\n  splashmark --title \"Strawberry\" -w 1280 -c 640 -e dark,median,grain file sources/original.jpg waterfall.jpg\n* use splashmark folder to add texts and effects to a existing image\n  splashmark folder /home/folder\n  splashmark --title \"Strawberry\" -w 1280 -c 640 -e dark,median,grain file sources/original.jpg waterfall.jpg\n* use splashmark url to add texts and effects to a image that will be downloaded from a URL\n  splashmark file waterfall.jpg \"https://i.imgur.com/rbXZcVH.jpg\"\n  splashmark -w 1280 -c 640 -4 \"Photographer: John Doe\" -e dark,median,grain url \"https://i.imgur.com/rbXZcVH.jpg\" waterfall.jpg\n* use splashmark check to check if this script is ready to execute and what values the options/flags are\n  splashmark check\n* use splashmark env to generate an example .env file\n  splashmark env \u003e .env\n* to create a social image for Github\n  splashmark -w 1280 -c 640 -z 100 -i \"\u003cuser\u003e/\u003crepo\u003e\" -k \"line 1\\nline 2\" -r EEEEEE -e median,dark,grain unsplash \u003ckeyword\u003e\n* to create a social image for Instagram\n  splashmark -w 1080 -c 1080 -z 150 -i \"Carpe diem\" -e dark pixabay clouds clouds.jpg\n* to create a social image for Facebook\n  splashmark -w 1200 -c 630 -i \"20 worldwide destinations\\nwith the best beaches\\nfor unforgettable holidays\" -e dark unsplash copacabana\n```\n\n## installation\n\n1. install requirements\n\n```bash\n# On Linux\nsudo apt install exiftool imagemagick jq\n# on MacOS\nbrew install exiftool imagemagick jq\n```\n2. via [basher](https://github.com/basherpm/basher)\n\n```bash\nbasher install pforret/splashmark\n```\n\n2. or otherwise clone the repo\n```bash\ngit clone https://github.com/pforret/splashmark.git\nsudo ln -s splashmark/splashmark /usr/bin/\n```\n\n        \n3. Get your API keys on\n* Unsplash: [unsplash.com/oauth/applications](https://unsplash.com/oauth/applications)\n* Pixabay: [pixabay.com/api/docs/](https://pixabay.com/api/docs/)\n* Replicate: [replicate.com/users/(user)/account](https://replicate.com/)\n\n4. install API keys\n\n```bash\nvi splashmark/.env\n# copy/paste `UNSPLASH_ACCESSKEY` value\n\nUNSPLASH_ACCESSKEY=\"(unsplash key)\"\nPIXABAY_ACCESSKEY=\"(pixabay key)\"\nREPLICATE_ACCESSKEY=\"(replicate key)\"\n\n```\n## Example (verbose) output:\n\n```bash\n$ splashmark -w 800 -p UbuntuMono-Bold.ttf -e median,dark,grain -1 \"font: UbuntuMono Bold, via Google Fonts\" -2 \"Photo: {url}\" -3 \"www.example.com\" -4 {copyright} -i \"Just an example\" -v unsplash beach examples/example.jpg\n\n# 🌱 Expect : 1 single parameter(s): action\n# 🌱 Assign : action=unsplash\n# 🌱 Expect : 2 optional parameter(s): input output\n# 🌱 Assign : input=beach\n# 🌱 Assign : output=example.jpg\n# 🧽 Cleanup folder: [/tmp/splashmark] - delete files older than 1 day(s)\n# 🌱 tmp_file: /tmp/splashmark/2021-04-20.CCTrVM\n# 🧽 Cleanup folder: [/Users/\u003cuser\u003e/log/splashmark] - delete files older than 30 day(s)\n# 🌱 log_file: /Users/\u003cuser\u003e/log/splashmark/splashmark.2021-04-20.log\n# ️🔌 required [curl] -\u003e /usr/bin/curl\n# ️🔌 required [jq] -\u003e /usr/local/bin/jq\n# Unsplash API = [https://api.unsplash.com/search/photos/?query=beach] \n# Output file: [example.jpg]\n# Unsplash photo ID = [M8CClPDw02I]\n# ️🔌 required [jq] -\u003e /usr/local/bin/jq\n# Unsplash API = [https://api.unsplash.com/photos/M8CClPDw02I] \n# IMG = [https://images.unsplash.com/photo-1591017403286-fd8493524e1e?crop=entropy\u0026cs=tinysrgb\u0026fit=max\u0026fm=jpg\u0026ixid=MnwxNzAwMTV8MHwxfGFsbHx8fHx8fHx8fDE2MTg5NTE1OTk\u0026ixlib=rb-1.2.1\u0026q=80\u0026w=1080] \n# ️🔌 required [jq] -\u003e /usr/local/bin/jq\n# API = [/tmp/splashmark/unsplash.0cff5d45.json]\n# ️🔌 required [jq] -\u003e /usr/local/bin/jq\n# API = [/tmp/splashmark/unsplash.0cff5d45.json]\n# META: Photographer: Boxed Water Is Better\n# META: URL: https://unsplash.com/photos/M8CClPDw02I\n# ️🔌 required [convert] -\u003e /usr/local/bin/convert\n# FONT [/Users/\u003cuser\u003e/.basher/cellar/packages/pforret/splashmark/fonts/UbuntuMono-Bold.ttf] exists as a splashmark font\n# SIZE: to 800 wide --\u003e example.jpg\n# EXIF: set [Writer-Editor] to [https://github.com/pforret/splashmark] for [example.jpg]\n# EXIF: set [Artist] to [Boxed Water Is Better] for [example.jpg]\n# EXIF: set [Creator] to [Boxed Water Is Better] for [example.jpg]\n# EXIF: set [OwnerID] to [Boxed Water Is Better] for [example.jpg]\n# EXIF: set [OwnerName] to [Boxed Water Is Better] for [example.jpg]\n# EXIF: set [Credit] to [Photo: Boxed Water Is Better on Unsplash.com] for [example.jpg]\n# EXIF: set [ImageDescription] to [Photo: Boxed Water Is Better on Unsplash.com] for [example.jpg]\n# ️🔌 required [mogrify] -\u003e /usr/local/bin/mogrify\n# EFX : median\n# EFX : dark\n# EFX : grain\n# ️🔌 required [mogrify] -\u003e /usr/local/bin/mogrify\n# MARK: [font: UbuntuMono Bold, via Google Fonts] in NorthWest corner ...\n# ️🔌 required [mogrify] -\u003e /usr/local/bin/mogrify\n# MARK: [Photo: unsplash.com/photos/M8CClPDw02I] in NorthEast corner ...\n# ️🔌 required [mogrify] -\u003e /usr/local/bin/mogrify\n# MARK: [www.example.com] in SouthWest corner ...\n# ️🔌 required [mogrify] -\u003e /usr/local/bin/mogrify\n# MARK: [Photo by Boxed Water Is Better on Unsplash.com] in SouthEast corner ...\n# MARK: title [Just an example] in Center ...\nexample.jpg\n# splashmark finished after 7 seconds\n```\n![example.jpg](examples/example.jpg)\n\n\n## Examples\ncheck [EXAMPLES.md](https://github.com/pforret/splashmark/blob/master/EXAMPLES.md)\n\n## Size presets\n\n```bash\n$ splashmark sizes\ncinema:flat          WxH: 1998 x 1080\ncinema:hd            WxH: 1920 x 1080\ncinema:scope         WxH: 2048 x  858\nfacebook:cover       WxH:  851 x  315\nfacebook:horizontal  WxH: 1200 x  630\nfacebook:story       WxH: 1080 x 1920\nfacebook:vertical    WxH: 1080 x 1350\ngithub:repo          WxH: 1280 x  640\ninstagram:horizontal WxH: 1350 x 1080\ninstagram:square     WxH: 1080 x 1080\ninstagram:story      WxH: 1080 x 1920\ninstagram:vertical   WxH: 1080 x 1350\nlinkedin:horizontal  WxH: 1104 x  736\nmedium:horizontal    WxH: 1500 x 1200\npinterest:vertical   WxH: 1000 x 1500\ntumblr:vertical      WxH: 1280 x 1920\ntwitter:header       WxH: 1500 x  500\ntwitter:post         WxH: 1024 x  512\n```\n---\n\n\u0026copy; 2020 [Peter Forret](https://github.com/pforret)","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpforret%2Fsplashmark","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fpforret%2Fsplashmark","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpforret%2Fsplashmark/lists"}