{"id":13419635,"url":"https://github.com/jarun/imgp","last_synced_at":"2026-10-19T16:50:03.637Z","repository":{"id":41534479,"uuid":"65226893","full_name":"jarun/imgp","owner":"jarun","description":":camera_flash: Fast batch image resizer and rotator","archived":false,"fork":false,"pushed_at":"2026-10-04T08:15:35.000Z","size":440,"stargazers_count":1093,"open_issues_count":0,"forks_count":51,"subscribers_count":18,"default_branch":"master","last_synced_at":"2026-10-09T20:50:33.203Z","etag":null,"topics":["cli","command-line","console","image-compression","image-manipulation","image-optimization","image-processing","image-resize","image-resizer","image-resolution","image-rotate","multiprocessing","standalone","terminal"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/jarun.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG","contributing":null,"funding":".github/FUNDING.yml","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,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null},"funding":{"github":"jarun"}},"created_at":"2016-08-08T18:00:59.000Z","updated_at":"2026-10-09T08:01:20.000Z","dependencies_parsed_at":"2022-08-10T02:40:58.139Z","dependency_job_id":"8a22037b-a025-4a54-9572-045a3398a539","html_url":"https://github.com/jarun/imgp","commit_stats":{"total_commits":269,"total_committers":9,"mean_commits":29.88888888888889,"dds":0.137546468401487,"last_synced_commit":"9de12ea9cfd3514d7f7b877eb983f40c697b1c1f"},"previous_names":[],"tags_count":12,"template":false,"template_full_name":null,"purl":"pkg:github/jarun/imgp","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jarun%2Fimgp","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jarun%2Fimgp/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jarun%2Fimgp/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jarun%2Fimgp/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/jarun","download_url":"https://codeload.github.com/jarun/imgp/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jarun%2Fimgp/sbom","scorecard":{"id":506846,"data":{"date":"2025-08-11","repo":{"name":"github.com/jarun/imgp","commit":"00b2b520964f22ca5b6e0c7d7cb07ce7a755cea7"},"scorecard":{"version":"v5.2.1-40-gf6ed084d","commit":"f6ed084d17c9236477efd66e5b258b9d4cc7b389"},"score":4.1,"checks":[{"name":"Binary-Artifacts","score":10,"reason":"no binaries found in the repo","details":null,"documentation":{"short":"Determines if the project has generated executable (binary) artifacts in the source repository.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#binary-artifacts"}},{"name":"Dangerous-Workflow","score":10,"reason":"no dangerous workflow patterns detected","details":null,"documentation":{"short":"Determines if the project's GitHub Action workflows avoid dangerous patterns.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#dangerous-workflow"}},{"name":"Code-Review","score":1,"reason":"Found 4/25 approved changesets -- score normalized to 1","details":null,"documentation":{"short":"Determines if the project requires human code review before pull requests (aka merge requests) are merged.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#code-review"}},{"name":"Maintained","score":0,"reason":"0 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 0","details":null,"documentation":{"short":"Determines if the project is \"actively maintained\".","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#maintained"}},{"name":"Packaging","score":-1,"reason":"packaging workflow not detected","details":["Warn: no GitHub/GitLab publishing workflow detected."],"documentation":{"short":"Determines if the project is published as a package that others can easily download, install, easily update, and uninstall.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#packaging"}},{"name":"Pinned-Dependencies","score":0,"reason":"dependency not pinned by hash detected -- score normalized to 0","details":["Warn: third-party GitHubAction not pinned by hash: .github/workflows/lock.yml:20: update your workflow using https://app.stepsecurity.io/secureworkflow/jarun/imgp/lock.yml/master?enable=pin","Info:   0 out of   1 third-party GitHubAction dependencies pinned"],"documentation":{"short":"Determines if the project has declared and pinned the dependencies of its build process.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#pinned-dependencies"}},{"name":"Token-Permissions","score":10,"reason":"GitHub workflow tokens follow principle of least privilege","details":["Info: no jobLevel write permissions found"],"documentation":{"short":"Determines if the project's workflows follow the principle of least privilege.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#token-permissions"}},{"name":"CII-Best-Practices","score":0,"reason":"no effort to earn an OpenSSF best practices badge detected","details":null,"documentation":{"short":"Determines if the project has an OpenSSF (formerly CII) Best Practices Badge.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#cii-best-practices"}},{"name":"Security-Policy","score":0,"reason":"security policy file not detected","details":["Warn: no security policy file detected","Warn: no security file to analyze","Warn: no security file to analyze","Warn: no security file to analyze"],"documentation":{"short":"Determines if the project has published a security policy.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#security-policy"}},{"name":"Vulnerabilities","score":10,"reason":"0 existing vulnerabilities detected","details":null,"documentation":{"short":"Determines if the project has open, known unfixed vulnerabilities.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#vulnerabilities"}},{"name":"Fuzzing","score":0,"reason":"project is not fuzzed","details":["Warn: no fuzzer integrations found"],"documentation":{"short":"Determines if the project uses fuzzing.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#fuzzing"}},{"name":"License","score":10,"reason":"license file detected","details":["Info: project has a license file: LICENSE:0","Info: FSF or OSI recognized license: GNU General Public License v3.0: LICENSE:0"],"documentation":{"short":"Determines if the project has defined a license.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#license"}},{"name":"Signed-Releases","score":0,"reason":"Project has not signed or included provenance with any releases.","details":["Warn: release artifact v2.8 not signed: https://api.github.com/repos/jarun/imgp/releases/34599564","Warn: release artifact v2.7 not signed: https://api.github.com/repos/jarun/imgp/releases/22405963","Warn: release artifact v2.6 not signed: https://api.github.com/repos/jarun/imgp/releases/13562732","Warn: release artifact v2.5 not signed: https://api.github.com/repos/jarun/imgp/releases/9728633","Warn: release artifact v2.8 does not have provenance: https://api.github.com/repos/jarun/imgp/releases/34599564","Warn: release artifact v2.7 does not have provenance: https://api.github.com/repos/jarun/imgp/releases/22405963","Warn: release artifact v2.6 does not have provenance: https://api.github.com/repos/jarun/imgp/releases/13562732","Warn: release artifact v2.5 does not have provenance: https://api.github.com/repos/jarun/imgp/releases/9728633"],"documentation":{"short":"Determines if the project cryptographically signs release artifacts.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#signed-releases"}},{"name":"Branch-Protection","score":0,"reason":"branch protection not enabled on development/release branches","details":["Warn: branch protection not enabled for branch 'master'"],"documentation":{"short":"Determines if the default and release branches are protected with GitHub's branch protection settings.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#branch-protection"}},{"name":"SAST","score":0,"reason":"SAST tool is not run on all commits -- score normalized to 0","details":["Warn: 0 commits out of 9 are checked with a SAST tool"],"documentation":{"short":"Determines if the project uses static code analysis.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#sast"}}]},"last_synced_at":"2025-08-19T23:25:56.886Z","repository_id":41534479,"created_at":"2025-08-19T23:25:56.886Z","updated_at":"2025-08-19T23:25:56.886Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":344872684,"owners_count":38362280,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-10-03T21:59:58.778Z","status":"online","status_checked_at":"2026-10-19T02:00:06.414Z","response_time":53,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"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","command-line","console","image-compression","image-manipulation","image-optimization","image-processing","image-resize","image-resizer","image-resolution","image-rotate","multiprocessing","standalone","terminal"],"created_at":"2024-07-30T22:01:18.718Z","updated_at":"2026-10-19T16:50:03.621Z","avatar_url":"https://github.com/jarun.png","language":"Python","funding_links":["https://github.com/sponsors/jarun"],"categories":["Python","Images","Applications","Multimedia and File Formats","Tools and Plugins","Uncategorized","\u003ca name=\"graphics\"\u003e\u003c/a\u003eGraphics"],"sub_categories":["Image Conversion","Graphics","Directory Navigation","Windows","Uncategorized"],"readme":"\u003ch1 align=\"center\"\u003eimgp\u003c/h1\u003e\n\n\u003cp align=\"center\"\u003e\n\u003ca href=\"https://github.com/jarun/imgp/releases/latest\"\u003e\u003cimg src=\"https://img.shields.io/github/release/jarun/imgp.svg?maxAge=600\" alt=\"Latest release\" /\u003e\u003c/a\u003e\n\u003ca href=\"https://repology.org/project/imgp/versions\"\u003e\u003cimg src=\"https://repology.org/badge/tiny-repos/imgp.svg?header=repos\" alt=\"Availability\"\u003e\u003c/a\u003e\n\u003ca href=\"https://pypi.org/project/imgp/\"\u003e\u003cimg src=\"https://img.shields.io/pypi/v/imgp.svg?maxAge=600\" alt=\"PyPI\" /\u003e\u003c/a\u003e\n\u003ca href=\"https://circleci.com/gh/jarun/workflows/imgp\"\u003e\u003cimg src=\"https://img.shields.io/circleci/project/github/jarun/imgp.svg\" alt=\"Build Status\" /\u003e\u003c/a\u003e\n\u003ca href=\"https://github.com/jarun/imgp/blob/master/LICENSE\"\u003e\u003cimg src=\"https://img.shields.io/badge/license-GPLv3+-yellowgreen.svg?maxAge=2592000\" alt=\"License\" /\u003e\u003c/a\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n\u003ca href=\"https://asciinema.org/a/88448\"\u003e\u003cimg src=\"https://github.com/user-attachments/assets/b7efb760-b5f8-4118-beee-69ce9efd8de4\" alt=\"imgp_asciicast\" width=\"600\"/\u003e\u003c/a\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\u003ci\u003eWatch imgp resize a directory of images in lightning speed!\u003c/i\u003e\u003c/p\u003e\n\n`imgp` is a command line image resizer and rotator for JPEG, PNG and WEBP images. It can resize (or thumbnail) and rotate thousands of images in a go, at lightning speed, while saving significantly on storage.\n\nPowered by multiprocessing, SIMD parallelism (thanks to the Pillow-SIMD library), an intelligent adaptive algorithm, recursive operations, shell completion scripts, EXIF preservation (and more), `imgp` is a very flexible utility with well-documented easy to use options.\n\n`imgp` intends to be a stronger replacement of the Nautilus Image Converter extension, not tied to any file manager and way faster. On desktop environments (like Xfce or LxQt) which do not integrate Nautilus, `imgp` will save your day. File manager [nnn](https://github.com/jarun/nnn) provides a script to batch resize images with `imgp`.\n\n### Table of Contents\n\n- [Features](#features)\n  - [Adaptive mode](#adaptive-mode)\n- [Performance](#performance)\n- [Installation](#installation)\n  - [Dependencies](#dependencies)\n  - [From a package manager](#from-a-package-manager)\n  - [Release packages](#release-packages)\n  - [From source](#from-source)\n  - [Running standalone](#running-standalone)\n- [Shell completion](#shell-completion)\n- [Usage](#usage)\n  - [cmdline options](#cmdline-options)\n  - [Operational notes](#operational-notes)\n- [Examples](#examples)\n- [Troubleshooting](#troubleshooting)\n- [Developers](#developers)\n\n### Features\n\n- resize by percentage or resolution or megapixel target\n- rotate clockwise by specified angle\n- adaptive resize considering orientation\n- brute force to a resolution\n- optimize images to save more space\n- limit processing by minimum image size\n- convert PNG/WEBP to JPEG\n- erase exif metadata\n- specify output JPEG image quality\n- force smaller to larger resize\n- process directories recursively\n- overwrite source image option\n- completion scripts for bash, fish, zsh\n- minimal dependencies\n\n#### Adaptive mode\n\n- If the specified and image orientations are same [(H \u003e= V and h \u003e v) or (H \u003c V and h \u003c v)], the image is resized with the longer specified side as reference.\n- In case of cross orientation [(H \u003e= V and h \u003c= v) or (H \u003c V and h \u003e= v)], the image is resized with the shorter specified side as reference. Same as non-adaptive.\n\nFor example, if an image has a resolution of 2048x1365 and is being resized to 1366x768:\n\n- In regular mode (default), output image resolution will be 1152x768\n- In adaptive mode, output image resolution will be 1366x910\n\n### Performance\n\n`imgp` could resize 8823 images (approx. 4.5GB in size) of mixed resolutions (high to regular) stored in a USB 2.0 external hard disk at an adaptive resolution of 1366x1000 in around 8 minutes. The resulting size was 897MB (approx. 20%).\n\n`imgp` uses Python PIL/Pillow library. Nautilus Image Converter calls the `convert` utility from ImageMagick. For a comparative benchmark, head [here](https://github.com/uploadcare/pillow-simd#benchmarks).\n\n### Installation\n\n#### Dependencies\n\n`imgp` requires Python 3.10 or later.\n\nTo install PIL library on Ubuntu, run:\n\n    sudo apt-get install python3-pil\n\nor, using pip3:\n\n    sudo pip3 install pillow\n\npillow can be replaced by [pillow-simd](https://github.com/uploadcare/pillow-simd) on [SIMD](https://en.wikipedia.org/wiki/SIMD) processors.\n\n#### From a package manager\n\nInstall `imgp` from your package manager. If the version available is dated try an alternative installation method.\n\n\u003cdetails\u003e\u003csummary\u003ePackaging status (expand)\u003c/summary\u003e\n\u003cp\u003e\n\u003cbr\u003e\n\u003ca href=\"https://repology.org/project/imgp/versions\"\u003e\u003cimg src=\"https://repology.org/badge/vertical-allrepos/imgp.svg\" alt=\"Packaging status\"\u003e\u003c/a\u003e\n\u003c/p\u003e\nUnlisted packagers:\n\u003cp\u003e\n\u003cbr\u003e\n● \u003ca href=\"https://github.com/jarun/homebrew-imgp\"\u003eHomebrew TAP\u003c/a\u003e (\u003ccode\u003ebrew install jarun/imgp/imgp\u003c/code\u003e)\u003cbr\u003e\n● \u003ca href=\"https://pypi.org/project/imgp/\"\u003ePyPI\u003c/a\u003e (\u003ccode\u003epip3 install imgp\u003c/code\u003e)\u003cbr\u003e\n● \u003ca href=\"http://codex.sourcemage.org/test/graphics/imgp/\"\u003eSource Mage\u003c/a\u003e (\u003ccode\u003ecast imgp\u003c/code\u003e)\u003cbr\u003e\n\u003c/p\u003e\n\u003c/details\u003e\n\n#### Release packages\n\nPackages for Arch Linux, CentOS, Debian, Fedora, openSUSE Leap and Ubuntu are available with the [latest stable release](https://github.com/jarun/imgp/releases/latest).\n\n#### From source\n\nIf you have git installed, clone this repository. Otherwise download the [latest stable release](https://github.com/jarun/imgp/releases/latest) or [development version](https://github.com/jarun/imgp/archive/master.zip) (*risky*).\n\nInstall to default location (`/usr/local`):\n\n    sudo make install\n\nTo remove, run:\n\n    sudo make uninstall\n\n`PREFIX` is supported, in case you want to install to a different location.\n\n#### Running standalone\n\n`imgp` is a standalone utility. From the containing directory, run:\n\n    ./imgp\n\n### Shell completion\n\nShell completion scripts for Bash, Fish and Zsh can be found in respective subdirectories of [auto-completion/](https://github.com/jarun/imgp/blob/master/auto-completion). Please refer to your shell's manual for installation instructions.\n\n### Usage\n\n#### cmdline options\n\n```\nusage: imgp [-h] [-x res] [-o deg] [-a] [-c] [-e] [-f] [-H] [-i] [-k] [-m] [-M res]\n            [-n] [-N] [-O] [-P] [-q N] [-r] [-s byte] [-w] [-d] [-v] [PATH ...]\n\nResize, rotate JPEG, PNG and WEBP images.\n\npositional arguments:\n  PATH                  source file or dir [default: current dir]\n\noptional arguments:\n  -h, --help            show this help message and exit\n  -x res, --res res     output resolution in HxV or percentage (\"%\" suffix) or megapixel (\"MP\" suffix)\n  -o deg, --rotate deg  rotate clockwise by angle (in degrees)\n  -a, --adapt           adapt to resolution by orientation [default: off]\n  -c, --convert         convert PNG/WEBP to JPG format [default: off]\n  -e, --eraseexif       erase exif metadata [default: off]\n  -f, --force           force to exact specified resolution [default: off]\n  -H, --hidden          include hidden (dot) files [default: off]\n  -i, --includeimgp     re-process _IMGP files. * RISKY: refer to docs\n  -k, --keep            skip (honors -c or --pr) images matching specified\n                        H or V or --res=100 [default: off]\n  -m, --mute            operate silently [default: informative]\n  -M res, --minres res  min resolution in HxV or percentage of --res to resize\n  -n, --enlarge         enlarge smaller images [default: off]\n  -N, --nearest         use nearest neighbour interpolation for PNG [default: antialias]\n  -O, --optimize        optimize the output images [default: off]\n  -P, --progressive     save JPEG images as progressive [default: off]\n  -q N, --quality N     quality factor (N=1-95, JPEG only) [default: 75]\n  -r, --recurse         process non-symbolic dirs recursively [default: off]\n  -s byte, --size byte  minimum size to process an image [default: 1024]\n  -w, --overwrite       overwrite source images [default: off]\n  -d, --debug           enable debug logs [default: off]\n  -v, --version         show program's version number and exit\n```\n\n#### Operational notes\n\n- Multiple files and directories can be specified as source. If `PATH` is omitted, the current directory is processed.\n- Output image names are appended with **_IMGP** if `--overwrite` option is not used. By default *_IMGP* files are not processed. Doing so may lead to potential race conditions when `--overwrite` option is used.\n- PNG/WEBP files with lower target hres/vres are not converted (even if `--convert` is used). Run `imgp --convert (*.png)` separately to convert those.\n- Resize and rotate are lossy operations. For additional reductions in size try `--optimize` and `--eraseexif` options.\n- Option `--optimize` is slower, the encoder makes an extra pass over the image in order to select optimal encoder settings.\n- Progressive JPEG images are saved as progressive.\n\n### Examples\n\n1. Convert some images and directories:\n\n       $ imgp -x 1366x768 ~/ ~/Pictures/image3.png ~/Downloads/\n       /home/testuser/image1.png\n       3840x2160 -\u003e 1365x768\n       11104999 bytes -\u003e 1486426 bytes\n\n       /home/testuser/image2.jpg\n       2048x1365 -\u003e 1152x768\n       224642 bytes -\u003e 31421 bytes\n\n       /home/testuser/Pictures/image3.png\n       1920x1080 -\u003e 1365x768\n       2811155 bytes -\u003e 1657474 bytes\n\n       /home/testuser/Downloads/image4\n       2048x1365 -\u003e 1152x768\n       224642 bytes -\u003e 31421 bytes\n\n2. Scale an image by 75% and overwrite the source image:\n\n       $ imgp -x 75 -w ~/image.jpg\n       /home/testuser/image.jpg\n       1366x767 -\u003e 1025x575\n       120968 bytes -\u003e 45040 bytes\n\n3. Ensure all images in folder `testphotos/` (contains 4 images) are 12MP at maximum:\n\n       $ imgp --res 12MP -w testphotos/\n       testphotos/20250111_193949_ILCE-7M3.jpg\n       6000x4000 -\u003e 4243x2828\n       8355840 bytes -\u003e 3545149 bytes\n\n4. Rotate an image clockwise by 90 degrees:\n\n       $ imgp -o 90 ~/image.jpg\n       120968 bytes -\u003e 72038 bytes\n\n5. Adapt the images in the current directory to 1366x1000 resolution. Visit all directories recursively, overwrite source images, ignore images with matching hres or vres but convert PNG/WEBP images to JPEG.\n\n       $ imgp -x 1366x1000 -wrack\n\n6. Set hres=800 and adapt vres maintaining the ratio.\n\n       $ imgp -x 800x0\n       Source omitted. Processing current directory...\n\n       ./image1.jpg\n       1366x911 -\u003e 800x534\n       69022 bytes -\u003e 35123 bytes\n\n       ./image2.jpg\n       1050x1400 -\u003e 800x1067\n       458092 bytes -\u003e 78089 bytes\n\n7. Process images greater than 50KiB only:\n\n       $ imgp -wrackx 1366x1000 -s 51200\n\n8. Generate a 64px adaptive thumbnail of the last modified file in the current dir:\n\n       #!/usr/bin/env sh\n\n       thumb64 ()\n       {\n           pop=$(ls -1t | head -1)\n           imgp -acx 64x64 \"$pop\"\n       }\n\n### Troubleshooting\n\n1. To lift the pixel limit (e.g. error `'PIL.Image.DecompressionBombError' when resizing large image`) for _trusted_ input files, uncomment the following line in the source code:\n\n       # Image.MAX_IMAGE_PIXELS = None\n\n### Developers\n\n1. Copyright © 2016-2026 [Arun Prakash Jana](https://github.com/jarun)\n2. [Ananya Jana](https://github.com/ananyajana)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjarun%2Fimgp","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjarun%2Fimgp","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjarun%2Fimgp/lists"}