{"id":13500254,"url":"https://github.com/luphord/imgwrench","last_synced_at":"2025-07-10T02:31:48.978Z","repository":{"id":45639431,"uuid":"167551501","full_name":"luphord/imgwrench","owner":"luphord","description":"A highly opinionated image processor for the commandline.","archived":false,"fork":false,"pushed_at":"2023-11-02T21:42:18.000Z","size":1552,"stargazers_count":3,"open_issues_count":1,"forks_count":0,"subscribers_count":0,"default_branch":"master","last_synced_at":"2024-10-31T18:38:42.396Z","etag":null,"topics":["command-line","image-processing","pipeline","python3"],"latest_commit_sha":null,"homepage":"https://github.com/luphord/imgwrench","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/luphord.png","metadata":{"files":{"readme":"README.rst","changelog":"HISTORY.rst","contributing":"CONTRIBUTING.rst","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":"AUTHORS.rst","dei":null,"publiccode":null,"codemeta":null}},"created_at":"2019-01-25T13:27:04.000Z","updated_at":"2024-02-03T11:58:11.000Z","dependencies_parsed_at":"2024-10-31T18:32:14.372Z","dependency_job_id":"35ba2eac-c06b-4061-aa7f-508da6b8e331","html_url":"https://github.com/luphord/imgwrench","commit_stats":{"total_commits":341,"total_committers":2,"mean_commits":170.5,"dds":"0.0058651026392961825","last_synced_commit":"48359d0c2fa6a6cd95926e0b6445061f48a91c26"},"previous_names":[],"tags_count":24,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/luphord%2Fimgwrench","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/luphord%2Fimgwrench/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/luphord%2Fimgwrench/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/luphord%2Fimgwrench/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/luphord","download_url":"https://codeload.github.com/luphord/imgwrench/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":225615275,"owners_count":17496941,"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":["command-line","image-processing","pipeline","python3"],"created_at":"2024-07-31T22:00:54.357Z","updated_at":"2024-11-20T18:52:27.799Z","avatar_url":"https://github.com/luphord.png","language":"Python","funding_links":[],"categories":["Python"],"sub_categories":[],"readme":"============\nImage Wrench\n============\n\n\n.. image:: https://img.shields.io/pypi/v/imgwrench.svg\n        :target: https://pypi.python.org/pypi/imgwrench\n\n.. image:: https://github.com/luphord/imgwrench/actions/workflows/build-test.yml/badge.svg\n        :target: https://github.com/luphord/imgwrench/actions\n\n.. image:: https://readthedocs.org/projects/imgwrench/badge/?version=latest\n        :target: https://imgwrench.readthedocs.io/en/latest/?badge=latest\n        :alt: Documentation Status\n\n\n\n\nA highly opinionated image processor for the commandline. Multiple subcommands can\nbe executed sequentially to form a processing pipeline.\n\n:code:`imgwrench` is free software available under the MIT license.\nDetailed documentation can be found at https://imgwrench.readthedocs.io.\n\n\nFeatures\n--------\n\n* Subcommands can be executed sequentially to form a pipeline\n* Command *blackwhite* for converting images to black and white\n* Command *collage* creates a collage from multiple images\n* Command *colorfix* for fixing the colors of aged photographs\n* Command *crop* for cropping images to give aspect ratio\n* Command *dither* for converting images to black and white and dithering\n* Command *filmstrip* to stack images horizontally forming a filmstrip\n* Command *flip* to flip/mirror images left-right\n* Command *frame* to put a monocolor frame around images\n* Command *framecrop* top frame and crop an image to a target aspect ratio\n* Command *quad* collects four images to a quad\n* Command *resize* for resizing images\n* Command *save* for no processing, but saving images with the given parameters\n* Command *stack* for vertically stacking images\n\n\nInstallation\n------------\n\nMake sure you have Python and pip installed and available in your $PATH.\nThen :code:`imgwrench` can be installed with\n\n.. code-block:: console\n\n        pip install imgwrench\n\n\nIn order to install for the current user only, you may want to execute\n\n.. code-block:: console\n\n        pip install --user imgwrench\n\n\ninstead. In this case you will have to ensure that the local bin directory\n(typically :code:`~/.local/bin` on Linux systems) is contained in your $PATH.\n\nNote that legacy Python2 is not supported. If your system still ships Python2\nas the default Python interpreter, you may have to execute\n\n.. code-block:: console\n\n        pip3 install imgwrench\n\n\nor\n\n.. code-block:: console\n\n        python3 -m pip install imgwrench\n\n\nUsage\n-----\n\n:code:`imgwrench` is used on the command line by piping file paths into it, e.g.\n\n.. code-block:: console\n\n        ls /path/to/my/images/*.jpg | imgwrench blackwhite\n\n\nFull command line help is\n\n.. code-block:: console\n\n        Usage: imgwrench [OPTIONS] COMMAND1 [ARGS]... [COMMAND2 [ARGS]...]...\n\n        A highly opinionated image processor for the commandline. Multiple\n        subcommands can be executed sequentially to form a processing pipeline.\n\n        Options:\n        -i, --image-list FILENAME  File containing paths to images for processing,\n                                defaults to stdin\n\n        -r, --repeat INTEGER       repeat every image in input sequence  [default:\n                                     1]\n\n        -p, --prefix TEXT          prefix for all output filenames before numbering\n                                [default: img_]\n\n        -d, --digits INTEGER       number of digits for file numbering  [default: 4]\n        -c, --increment INTEGER    increment for file numbering  [default: 1]\n        -k, --keep-names           keep original file names instead of numbering\n                                [default: False]\n\n        -f, --force-overwrite      force overwriting output image file if it exists\n                                [default: False]\n\n        -o, --outdir DIRECTORY     output directory  [default: .]\n        -q, --quality INTEGER      quality of the output images, integer 0 - 100\n                                [default: 88]\n\n        -e, --preserve-exif        preserve image exif and xmp metadata if available\n                                [default: False]\n\n        -j, --jpg / --png          save output images in JPEG format (otherwise PNG)\n                                [default: True]\n\n        --help                     Show this message and exit.\n\n        Commands:\n        blackwhite  Convert color images to black and white.\n        collage     Create a collage from multiple images.\n        colorfix    Fix colors by stretching channel histograms to full range.\n        crop        Crop images to the given aspect ratio.\n        dither      Apply black-white dithering to images.\n        filmstrip   Stack all images horizontally, creating a filmstrip.\n        flip        Flip/mirror images left-right.\n        frame       Put a monocolor frame around images.\n        framecrop   Crop and frame an image to a target aspect ratio.\n        quad        Collects four images to a quad.\n        resize      Resize images to a maximum side length preserving aspect...\n        save        No-op to enable saving of images without any processing.\n        stack       Stacks pairs of images vertically, empty space in the middle.\n\n\nPipelines\n---------\n\n:code:`imgwrench` subcommands can be combined into pipelines. This saves you from generating intermediate\nfiles cluttering your filesystem or reducing the quality of the final results. For example, if you\nwant to convert all images in the current directory to black and white, put a white frame\naround them and have them cut to an aspect ratio of 3:2 (for standard format printing), you would\nexecute the following command:\n\n.. code-block:: console\n\n        ls *.JPG | \\\n        imgwrench -o out -q 95 -p oldschool_img_ \\\n                blackwhite \\\n                framecrop -a 3:2 -w 0.03 -c white\n\nPlease refer to the `detailed subcommand documentation`_ for the individual parameters.\n\n.. _`detailed subcommand documentation`: https://imgwrench.readthedocs.io/en/latest/usage.html\n\nDeveloper Notes\n---------------\n\nShould you run into the following exception while running :code:`imgwrench` from an editable install\n\n.. code-block:: console\n\n        importlib_metadata.PackageNotFoundError: No package metadata was found for imgwrench\n\ntry executing :code:`make dist` to regenerate the :code:`egg` files required bei :code:`importlib`\nwhich have likely been removed by a call to :code:`make clean`.\n\nCredits\n-------\n\nThis package was created with Cookiecutter_ and the `audreyr/cookiecutter-pypackage`_ project template.\n\n.. _Cookiecutter: https://github.com/audreyr/cookiecutter\n.. _`audreyr/cookiecutter-pypackage`: https://github.com/audreyr/cookiecutter-pypackage\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fluphord%2Fimgwrench","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fluphord%2Fimgwrench","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fluphord%2Fimgwrench/lists"}