Indie game storeFree gamesFun gamesHorror games
Game developmentAssetsComics
SalesBundles
Jobs
Tags

thanks + questions + feature ideas :)

A topic by KuestenKeks created Mar 07, 2021 Views: 211 Replies: 14
Viewing posts 1 to 5
(1 edit)

Thank you for creating this handy tool! <3 Really makes it easy to apply different palettes to my GameBoy Camera pictures :)

What do the arrow buttons do? There are left/right buttons below the "Image" label and up/down buttons below the "Palette" label. They seemed to do nothing when I clicked them.

And I'll just leave a few feature ideas here, although some of them are maybe only useful for my specific use case ;)

  • being able to change the palette order would be nice. I imported a whole bunch of palettes and would have liked to rearrange them afterwards in order to put similar palettes next to each other.
  • I would have liked to set names for my palette mappings. The default name could be the palette's filename (without extension)
  • It would be great if instead of saving one big output picture, I had the option to save individual pictures for every palette in my project. The output filename could be "original-filename_palette-name.png".
  • if relative paths in the project file were used it would be more portable. (I have saved the project file in the same folder as my images).
  • on the right side all the images are in one vertical column. I imported 14 palettes and have to scroll up and down a lot. But there is a lot of unused space available that could be used to show all the images in multiple vertical columns

Kind regards! :)

Developer

Hi!  thanks for your kind words!!  So glad you are finding the tool useful.

I'll try to answer your questions and concerns as best I can.


> What do the arrow buttons do? There are left/right buttons below the "Image" label and up/down buttons below the "Palette" label.

These buttons are for scrolling through the available colors if the palette contains more colors than can fit on the screen at once.

I hadn't thought of it, but I guess it is funny that the 'Image' palette gets a left/right arrows and the 'Map' palette gets up/down arrows.  :)


> being able to change the palette order would be nice. I imported a whole bunch of palettes and would have liked to rearrange them afterwards in order to put similar palettes next to each other.

Colors within a palette can be re-arranged at any time by simply dragging the color squares around.

However, I think maybe we have our terminology a bit mixed up here.  So if it's ok, I'd like to define a few terms here to make sure we are talking about the same thing.

* The 'Image' palette is the list of colors in the source image.

* The 'Palette' or 'map' palette is the list of colors to use in the destination image.

* A 'Map' is a mapping from colors in the 'Image' palette to colors in the 'map' Palette.  

If I am guessing correctly, when you say 'palette' above, you mean what I have dubbed a 'map', is this correct?

If so, I think I see what you mean.   Currently, you can add, remove and clone 'maps' but you cannot re-order them.  Actually, I have often wanted this feature myself and for the reason you suggest, I create a bunch of maps and then want to re-arrange them a bit to put like ones near each other in the list.

I'll think about how to add a way to re-arrange the maps without adding too much clutter to the UI.  I'm sure it can be done.


> I would have liked to set names for my palette mappings.

I hadn't thought of this before, but that's also a really good idea.  Again, I'll think up a way to add this without complicating the UI too much.


> It would be great if instead of saving one big output picture, I had the option to save individual pictures for every palette in my project.

Another great idea.  I had only just recently added the ability to select between stacking the maps vertically or horizontally in the output picture.  I'll work on adding a third mode for saving them a series of separate images.


> if relative paths in the project file were used it would be more portable.

Hmm...  Sometimes I work out of a C: drive and sometimes out of a D: drive, so this is an issue I have encountered myself as well.   On the other hand, I can think of cases where absolute paths would be preferable.  For example, if the source image is in some arbitrary path not really related to where you palette or project files are located.  Still, let me think about this.   What you'd want would be paths that are relative to the project file, right?  

FYI, as a workaround until I get something working for this, the project files are all just plain text, so if you ever move things around, you can open the project file in any text editor and change the image and palette image paths manually.



> on the right side all the images are in one vertical column. I imported 14 palettes and have to scroll up and down a lot. But there is a lot of unused space available that could be used to show all the images in multiple vertical columns.


hmm.  I see what you mean.  Although, this does depend on the aspect ratio of the source image and the current zoom level.   For example, if the source image were very wide or you were zoomed in very closely, then you might not have as much free space.  Anyway,  I'll think about how to fit more maps into the preview area.

If it helps, you can switch to any map simply by clicking directly on it in the preview area.  This can help save some time vs. just using the map up/down buttons.


