{"id":48666099,"url":"https://github.com/tousef-refuge/depict","last_synced_at":"2026-04-25T11:04:17.907Z","repository":{"id":350223131,"uuid":"1203901312","full_name":"tousef-refuge/depict","owner":"tousef-refuge","description":"A command-line tool to quickly and recursively edit image files within a directory","archived":false,"fork":false,"pushed_at":"2026-04-09T11:56:52.000Z","size":52,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"master","last_synced_at":"2026-04-09T13:07:44.806Z","etag":null,"topics":["cli","commandline","directory-walk","directory-walker","file-edit","file-editing","file-walk","file-walker","image-edit","image-editing","image-processing","images","pillow-library","png","python","python-backend","rust","rust-cli","rust-frontend","rust-lang"],"latest_commit_sha":null,"homepage":"","language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/tousef-refuge.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"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,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-04-07T13:49:43.000Z","updated_at":"2026-04-08T18:01:16.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/tousef-refuge/depict","commit_stats":null,"previous_names":["tousef-refuge/depict"],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/tousef-refuge/depict","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tousef-refuge%2Fdepict","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tousef-refuge%2Fdepict/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tousef-refuge%2Fdepict/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tousef-refuge%2Fdepict/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/tousef-refuge","download_url":"https://codeload.github.com/tousef-refuge/depict/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tousef-refuge%2Fdepict/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31639524,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-10T07:40:12.752Z","status":"ssl_error","status_checked_at":"2026-04-10T07:40:11.664Z","response_time":98,"last_error":"SSL_read: 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":["cli","commandline","directory-walk","directory-walker","file-edit","file-editing","file-walk","file-walker","image-edit","image-editing","image-processing","images","pillow-library","png","python","python-backend","rust","rust-cli","rust-frontend","rust-lang"],"created_at":"2026-04-10T11:01:06.964Z","updated_at":"2026-04-25T11:04:17.894Z","avatar_url":"https://github.com/tousef-refuge.png","language":"Rust","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cdiv style=\"text-align: center;\"\u003e\n    \u003cimg src=\"./logo.svg\" alt=\" \" width=\"128\"\u003e\u003cbr/\u003e\n  \u003csub\u003e\u003cem\u003edepict, a CLI tool for fast image editing\u003c/em\u003e\u003c/sub\u003e\n\u003c/div\u003e\n\n## Overview\n\nOkay this is my first actually somewhat serious project for once. The core\nidea of it is to make mundane tasks like removing transparent filler off of\nan image, doubling the size of several images etc. super easy and straigtforward\nto do. Just open the terminal and do a ```depict trim C:/Pictures``` and all\nyour problems are cured and your college debt is paid off and everything is\nawesome. This is really helpful for trimming multiple transparent photos\nperfectly, adjusting game assets, AI data augmentation, mass-flipping all your \nart to easily find anatomy mistakes etc.\n\nThe reason I made this is because I made a prototype of this for my game purely \nin python which works almost the exact same way, just way jankier and needs a bit \ntoo much typing. I ended up forgetting about the game but I really like the idea\nof the python CLI so with the power of spamming RustRover autocorrect, 2 hours of\nsleep and chatgpt's useless code anything is possible\n\n## Setup\n\n- There's actually two ways you can do this. I recommend the first one but if\n  that doesn't end up working then you have the second more lengthy option\n\n**Method 1: By downloading github releases (only works for Windows and Linux):**\n\n- Make sure you have python and pip installed first\n- Go to the releases section on this page to the right\n- Download a .zip with the version you want and the right OS\n- Extract it somewhere, like your desktop\n- Copy the address of the zip you just extracted and put it in environmental path\n  variables (for reference, at least on Windows the path should look something like\n  ```C:\\Users\\tousef-refuge\\depict-v1.1.0-x86_64-windows\\```). To learn how to\n  actually do this search up a video or something cause apparently it differs \n  from OS to OS\n- If you downloaded a release starting from 1.2.0 onwards, congrats the setup is over\n  and you can run ```depict``` from anywhere on the terminal! If you downloaded an \n  older release though you might still want to continue from here. Make sure you\n  **DO NOT** delete the release.marker file in the directory otherwise ```depict update``` won't\n  work anymore. If ```depict update``` ever goes wrong the files from the update you\n  migrated off of will still be there with a .old extension at the end. These only get\n  deleted on the next successful run of the new update (which obviously isn't happening\n  if the update went badly in the first place lmao). Removing the .old extension and\n  running them as usual will still work. Keep in mind from v1.2.0 onwards the program \n  deletes **ALL** .old files inside this directory with every successful command run\n- Open the terminal and do ```cd dir``` where dir is the directory that you extracted\n  to just now\n- After that run the following set of commands:\n\n**Windows:**\n```commandline\ncd dir\npy -m venv venv\nvenv/Scripts/activate\npip install -r requirements.txt\n```\n\n**Linux:**\n```commandline\ncd dir\npy -m venv venv\nsource venv/bin/activate\npip install -r requirements.txt\n```\n\n- Keep in mind that the venv folder HAS to be called venv (not .venv) otherwise \n  the program will not work\n- And that's the setup done. Now you can run ```depict``` from anywhere on your\n  terminal. Instructions on how to use it are hopefully clear enough once you\n  run ```depict --help```\n- If this doesn't work somehow or if you don't have the right OS then you can \n  go to the next method\n\n**Method 2: By manually cloning:**\n\n- Make sure you have cargo, python and pip installed first. Also make sure you\n  have some storage lying around since this method could take up some space\n  (it takes up like 2gb as of v1.1.0)\n- Open the terminal and do ```cd dir``` where dir is any directory of your\n  choice. Preferably somewhere kinda hidden though since once you're done with\n  the setup you won't see this folder ever again I think lmao\n- Run the set of commands in the previous method exactly as they are (for macOS\n  use the Linux way), but add ```cargo install --path . --force``` at the end\n- You can get rid of the updater/ directory. It doesn't do anything if you\n  git cloned the project anyway lmao\n- If for SOME REASON you ever feel dissatisfied with depict despite how AWESOME\n  it is and want to get rid of it forever, deleting the project isn't enough.\n  You also need to do ```cargo uninstall depict``` to remove the file for good\n\n## Changelog\n\n- (1.0.0) Initial release. Has the ability to trim, resize, rescale and flip images.\n  All these functions can also recursively process images in a directory and all its\n  sub-directories too\n- (1.1.0) Added update check and speed optimizations. Releases now support linux. Sorry\n  macOS guys I couldn't figure it out yet and I also don't trust release.yml\n- (1.2.0) Added two new commands: depict update to automatically upgrade the CLI whenever\n  necessary (only works if you have it downloaded as a github release) and depict alpha\n  to adjust the opacity of an image\n- (1.3.0) Added two new flags for every image command: --ignore to skip processing specified\n  files and --only to process only specified files. These flags also follow globbing patterns\n  (for example ```depict trim C:/ --only **/test_*.png``` will only target files that have\n  the format test_\\\u003cname\\\u003e.png). Added two new image commands: depict invert and depict\n  grayscale. Take a wild guess at what these do\n- (1.4.0) Added .jpg and .jpeg support. Added 3 new commands: depict backup to generate backups\n  of an image, depict restore to overwrite images with their backups, and depict cleanup to\n  delete backups. Added --backup flag to every image command to generate backups in-place\n- (2.0.0) Added video and gif support. Implemented configuration editing. Added one new \n  command: depict compress to compress images and gifs (works best with .jpgs)","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftousef-refuge%2Fdepict","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftousef-refuge%2Fdepict","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftousef-refuge%2Fdepict/lists"}