Sprite sheet packer

Overview

SpriteSheet Packer

Sprite sheet generator base on Qt created by Aleksey Makaseev.

Features

  • Support multiple screen resolutions
  • Pack multiple sprite sheets at once
  • Trimming / Cropping (Save space by removing transparency)
  • Include GUI and command-line interface.
  • Support MacOS, Windows and Linux

Uses Qt - Digia Plc, LGPL license.

preview

Supported publish spritesheet formats

Documentation

See the Documentation for use.

Release builds

Download pre-build

License

See the LICENSE file for license rights and limitations (MIT).

Changelog

CHANGELOG file for all change logs.

Developers

See the AUTHORS file.

Comments
  • Optimize PNG

    Optimize PNG

    Why not add a postprocessing step and run OptiPNG after generating png. The easiest thing would probably be just running optipng after generating using QProcess.

    opened by TheCodez 84
  • Pngquant image optimization

    Pngquant image optimization

    I've already added the pngquant optimizer. I will send a pr it as soon as the optimizer pr is merged. The only thing i don't know yet with pngquant is, what the png opt level slider is for. It should use the slowest generation, so that the the output image quality istn't that much sacrified.Maybe optslider changes the compression of the saved image.

    opened by TheCodez 8
  • Crashes when ren from command line with project argument (Windows)

    Crashes when ren from command line with project argument (Windows)

    Crashes every time with exit code -1 or -1073741571. Example project file with 100% repro attached. The project was created in GUI and when used in GUI, it works fine.

    opened by Riva3000 6
  • File extension (*.png) is not add to key

    File extension (*.png) is not add to key

    In folder abc_0 there is file 00.png. But key has value abc_0/00.

    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
    <plist version="1.0">
     <dict>
      <key>frames</key>
      <dict>
       <key>abc_0/00</key>
       <dict>
        <key>aliases</key>
        <array/>
        <key>spriteOffset</key>
        <string>{-1,1}</string>
        <key>spriteSize</key>
        <string>{71,73}</string>
        <key>spriteSourceSize</key>
        <string>{75,98}</string>
        <key>textureRect</key>
        <string>{{85,0},{71,73}}</string>
        <key>textureRotated</key>
        <false/>
       </dict>
    
    opened by crazyhappygame 5
  • Cannot build with Qt Creator 4.5.2

    Cannot build with Qt Creator 4.5.2

    I get the following error message:

    Could not find qmake spec 'default'.
    Error while parsing file /home/user/projects/sprite-sheet-packer/sprite-sheet-packer.pro. Giving up.
    

    Which Qt Creator Version do you user?

    opened by aggsol 4
  • Add CI for Linux & macOS

    Add CI for Linux & macOS

    Hello,

    I hope this is useful. It automatically creates packages for macOS & Linux (DMG for macOS, AppImage for Linux) on every commit to master using Github Actions (the tab here on top). A nice badge can be added on the readme for people to be able to download the builds or something similar, but I'll leave the niceties for somebody else if you accept this PR :).

    Also, a Windows build is missing. Should be a matter of mostly copying what the macOS build is doing. And the commits are separate (more or less) in case you want to add only Linux or only macOS support for any reason :).

    Finally, this is not perfect and can be improved a lot, but I've already spent too much time on it already :).

    opened by Arcnor 2
  • Crash when saving project in linux

    Crash when saving project in linux

    Hi, Saving a project on linux (tested in Ubuntu 19.10 with Qt 5.13) crashes. That's because the file dialog does not automatically adds the extension. I had the same problem for my own tool. I made a possible workarround here:

    void MainWindow::on_actionSaveAs_triggered() {
        QSettings settings;
        QString dir;
        if (!_currentProjectFileName.isEmpty()) {
            dir = _currentProjectFileName;
        } else {
            dir = settings.value("spritePackerFileName", QDir::currentPath()).toString();
        }
        QString fileName = QFileDialog::getSaveFileName(this, tr("Save sprite packer project file."),
                                                        dir,
                                                        tr("Sprite sheet packer (*.ssp)"));
        if (!fileName.isEmpty()) {
            if (!fileName.endsWith(".ssp")) {
                fileName.append(".ssp");
            }
            settings.setValue("spritePackerFileName", fileName);
            saveSpritePackerProject(fileName);
        }
    }
    

    Just added a verification that if the correct suffix is not added to the filename when saving, add it by default. I'll make a PR if that way suits your guidelines!

    opened by azagaya 1
  • Command line: input path does not support spaces

    Command line: input path does not support spaces

    Command line usage: input path does not support spaces, whereas output path with spaces work.

    this does not work: SpriteSheetPacker.exe "C:\test\input with spaces\siteicons" "C:\test\output with spaces works"

    this does work: SpriteSheetPacker.exe "C:\test\inputwithoutspacesworks\siteicons" "C:\test\output with spaces works"

    opened by Dennis1000 0
  • Support for exporting pixel format and texture filter

    Support for exporting pixel format and texture filter

    For supporting the LibGDX format, it is necessary to be able to export the pixel format and texture filter options.

    Currently you can select the pixel format but for the texture filter there is no UI control.

    opened by kali-dali 4
  • [Suggestion] Project file should include images used.

    [Suggestion] Project file should include images used.

    Hi, I suggest project file should be a zip file (with extension changed to .ssp) that includes the images used inside, as other tools do. This way we could move project arround, share it, even version it for group projects.

    opened by azagaya 2
  • error while loading shared libraries: libPVRTexLib.so

    error while loading shared libraries: libPVRTexLib.so

    Hi! I'm trying to compile for linux in debut mode, and i get this error:

    error while loading shared libraries: libPVRTexLib.so: cannot open shared object file: No such file or directory
    

    I can confirm libPVRTexLib.so is present in 3rdparty folder.

    In release mode, i cannot even compile.. i get that error during compilation.

    Is there any instructions on how to build? Thanks!

    I'm using Qt 5.13 64bits btw.

    opened by azagaya 12
