1: /// <summary>
2: /// Gets a palette listing in HTML string format
3: /// </summary>
4: /// <param name="OriginalImage">Image to get the palette of</param>
5: /// <returns>A list containing HTML color values (ex: #041845)</returns>
6: public static List<string> GetHTMLPalette(Bitmap OriginalImage)
7: {
8: List<string> ReturnArray = new List<string>();
9: if (OriginalImage.Palette != null && OriginalImage.Palette.Entries.Length > 0)
10: {
11: for (int x = 0; x < OriginalImage.Palette.Entries.Length; ++x)
12: {
13: string TempColor = ColorTranslator.ToHtml(OriginalImage.Palette.Entries[x]);
14: if (!ReturnArray.Contains(TempColor))
15: {
16: ReturnArray.Add(TempColor);
17: }
18: }
19: return ReturnArray;
20: }
21: BitmapData ImageData = Image.LockImage(OriginalImage);
22: int PixelSize = Image.GetPixelSize(ImageData);
23: for (int x = 0; x < OriginalImage.Width; ++x)
24: {
25: for (int y = 0; y < OriginalImage.Height; ++y)
26: {
27: string TempColor = ColorTranslator.ToHtml(Image.GetPixel(ImageData, x, y, PixelSize));
28: if (!ReturnArray.Contains(TempColor))
29: {
30: ReturnArray.Add(TempColor);
31: }
32: }
33: }
34: Image.UnlockImage(OriginalImage, ImageData);
35: return ReturnArray;
36: }