Thanks again for your nice words and your thoughtful, well written feedback.  I can't promise when I'll get to making any changes but you've actually caught me right at a lull between projects so hopefully I won't have to keep you waiting too long!  :)

ah, thanks for the arrow button explanation. I only worked with 4 colors so far ;)

about the reordering idea, I really explained it a bit confusing. But I think you got it exactly right. Changing the map order would also change the order of appearance of the preview pictures on the right that have the maps applied. This is really what this is about. It would allow me compare output images with similar mappings / map palettes applied more easily. (One implementation idea would be via drag 'n drop, by dragging and dropping the output images.)

>> It would be great if instead of saving one big output picture, I had the option to save individual pictures for every palette in my project.
> Another great idea.  I had only just recently added the ability to select between stacking the maps vertically or horizontally in the output picture.  I'll work on adding a third mode for saving them a series of separate images.

That's great! :) Since your tool also supports CLI mode, I already created a little PowerShell Script that creates separate images, but having this in the UI would be more comfortable :)

> What you'd want would be paths that are relative to the project file, right?

Exactly. Maybe the user could decide if he wants relative or absolute paths. Ideally the save dialogue would have a little checkbox for this. But I don't know if that's easily possible to add. This was just a minor idea though, since editing the text file is always possible, as you said ;)

About fitting more maps in the preview area: you're right, it depends very much on zoom and the source image dimensions if this is useful. But I don't think any smart logic would be necessary to determine a layout of the preview images. I'd be happy if I was able to edit the amount of vertical preview columns manually and this would keep things simple I think :)

Thanks for considering my feedback! I'll be eager to test any updates you release :)

Developer(+1)

Hi!   This took me a bit longer to get to than I was expecting, but some progress has been made.

Just posted a new build that adds the option to save maps as a series of separate images and the ability to re-order maps.

Hold shift and click map up/down buttons to the current map up/down in the map order.   Not quite as slick as dragging and dropping them in the preview window but it should give you something to work from until I can get time to code that bit of magic up.  :)

Image sequences are named 'selected_filenameXX.EXT' where XX is the map number and EXT is the file extension of the selected file (default is png).  Hope that works for you.

Thanks again for the feedback!

(1 edit)

Finally had some time to test your new release. Reordering the maps works fine. It's really neat that the Icon changes while pressing shift :)

When saving as a series of separate images there's a little bug: a number at the end of the file name is ignored. This caused me to overwrite some images. Here's what I did:

  • Loaded an image and 7 maps
  • Saved as separate images and typed "BeepBoop" as filename
  • BeepBoop01.png to BeepBoop07.png was created
  • Loaded a different image
  • tried to save as separate images again and typed "BeepBoop2" as filename
  • my previous pictures were overwritten without warning (even without this bug, I think a warning would be nice when files with the same name already exist)

And another bug: the tool crashes when I abort the save palette file dialogue. (The save button at the bottom left)

I'm really happy with these two new features, makes my scripted solution kind of obsolete I think, thank you :)

Developer

Oh no!  I hope you didn't loose any work due to these bugs!

I have fixed the crash bug and changed the format of the filenames when saving an image sequence.
It now names the files as:
'{selected_filename}_map_XX.EXT' where XX is the map number and EXT is the file extension of the selected file (default is png).

My hope is that by adding '_map_XX'  instead of just 'XX' there's less chance the sequence file names will conflict with other naming conventions you might be using.  Hope that works for you, if not, let me know and we can come up with something better.

no, I didn't loose anything, I was just testing ;)

Great, thanks for the quick fix :)

I don't really understand how you treat my entered file name though. Why don't just take the name exactly as the user entered it and append your suffix (e.g. _map_XX.EXT). It shouldn't matter what the user chose as a file name.

But well, it's not really that important, your fix should be sufficient :)

Developer

> no, I didn't loose anything, I was just testing ;)

that's a relief!

> I don't really understand how you treat my entered file name though.

If I coded it right, here's what it's supposed to do:

SPLIT {entered_filename} into: {filename} and {file_extension} (PNG, JPG, ETC)

IF {filename} ends with the pattern '_map_##'

      Remove '_map_##' from end of {filename}

FOREACH map

       SAVE map as {filename}_map_##.{file_extension}

  > Why don't just take the name exactly as the user entered it and append your suffix (e.g. _map_XX.EXT)

The idea is to allow you to save over an existing image sequence.

So if you've previously saved MyImage_map_01.png, MyImage_map_02.png, ...

