{"id":16610008,"url":"https://github.com/BdR76/GimpSpriteAtlas","last_synced_at":"2025-10-29T17:30:46.684Z","repository":{"id":83340048,"uuid":"496411173","full_name":"BdR76/GimpSpriteAtlas","owner":"BdR76","description":"GIMP plug-in to create a spriteatlas (aka spritetexture or spritesheet). Takes all layers as images and compiles them into one sprite atlas texture, using a 2D packing algorithm so that the final texture image takes as little space as possible. Also outputs a TexturePacker JSON, LibGDX, CSS or XML coordinates file.","archived":false,"fork":false,"pushed_at":"2024-03-09T16:56:38.000Z","size":650,"stargazers_count":19,"open_issues_count":0,"forks_count":5,"subscribers_count":1,"default_branch":"main","last_synced_at":"2024-03-19T16:10:53.935Z","etag":null,"topics":["game-development","sprite","sprite-animation","sprite-sheet","sprites","spritesheet-packer","texture","texture-pack","texture-synthesis","textures"],"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/BdR76.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}},"created_at":"2022-05-25T22:44:11.000Z","updated_at":"2024-03-19T16:10:53.936Z","dependencies_parsed_at":"2023-10-15T10:37:32.543Z","dependency_job_id":null,"html_url":"https://github.com/BdR76/GimpSpriteAtlas","commit_stats":null,"previous_names":[],"tags_count":3,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/BdR76%2FGimpSpriteAtlas","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/BdR76%2FGimpSpriteAtlas/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/BdR76%2FGimpSpriteAtlas/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/BdR76%2FGimpSpriteAtlas/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/BdR76","download_url":"https://codeload.github.com/BdR76/GimpSpriteAtlas/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":219857399,"owners_count":16556064,"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":["game-development","sprite","sprite-animation","sprite-sheet","sprites","spritesheet-packer","texture","texture-pack","texture-synthesis","textures"],"created_at":"2024-10-12T01:29:24.310Z","updated_at":"2025-10-29T17:30:46.183Z","avatar_url":"https://github.com/BdR76.png","language":"Python","funding_links":[],"categories":["Python"],"sub_categories":[],"readme":"GIMP SpriteAtlas\n================\n\nGIMP SpriteAtlas is a plug-in to compile\nsprite textures for use in games and websites.\n\nThe plug-in takes several smaller images and compiles them into a single image.\nIt uses a packing algorithm to use as little space as possible in the final\ntexture. And it exports a JSON, Atlas, XML or CSS file with the sprite names and\ntheir coordinates within the compiled texture.\n\n![GIMP Sprite Atlas plug-in summary](/docs/spriteatlas_summary.png?raw=true \"GIMP Sprite Atlas plug-in summary\")\n\nHow to install\n-------------\nFirst install [GIMP](https://www.gimp.org/), then place the Python script file\n[create_spriteatlas.py](/GIMP%202/lib/gimp/2.0/plug-ins) in the GIMP folder,\ntypically under program files:\n\n\tWindows (all users)\n\t%PROGRAMFILES%\\GIMP 2\\lib\\gimp\\2.0\\plug-ins\\\n\tWindows (single user)\n\t%USERPROFILE%\\AppData\\Roaming\\GIMP\\2.10\\plug-ins\\\n\t\n\tLinux\n\t~/.config/GIMP/2.10/plug-ins/\n\nAfter you've copied the file in this directory, open GIMP and the plug-in is\navailable in the menu:\n\n\tFilters -\u003e Animation -\u003e Sprite Atlas\n\nHow to use it\n-------------\n\n1. Open GIMP\n2. Open your images as layers (Ctrl + Alt + O)\n3. Start the plug-in from `Filters \u003e Animation \u003e Sprite Atlas`\n4. Select an export folder\n5. Press OK to generate the sprite texture\n\nSo first open all your images as layers. You can do this from the menu\n`Open As Layers` (Ctrl + Alt + O), select all your files and click `Open`.\nAlternatively, you can first open one image (preferably the largest one), and\nthen drag and drop all the remaining images onto the layers window.\n\nNote: opening images as layers can be remarkably slow\n(see [issue report](https://gitlab.gnome.org/GNOME/gimp/-/issues/8200)).\n\n![GIMP Sprite Atlas plug-in how to use 1](/docs/gimp_screenshot1.png?raw=true \"GIMP Sprite Atlas plug-in how to use 1\")\n\nThen go to the menu `Filters \u003e Animation \u003e Sprite Atlas` to open the GIMP\nSpriteAtlas plug-in, you'll see the following dialog.\n\n![GIMP Sprite Atlas plug-in how to use 1](/docs/gimp_screenshot2.png?raw=true \"GIMP Sprite Atlas plug-in how to use 2\")\n\nMake sure to select an export folder, this is where the output image and\ncoordinates datafile will be exported to. The default export folder is\n`\\tmp\\`, if you don't change this to an actual existing folder you will get\nthe following error message:\n\n\tRuntimeError: Could not open '\\tmp\\sprites.png' for writing: No such file or directory\n\nPress OK to generate the spriteatlas and export the sprite texture and sprite\nmetadata file.\n\n![GIMP Sprite Atlas plug-in how to use 1](/docs/gimp_screenshot3.png?raw=true \"GIMP Sprite Atlas plug-in how to use 3\")\n\nOptions\n-------\n\n**Export filename**: Export filename for both the texture image and the\ncoordinates file, for example, set it to `sprites123` and the output files\nwill be named `sprites123.png` and `sprites123.json`.\n\n**Export folder**: Output folder for both the texture image and the\ncoordinates file.\n\n**Export filetype**\n\n* JSON TexturePacker-array, compatible with the TexturePacker format\n* JSON TexturePacker hash, compatible with the TexturePacker format\n* libGDX TextureAtlas, .atlas text file\n* CSS sprites, can be used for html and websites\n* XML, plain xml format\n\nThe TexturePacker-array/hash output is the preferred format for use with\n[Phaser.io](https://phaser.io/). If you need any other format, you can edit\nthe Python code and add a custom function or you can post an\n[issue here](https://github.com/BdR76/GIMPSpriteAtlas/issues).\n\n**Pad one pixel between sprites** separate all sprites by at least one pixel,\nrecommended to avoid *texture bleeding*. If a sprite texture contains sprites\nthat are right next to each other, in some graphics engines the\ntexture tiles can \"overflow\" and pick up parts of neighboring tiles.\n\n**Extending sprites** the plug-in can automatically extend the edges on some\nsprites Up Down Left and/or Right. This can be useful to make tiles in a\ntilemap align seemlessly, so without any lines between tiles. For example if\nyou want to extend a sprite **D**own and **R**right you can add `[ext=DR]` to\nthe name like this\n\n\tmytile01 [ext=dr].png\n\nIn the compiled texture, the plug-in will extend this sprite by one pixel down\nand one pixel right, meaning it will copy the bottom row pixels and the\nright-most column of pixels of that sprite.\n\n![GIMP Sprite Atlas plug-in extend edges](/docs/spriteatlas_extend.png?raw=true \"GIMP Sprite Atlas plug-in extend edges\")\n\nSprite Sheet\n------------\nThis repository also includes a `create_spritesheet.py` plugin, for the sake\nof completeness. It creates a sprite sheet where all the sprites are the same\nsize in a simple grid layout. This doesn't require a coordinates file.\nThe tile size will be the width and height of the original image.\n\nIt is based on a [plug-in by Spydarlee](https://github.com/Spydarlee/scripts/tree/master/GIMP)\nbut with some bugfixes and additional options\n\nTrouble shooting / Known issues\n-------------------------------\n* Opening images as layers is remarkably slow in GIMP (see \n[issue report](https://gitlab.gnome.org/GNOME/gimp/-/issues/8200)).\nOnce you've created a sprite texture, it's best to also save the original\nimage with the layers as a `.xcf`. If you want to make changes to the texture\nat a later time (add/remove sprites) then you can more quickly open the `.xcf`\ninstead of having to re-add all the images as layers again.\n\n* You can use this plug-in create any custom coordinates format or custom\npreprocessing by editing the Python file. Alternatively you can also create\nsprite atlas/textures using the \n[TexturePacker Online (free)](https://www.codeandweb.com/tp-online)\nor [Leshy SpriteSheet Tool](https://www.leshylabs.com/apps/sstool/)\n\nHistory\n-------\n26-may-2022 - v0.1 first release  \n14-oct-2023 - v0.2 json bugfix  \n09-mrt-2024 - v0.3 fix pad-pixel option\n\nBdR©2023 Free to use - send questions or comments: Bas de Reuver - bdr1976@gmail.com\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FBdR76%2FGimpSpriteAtlas","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FBdR76%2FGimpSpriteAtlas","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FBdR76%2FGimpSpriteAtlas/lists"}