{"id":20207150,"url":"https://github.com/kreativekorp/imagetool","last_synced_at":"2025-10-14T00:07:20.597Z","repository":{"id":84078104,"uuid":"101251203","full_name":"kreativekorp/imagetool","owner":"kreativekorp","description":"ImageTool - Perform simple operations on images and animated GIFs.","archived":false,"fork":false,"pushed_at":"2023-02-24T06:08:17.000Z","size":306,"stargazers_count":0,"open_issues_count":0,"forks_count":1,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-03-03T10:13:47.366Z","etag":null,"topics":["animated-gif","animated-gifs","gif-animation","gif-creator","gif-maker","image-analysis","image-manipulation","image-processing"],"latest_commit_sha":null,"homepage":null,"language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mpl-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/kreativekorp.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":"2017-08-24T03:42:52.000Z","updated_at":"2023-02-24T06:08:22.000Z","dependencies_parsed_at":null,"dependency_job_id":"1446f86b-950b-47cd-bc50-a479df4b1e60","html_url":"https://github.com/kreativekorp/imagetool","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/kreativekorp/imagetool","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kreativekorp%2Fimagetool","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kreativekorp%2Fimagetool/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kreativekorp%2Fimagetool/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kreativekorp%2Fimagetool/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/kreativekorp","download_url":"https://codeload.github.com/kreativekorp/imagetool/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kreativekorp%2Fimagetool/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":279017382,"owners_count":26086052,"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","status":"online","status_checked_at":"2025-10-13T02:00:06.723Z","response_time":61,"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":["animated-gif","animated-gifs","gif-animation","gif-creator","gif-maker","image-analysis","image-manipulation","image-processing"],"created_at":"2024-11-14T05:27:38.413Z","updated_at":"2025-10-14T00:07:20.582Z","avatar_url":"https://github.com/kreativekorp.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"# ImageTool\nPerform simple operations on images and animated GIFs.\n\n## ListImages\nList images with their dimensions.\n\nOptions:\n\n`-r`, `-R` - Recursively list images in subdirectories encountered.\n\nSample output:\n\n```\n$ listimages .\nWidth\tHeight\tLeft\tTop\tRight\tBottom\tFrames\tName\n98\t110\t0\t0\t0\t0\t4\t./000 Reimu.gif\n128\t118\t0\t0\t0\t0\t4\t./001 Marisa.gif\n512\t512\t0\t0\t0\t0\t\t./lena.png\n258\t200\t0\t0\t0\t0\t\t./RGB_24bits_palette_color_test_chart.png\n150\t200\t0\t0\t0\t0\t\t./RGB_24bits_palette_sample_image.jpg\n224\t56\t2\t2\t6\t2\t\t./sisters-in-name.png\n56\t56\t3\t2\t5\t2\t\t./too-school-for-cool.png\n375\t230\t0\t0\t0\t0\t8\t./xFRcRZI.gif\n3000\t230\t0\t0\t0\t0\t\t./xFRcRZI.gif.png\n\ntotal 9\n\nWidth\tHeight\tLeft\tTop\tRight\tBottom\tFrames\tName\n56\t56\t0\t0\t0\t0\t\t(min)\n3000\t512\t3\t2\t6\t2\t\t(max)\n```\n\n## TransformImages\nPerform simple transformations on images and animated GIFs.\n\nOptions for transformations:\n\n`-a`, `--addmargin` *top* *left* *bottom* *right* - Adds the specified number of empty pixels to each edge of the image.\n\n`-b`, `--backgroundcolor` *color* - Renders the image on top of the specified background color. *Color* must be a string of 3, 4, 6, or 8 hexadecimal digits. (Not currently supported for GIFs.)\n\n`-c`, `--canvassize` *width* *height* *anchor* - Changes the width and height of the image without scaling the image. *Anchor* is `NW`, `N`, `NE`, `E`, `SE`, `S`, `SW`, `W`, or `CENTER`.\n\n`-d`, `--flipdiagonal` - Flips the image about its diagonal, i.e. swaps the x and y axes.\n\n`-g`, `--grayscale` - Converts the image to grayscale according to the following formula: *gray* = 0.30 * *red* + 0.59 * *green* + 0.11 * *blue*\n\n`-h`, `--fliphorizontal` - Flips the image horizontally, i.e. about the vertical axis.\n\n`-i`, `--invert` - Inverts the colors of the image.\n\n`-j`, `--invertgrays` *threshold* - Inverts each color of the image only if it is sufficiently desaturated. *Threshold* varies from 0 (invert nothing) to 256 (invert everything).\n\n`-k`, `--colorize` *color* - Recolors the image using tints and shades of the specified color. *Color* must be a string of 3, 4, 6, or 8 hexadecimal digits.\n\n`-l`, `--rotateleft` - Rotates the image counter-clockwise. Alias for `--flipdiagonal` `--flipvertical`.\n\n`-m`, `--removemargin` *top* *left* *bottom* *right* - Removes the specified number of pixels from each edge of the image.\n\n`-p`, `--pebble` - Converts the colors of the image to the Pebble color palette.\n\n`-r`, `--rotateright` - Rotates the image clockwise. Alias for `--flipdiagonal` `--fliphorizontal`.\n\n`-s`, `--scale` *sx* *sy* - Scales the image by the specified factors horizontally and vertically.\n\n`-t`, `--trim` *top* *left* *bottom* *right* - Removes transparent pixels from the specified edges of the image. Each parameter is either `TRUE` or `FALSE`.\n\n`-u`, `--rotate180` - Rotates the image 180 degrees. Alias for `--fliphorizontal` `--flipvertical`.\n\n`-v`, `--flipvertical` - Flips the image vertically, i.e. about the horizontal axis.\n\n`-w`, `--websafe` - Converts the colors of the image to the web-safe color palette.\n\n`-x`, `--speed` *multiplier* - Speeds up or slows down an animation. Has no effect on static images.\n\n`-z`, `--imagesize` *width* *height* - Scales the image to the specified width and height.\n\nOptions for output:\n\n`-f`, `--format` *format* - Specifies the output format of the transformed image. Default is gif if the original is gif or png otherwise.\n\n`-o`, `--output` *path* - Specifies the output file or directory path for the transformed image.\n\n## ConvertAnimation\nConvert between static images and animated GIFs.\n\nOptions for input:\n\n`-ica`, `--inputcellanchor` *anchor* - Sets the position of images read from a directory. *Anchor* is `NW`, `N`, `NE`, `E`, `SE`, `S`, `SW`, `W`, or `CENTER`.\n\n`-icb`, `--inputcellorigin` *x* *y* - Determines the position of the first frame within a static image.\n\n`-ics`, `--inputcellsize` *width* *height* - Determines the width and height of each frame within a static image.\n\n`-icd`, `--inputcelldelta` *dx* *dy* - Determines the X and Y offset between each frame within a static image.\n\n`-icc`, `--inputcellcount` *columns* *rows* - Determines the number of frames horizontally and vertically.\n\n`-ico`, `--inputcellorder` *order* - Determines the ordering of frames (`LTR-TTB`, `TTB-LTR`, etc.).\n\nOptions for transformations:\n\n`-D`, `--durations` *list of frame durations* - Sets the duration of each frame in the final output, e.g. `\"1;0.5;3.14\"` to set the duration of frames 1, 2, and 3 to one second, half a second, and 3.14 seconds, respectively. The list is repeated until the number of frames in the animation is reached when applied.\n\n`-F`, `--frames` *list of frame indices* - Determines which frames will appear in the final output, e.g. `\"1-4;7;2\"` for frames 1, 2, 3, 4, 7, and 2 again, in that order.\n\nAll of the options for transformations used with TransformImages can also be used with ConvertAnimation.\n\nOptions for output:\n\n`-f`, `--format` *format* - Specifies the output format of the converted animation. Default is `\"d\"` for a directory of still frames.\n\n`-n`, `--loopcount` *count* - Specifies the number of times an animation loops (for animated GIFs).\n\n`-o`, `--output` *path* - Specifies the output file or directory path for the converted animation.\n\n`-ocb`, `--outputcellorigin` *x* *y* - Determines the position of the first frame within a static image.\n\n`-ocd`, `--outputcelldelta` *dx* *dy* - Determines the X and Y offset between each frame within a static image.\n\n`-occ`, `--outputcellcount` *columns* *rows* - Determines the number of frames horizontally and vertically.\n\n`-oco`, `--outputcellorder` *order* - Determines the ordering of frames (`LTR-TTB`, `TTB-LTR`, etc.).\n\n`-ois`, `--outputimagesize` *width* *height* - Determines the total width and height of the static image.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkreativekorp%2Fimagetool","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fkreativekorp%2Fimagetool","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkreativekorp%2Fimagetool/lists"}