Package net.sourceforge.jiu.color

Source Code of net.sourceforge.jiu.color.WebsafePaletteCreator

/*
* WebsafePaletteCreator
*
* Copyright (c) 2001, 2002, 2003 Marco Schmidt.
* All rights reserved.
*/

package net.sourceforge.jiu.color;

import net.sourceforge.jiu.data.Palette;
import net.sourceforge.jiu.data.RGBIndex;

/**
* This class creates {@link net.sourceforge.jiu.data.Palette} objects that
* contain the so-called <em>websafe palette</em>.
* This palette has 216 entries which are uniformly spread over the RGB color
* cube.
* Each component (red / green / blue) takes each of the six values 0, 51, 101,
* 153, 204 and 255 (note that the difference is almost equal between two consecutive
* values, between 50 and 52).
* Therefore, the palette will have 6<sup>3</sup> = 6 * 6 * 6 = 216 entries.
* <p>
* This palette was designed with computer systems in mind that can only display
* 256 colors at a time.
* With the 216 colors that are uniformly spread over RGB color space, there is
* at least a somewhat similar match for each possible input color.
*
* @author Marco Schmidt
* @since 0.5.0
*/
public class WebsafePaletteCreator implements RGBIndex
{
  private static final int[] SAMPLES = {0x00, 0x33, 0x66, 0x99, 0xcc, 0xff};
 
  private WebsafePaletteCreator()
  {
    // private so that this class cannot be instantiated
  }

  /**
   * Creates a new palette with the 216 websafe colors.
   * @return new palette object
   */
  public static Palette create()
  {
    Palette result = new Palette(216, 255);
    int index = 0;
    for (int r = 0; r < 6; r++)
    {
      for (int g = 0; g < 6; g++)
      {
        for (int b = 0; b < 6; b++)
        {
          result.put(index++, SAMPLES[r], SAMPLES[g], SAMPLES[b]);
        }
      }
    }
    return result;
  }
}
TOP

Related Classes of net.sourceforge.jiu.color.WebsafePaletteCreator

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.