I want to generate decent-looking 8-bit versions of existing images for a project I am working on. The current method I am using involves changing the mode of the image to Indexed Color with the following settings:

  • Palette: Local (Perceptual)
  • Colors: 10-16
  • Forced: Primaries
  • No matte or diffusion

This gives me mixed results. Sometimes the result looks decent and I can work with it, however, most of the time the colors don't look right together and sometimes unintentionally mix with other colors, and it's hard identify it with the original image.

Are there any other methods I can employ to help me generate decent-looking 8-bit versions of existing images, with a low color count? Or are there any changes to my current process to improve the result?


Here is an example of the effect I am trying to achieve. Original image:



Altered Saturn

Even this result still looks like it could be better, however it was easy to achieve as the planet is the only thing in the image.

  • 1
    So basically you're worried that your automatic result is not as good as human hand-drawn 8-bit pixel art and you need a better algorithm, so it will be?
    – Jongware
    Commented Oct 15, 2015 at 17:26
  • 1
    I'm simply asking if there are any other ways to achieve what I want, and ways that might improve the results of the automated process. I am constantly experimenting, and thanks to @ACEkin I now know of yet another method of achieving this. I am also creating my own hand-drawn pixel art within the pictures, as well as manually editing the results from the automated process.
    – driima
    Commented Oct 15, 2015 at 18:11
  • 1
    I suspect forcing primaries is eating up most of the palette indices in a 10-color index. When I go into the dialog and select forced primaries and then select custom, the palette shows me 8 forced colors. this gives you nothing to work with. You might try figuring out a color transform prior to conversion that biases colors towards that palette before you make the conversion.
    – Yorik
    Commented Oct 15, 2015 at 19:30
  • 1
    I might ask also why 16 colors. If you are using a local perceptual palette, I presume you are not using a unified palette for the project. In my recollection of ancient history, the only savings you get between 8 color 8bit and 256 color 8-bit is the size of the palette entry (so 256-8 bytes uncompressed). How about only forcing b&w and then checking "use exact colors"
    – Yorik
    Commented Oct 15, 2015 at 19:35
  • 1
    @Deryllium, if you could post a sample image, before and after, we may be able to refine this further. Are you trying to create an illustration look? I have no idea what end result is "acceptable." That's why I gave a generic answer.
    – user45605
    Commented Oct 15, 2015 at 21:21

1 Answer 1


If you are starting with 16-bit images and you are using this process to get 8-bit versions that does not make much sense. Simply change the Image/Mode/8-bits per channel and you are done.

If you are trying to get 8-bit AND fewer colors in indexed color format for some special need you may have, I will suggest using File/Save for Web and picking the GIF option there. You can set the number of colors you like and see the preview of the result. You can also set the diffusion, transparency, etc on the same screen.


In case you are trying to get an illustration look that you can draw on top, try "Image/Adjustments/Posterize". There you can select the level of "banding" so to speak rather than number of colors. If you choose a large enough number, there may be no appreciable difference in the look. I am adding this since I have no idea what end result you are trying to get.


I guessed that you were trying to get some posterized effect, but the sample makes it clearer. Here are the steps to produce the result below

  1. Add a Photo Filter adjustment layer above your image
  2. Choose a color that approximates what you want the end result to look like. In the example below I used a warming filter at 100% density
  3. Now, make a duplicate layer of the original below just in case the next step does not work for you
  4. Target the new layer and go to "Image/Adjustments/Posterize" and choose the levels you like while watching the result. In my example the levels is at 12

This will give you a monochromatic result with bands of similar colors. If you like a multi hued result, use a blank layer instead of the Photo Filter and fill it with a gradient going from one color to another and change the layer blend mode to Color (as I did in the example) or for a more subtle result use the blend mode of Hue. You can build variations on this by using radial gradients that change from center to outside and by placing the center at different points on the image.

Go at it!

enter image description here enter image description here enter image description here

  • 1
    I played around a little as well, and in addition, perhaps transforming it to a 128- or 256- color index (forcing primaries), back to rgb then back to 16 color might give decent results. Similar to posterize, but allows for dithering, which posterize may not have (?)
    – Yorik
    Commented Oct 15, 2015 at 21:50
  • 1
    This is a quality answer, and I can definitely work with the suggestions you provided. Thank you kindly!
    – driima
    Commented Oct 16, 2015 at 19:41
  • 1
    @Deryllium, you are welcome. Glad to be of help.
    – user45605
    Commented Oct 18, 2015 at 16:13

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.