1. Menu interfaces pop up over and partially obscure the preview image.
Agreed. Added window dragging. Click anywhere that's not an input field or checkbox and drag the window where you like and it remembers the last place you place it for convenience.
2. Click 'apply' every color swap is cumbersome.
Agreed. Made the preview auto-swap colors and added an undo button in place of the apply button. It undoes color changes and removes colors added.
3. Buttons on the main window are out of order, workflow is not intuitive.
Agreed. Reordered buttons on the main window and added description text to (hopefully) make the interface more intuitive.
4. Thanks :)
#. Hex palette swap data
There's are two buttons to load/save palette swap data as a hex text file. It supports:
- hex mapping (#rrggbbaa -> #rrggbbaa)
- list of colors in hex format separated one color per line
- mixed format (hex mapping one line, single hex color next line)
- auto-map lists of colors
- comments (starting with //) at the end of a hex color / mapping line or on a separate line
- ignores extra line breaks
Added a settings window to my app. Next milestone is adding a manual color picker/mapper window that allows defining custom colors/changing colors of imported palettes. Once this is done it's the official version 1.0 release and I'm posting the source with the project on GitHub. If anyone wants any other significant features please let me know.
You're welcome. If anyone else wants it I'm happy to share. I'll put my c# project files with my app that get uploaded to github so it's easy for anyone to find. It was a bit of work to get working but it works really well so happy to share.
My 2 cents: if it's available on the command line it's probably worth having available in the GUI. I strive to make all functions self documenting and available through the GUI unless I'm making a command line application.
Sorry for being overly chatty. In the process of making my online color palette swap tool I realized one of the most basic functions I use different pixel editor programs to do is turn a background transparent (most of the time I use Tiled, mapeditor.org). When I make the GUI color mapping function in my app it will have an option to turn a color transparent (all pixel editing tools should have this). I don't know why this simple function has become such a pain in the rump to find in modern pixel editor programs but I will do my part to reverse this trend!
As a side note, I will make hex mapping support 4 color HEX codes (meaning #ff33cc99, the 99 represents alpha transparency). Setting the last hex value below the alpha tolerance will suffice for turning a color transparent until I get a proper GUI for mapping within my app (you'll get to set that tolerance in the GUI).
That's a pretty cool looking demake of Tiny16! It makes sense that transparent counts as a color since the original GameBoy only has 2 bit color codes. I probably don't know enough about it but from my rough understanding the original Gameboy allowed up to 4 layers and each layer could have up to 4 colors. I think this is where you can get 3 shades of green + transparent. Since multiple layers allow a total of 4 shades of green it's still technically correct to say 4 shades of green + transparent are true to the original GameBoy palette. It's not the same hardware or layer restriction but it's more in the spirit of the thing.
@Sharm
I reduced the resolution to 1024 x 576 (with full screen support of course). If this is still not low enough resolution I don't know if I can design for it. Full screen should scale to your resolution so hopefully it works well enough. If you still can't see the full thing you can zoom out using control+mouse wheel.
@all
I added hex color import and export support. You can now import color palettes using PNG, Gimp GPL, and HEX codes in a text file (format is #abc123 -> #123abc). My next piece is working on a control panel to change settings that exist in the background so the user can change some of the automatic things, then I'm going to make a visual color mapper so users can manually map color a -> color b separate from auto-color mapping.
My apologies, I didn't understand what you were telling me with the error message earlier. Withthelove helped me work out a bug a little while ago and I noticed some very carefully crafted code that handles saving files was being cut out during build because of some macro stuff. Thank you for pointing out that bug.
@Everyone else
I fixed the download functions (and I tested to make sure it actually works this time!). Anyone with Linux or Mac please give my app a test to ensure it's working as expected.
I'm thoroughly impressed with all the flexibility of your pixel swapping tools, I really need to step up my game to keep up. That magic handle bar thing really adds a layer of interest to pixel swapping!
@withthelove
1. Menu interfaces pop up over and partially obscure the preview image.
Agreed. Added window dragging. Click anywhere that's not an input field or checkbox and drag the window where you like and it remembers the last place you place it for convenience.
2. Click 'apply' every color swap is cumbersome.
Agreed. Made the preview auto-swap colors and added an undo button in place of the apply button. It undoes color changes and removes colors added.
3. Buttons on the main window are out of order, workflow is not intuitive.
Agreed. Reordered buttons on the main window and added description text to (hopefully) make the interface more intuitive.
4. Thanks :)
#. Hex palette swap data
There's are two buttons to load/save palette swap data as a hex text file. It supports:
- hex mapping (#rrggbbaa -> #rrggbbaa)
- list of colors in hex format separated one color per line
- mixed format (hex mapping one line, single hex color next line)
- auto-map lists of colors
- comments (starting with //) at the end of a hex color / mapping line or on a separate line
- ignores extra line breaks
@withthelove
Got the GUI together for my color palette swapper. Let me know what you think of the interface and the function.
Added a settings window to my app. Next milestone is adding a manual color picker/mapper window that allows defining custom colors/changing colors of imported palettes. Once this is done it's the official version 1.0 release and I'm posting the source with the project on GitHub. If anyone wants any other significant features please let me know.
https://williamthompsonj.github.io/Color-Palette-Swapper/
@withthelove
You're welcome. If anyone else wants it I'm happy to share. I'll put my c# project files with my app that get uploaded to github so it's easy for anyone to find. It was a bit of work to get working but it works really well so happy to share.
My 2 cents: if it's available on the command line it's probably worth having available in the GUI. I strive to make all functions self documenting and available through the GUI unless I'm making a command line application.
@all
Sorry for being overly chatty. In the process of making my online color palette swap tool I realized one of the most basic functions I use different pixel editor programs to do is turn a background transparent (most of the time I use Tiled, mapeditor.org). When I make the GUI color mapping function in my app it will have an option to turn a color transparent (all pixel editing tools should have this). I don't know why this simple function has become such a pain in the rump to find in modern pixel editor programs but I will do my part to reverse this trend!
As a side note, I will make hex mapping support 4 color HEX codes (meaning #ff33cc99, the 99 represents alpha transparency). Setting the last hex value below the alpha tolerance will suffice for turning a color transparent until I get a proper GUI for mapping within my app (you'll get to set that tolerance in the GUI).
@Baŝto
That's a pretty cool looking demake of Tiny16! It makes sense that transparent counts as a color since the original GameBoy only has 2 bit color codes. I probably don't know enough about it but from my rough understanding the original Gameboy allowed up to 4 layers and each layer could have up to 4 colors. I think this is where you can get 3 shades of green + transparent. Since multiple layers allow a total of 4 shades of green it's still technically correct to say 4 shades of green + transparent are true to the original GameBoy palette. It's not the same hardware or layer restriction but it's more in the spirit of the thing.
@Sharm
I reduced the resolution to 1024 x 576 (with full screen support of course). If this is still not low enough resolution I don't know if I can design for it. Full screen should scale to your resolution so hopefully it works well enough. If you still can't see the full thing you can zoom out using control+mouse wheel.
@all
I added hex color import and export support. You can now import color palettes using PNG, Gimp GPL, and HEX codes in a text file (format is #abc123 -> #123abc). My next piece is working on a control panel to change settings that exist in the background so the user can change some of the automatic things, then I'm going to make a visual color mapper so users can manually map color a -> color b separate from auto-color mapping.
@Sharm
Your Tiny16 sprites translate really well to Gameboy green.
@Baŝto
My apologies, I didn't understand what you were telling me with the error message earlier. Withthelove helped me work out a bug a little while ago and I noticed some very carefully crafted code that handles saving files was being cut out during build because of some macro stuff. Thank you for pointing out that bug.
@Everyone else
I fixed the download functions (and I tested to make sure it actually works this time!). Anyone with Linux or Mac please give my app a test to ensure it's working as expected.
I'm thoroughly impressed with all the flexibility of your pixel swapping tools, I really need to step up my game to keep up. That magic handle bar thing really adds a layer of interest to pixel swapping!
Made some updates, added a GIMP GPL color palette export button, changed the display filter mode to point so it doesn't smooth anymore.
https://williamthompsonj.github.io/Color-Palette-Swapper/
Pages