You can select any image from that sequence in the file selector and the code will save over the existing sequence of images.

Otherwise, if you selected 'MyImage_map_02.png' from the file selector the code would end up creating a brand new sequence named: 'MyImage_map_02_map_01.png', 'MyImage_map_02_map_02.png', etc. etc.

So that's the idea.  It should generally do as you suggest, just take the filename you give it and add '_map_##' to it.  But the code does try to be smart and identify the case where you are trying to save over an existing sequence.

The problem with the way I did it before, is that instead of looking for the pattern '_map_##', the code was just stripping ANY AND ALL numbers off the end of the filename.   So when you gave it the user named file 'BeepBoop2.png' it wrongly assumed that this was part of a previously saved sequence.   My hope is that by using and specifically looking for a more unique pattern ('_map_##') the code can still be smart about guessing when you are trying to replace an existing sequence but have far less chance of getting confused by filenames that happen to contain numbers at the end of them.

ah, now I understand why this is intended behaviour, thanks for explaining :)

I still think there should be a warning before files are overwritten though. At least to me the intended behaviour wasn't intuitive. (you could also add a "don't ask again" checkbox to the warning message)

Cheers, have a nice weekend :)

Developer

Yeah, a warning message as it saves over each/any files is probably a good idea.  I'll look into implementing that.   Truth be told, a warning box like that should be easy if I was using Forms and all the other built-in GUI stuff in C#, but since the tool is written on top of my game engine, which uses SDL and OpenGL for everything, it's more  of a challenge.  But I'm sure I can get something to work.  Thanks again for all your feedback and suggestions!  I haven't forgotten your other ideas, they're all on the queue to work on when I get a chance.  :)

Greetings. First, I want to express my gratitude for your program, which has been of great help to me over the years.

However, due to my color blindness, it is difficult for me to recognize the colors of the palettes I import. Would it be possible to add a feature that allows images to be loaded directly as a color source? This would allow me to capture palettes from programs like YY-CHR or Photoshop for more familiar use.

In addition, it would be very useful to be able to create subpalettes mixing the real colors that I have selected, to generate fictitious colors based on “Dithering Bayer” type patterns. This would simplify the process when adapting artwork from one system to another and would avoid having to later recover details that are lost after color reduction.

Thank you for your time, and sorry to borrow this thread, I didn't want to bother creating another one, practically for the same purpose.

Developer

Hi!   Thanks for the kind words.  Great to hear the program has proved useful for you.  :)

> Would it be possible to add a feature that allows images to be loaded directly as a color source?

The 'Load Palette' feature should already allow you to load any PNG image as palette source.   The tool will just extract all the different colors from the image and use that as the palette.  Is that what you are asking for?  Or are you thinking something different?   Like instead of showing the actual colors for a palette, the tool would show icons or images of some sort?


> it would be very useful to be able to create subpalettes mixing the real colors that I have selected, to generate fictitious colors based on “Dithering Bayer” type patterns.


This is a very interesting idea.  It might be out of scope for this tool since dithering and color reduction are huge and complex tasks in their own right.    Still, I will give it some thought.  I could see this being a useful feature if I can puzzle out a way to add support for it without overly complicating the tool's UI.


First, thank you for considering my ideas, about your question, exactly, I was referring to loading a static image as the main color source, since when working with a considerable volume of colors, it can become confusing to manage.

For example, here you can see a comparison of how YY-CHR presents the colors, following a logical order, compared to the imported version, by its application, which although functional, is not as intuitive as the original.


Something that becomes more evident, when you need to change the color source constantly.

Developer

I see what you mean.   Perhaps simply being able to adjust the number of display rows for the palette would be enough.   If there was some kind of interface to set the number of rows and columns in the palette display.  In the case of your example, the palette is displayed on a 14x4 grid.    I could see this actually be a very useful feature when working with larger palettes.    I'll need to think about how to present it in the UI, but I think this can be done.    Thanks very much for the suggestion and I'll keep you posted on my progress with it!

I think it's a pretty elegant solution, although I would suggest complementing it with a button to increase or decrease the size of the color swatches; I mean, if I had to manage a palette of 216 colors, for example in 18 columns, that would give me 12 rows of colors, and with the current resolution, I would only be able to display approximately 4 rows.


By the way, I just realized that if you resize the screen with the cursor and then use the maximize screen button (the button in the upper right corner), the work area is bounded to the window without maximizing, greetings, and thanks for your dedication!😉