Releases(1.0.9)
Owner
null
An experimental sprite rendering setup utilizing SSBO's, Threading, EnTT reactive systems, and array-textures based sprite caching.

entt-reactive An experimental sprite rendering setup utilizing pooled SSBO's, a multithreaded setup based on Even Todd's The Poor Man's Threading Arch

Jackie Fuchs 7 Apr 29, 2022
A C++14 cheat-sheet on lvalues, rvalues, xvalues, and more

C++14 value category cheatsheet Herein lies a generated PDF which outlines the common pitfalls and edge cases with C++14's lvalues, rvalues, and the l

Jeaye Wilkerson 399 Dec 29, 2022
This repo contains solution of 450 DSA sheet by love babbar

450DSA This repo contains solution of 450 DSA sheet by love babbar . Here is the link for that list : https://450dsa.com/ Guidlines to be followed Onl

null 5 Aug 14, 2022
Atari-ST version of Shrinkler Amiga packer

STrinkler - Atari exe packer suited for 4KiB demo Use Shrinkler packing technology by Blueberry/Loonies Atari platform support by Leonard/Oxygene Usag

Arnaud Carré 10 Dec 10, 2022
Texture Packer for Game Development Using MaxRects Algorithm

Overview Texture Packer for Game Development Using MaxRects Algorithm. Note: The game assets used in this example were download from Grassland Tileset

Jeremy HU 60 Dec 8, 2022
Contains firmware and software used for the bead sprite printer v2 robotic system

Bead-Sprite-Printer-V2 Contains firmware and software used for the bead sprite printer v2 robotic system bead_fuser_arduino - this folder contains the

null 5 Dec 29, 2022
Animated sprite editor & pixel art tool (Windows, macOS, Linux)

Aseprite Introduction Aseprite is a program to create animated sprites. Its main features are: Sprites are composed of layers & frames as separated co

Aseprite 19.7k Jan 2, 2023
Animated sprite editor & pixel art tool -- Fork of the last GPLv2 commit of Aseprite

LibreSprite Introduction LibreSprite is a free and open source program for creating and animating your sprites. Real-time animation previews. Onion sk

null 2.9k Dec 31, 2022
A small single-file library for sprite outline extraction and simplification for C/C++

Sproutline A small single-file library for sprite outline extraction and simplification for C/C++. Input: Sprite with an alpha channel. Output: All th

ands 78 Dec 12, 2022
A crate for loading data from the aseprite sprite editor

aseprite A crate for loading data from the aseprite sprite editor. Should go along well with the tiled crate, I hope! It does not load any actual imag

null 28 Feb 17, 2022
A package to use Material side sheet into your Flutter project. Learn more about side sheet at Material.io

Side Sheet A package to use Material side sheet into your Flutter project. Learn more about side sheet at Material.io Platform Support Android iOS Mac

Lalit Jarwal 6 Aug 25, 2022
An experimental sprite rendering setup utilizing SSBO's, Threading, EnTT reactive systems, and array-textures based sprite caching.

entt-reactive An experimental sprite rendering setup utilizing pooled SSBO's, a multithreaded setup based on Even Todd's The Poor Man's Threading Arch

Jackie Fuchs 7 Apr 29, 2022
A C++14 cheat-sheet on lvalues, rvalues, xvalues, and more

C++14 value category cheatsheet Herein lies a generated PDF which outlines the common pitfalls and edge cases with C++14's lvalues, rvalues, and the l

Jeaye Wilkerson 399 Dec 29, 2022
MediaHouse libs resource unpacker/packer

Multi-Pulti Tools Инструментарий для работы с ресурсами конструктора мультфильмов от издателя MediaHouse. Multi-Pulti Детский конструктор мультфильмов

null 2 Sep 21, 2021
File packer for my games

cbfilegrabber2 File packer for my games still beta Usage cbfilegrabber2 [--zip|--package] <myassets.dat> --file <myassets.png> or cbfilegrabber2 --pac

Nicholas Oliveira 2 Jan 5, 2022
This Repository is based on Striver DSA Sheet problems solved by me for Interview preparation. All solutions are coded in C++ language.

Striver DSA Sheet Striver DSA Sheet Link This Repository is based on Striver DSA Sheet problems solved by me (sometimes with help from different resou

Sayantan Banerjee 13 Nov 11, 2022
This repo contains solution of 450 DSA sheet by love babbar

450DSA This repo contains solution of 450 DSA sheet by love babbar . Here is the link for that list : https://450dsa.com/ Guidlines to be followed Onl

null 5 Aug 14, 2022
Atari-ST version of Shrinkler Amiga packer

STrinkler - Atari exe packer suited for 4KiB demo Use Shrinkler packing technology by Blueberry/Loonies Atari platform support by Leonard/Oxygene Usag

Arnaud Carré 10 Dec 10, 2022
Texture Packer for Game Development Using MaxRects Algorithm

Overview Texture Packer for Game Development Using MaxRects Algorithm. Note: The game assets used in this example were download from Grassland Tileset

Jeremy HU 60 Dec 8, 2022
A procedural sprite animation tool made with the nCine

SpookyGhost A procedural sprite animation tool made with the nCine. You can read the manual online or you can access it by pressing F1 in the program.

SpookyGhost 219 Dec 11, 2022