Web safe color list : Web safe color « XML « ASP.Net

ASP.Net
1. ADO.net Database
2. Asp Control
3. Collections
4. Components
5. Data Binding
6. Development
7. HTML Control
8. Mobile Control
9. Page
10. Request
11. Response
12. Server
13. Session Cookie
14. User Control and Master Page
15. Validation by Control
16. Validation by Function
17. XML
Java
Java Tutorial
Java Source Code / Java Documentation
Java Open Source
Jar File Download
Java Articles
Java Products
Java by API
C# / C Sharp
C# / CSharp Tutorial
JavaScript DHTML
JavaScript Tutorial
JavaScript Reference
HTML / CSS
HTML CSS Reference
C / ANSI-C
C Tutorial
C++
C++ Tutorial
PHP
Python
SQL Server / T-SQL
SQL Server / T-SQL Tutorial
Oracle PL / SQL
Oracle PL/SQL Tutorial
PostgreSQL
SQL / MySQL
MySQL Tutorial
VB.Net
VB.Net Tutorial
Flash / Flex / ActionScript
VBA / Excel / Access / Word
Microsoft Office PowerPoint 2007 Tutorial
Microsoft Office Excel 2007 Tutorial
Microsoft Office Word 2007 Tutorial
ASP.Net » XML » Web safe color 
Web safe color list

<%--
Pro ASP.NET Web Forms Techniques, Second Edition

By Alex Homer
ISBN: 1-59059-317-0
Published: Dec 2003
Publisher: Apress.com

--%>       
       
<%@Page Language="C#" %>
<%@Import Namespace="System.Drawing" %>
<script runat="server">
void Page_Load() {
  // array to hold list of 168 "known" colors
  Color[] aKnownCols = new Color[168];
  KnownColor eValue;
  for (eValue = 0; eValue <= KnownColor.YellowGreen; eValue++) {
    aKnownCols[(inteValue= Color.FromKnownColor(eValue);
  }

  // array to hold list of 216 browser-safe colors
  Color[] aSafeCols = new Color[216];
  int rValue, gValue, bValue;
  int iPointer = 0;
  for (rValue = 0; rValue <= 255; rValue += 51) {
    for (gValue = 0; gValue <= 255; gValue += 51) {
      for (bValue = 0; bValue <= 255; bValue += 51) {
        aSafeCols[iPointer= Color.FromArgb(rValue, gValue, bValue);
        iPointer += 1;
      }
    }
  }

  // create a table containing the browser-safe colors
  // and indicate any matching .NET standard color

  // declare variables, we'll create 5 rows simultaneously
  TableRow oRow1, oRow2, oRow3, oRow4, oRow5;
  TableCell oCell;
  Color oKnown;
  String sDecimalVals, sHexVals, sKnown;

  // to create empty cell with colored background
  String sColorCell = "<font size=5>&nbsp; &nbsp; &nbsp; &nbsp;</font>";

  // create empty Table object and five Row objects
  Table oTable = new Table();
  oRow1 = new TableRow();
  oRow2 = new TableRow();
  oRow3 = new TableRow();
  oRow4 = new TableRow();
  oRow5 = new TableRow();

  // set horizontal alignment for three rows
  oRow2.HorizontalAlign = HorizontalAlign.Center;
  oRow3.HorizontalAlign = HorizontalAlign.Center;
  oRow4.HorizontalAlign = HorizontalAlign.Center;

  // iterate through array of safe colors
  foreach (Color oColor in aSafeCols) {

    // create the strings showing decimal and hex RGB values
    sDecimalVals = oColor.R.ToString() "," + oColor.G.ToString()
                 "," + oColor.B.ToString();
    sHexVals = "#" + oColor.R.ToString("x2"+ oColor.G.ToString("x2")
             + oColor.B.ToString("x2");

    // see if this color is same as any standard color by iterating
    // through "known" colors array and comparing ARGB values.
    // not breaking at first match avoids returning "system" colors
    // such as "DialogText" and "WindowTitleBarText" which come first
    sKnown = "";
    foreach (Color oEKnown in aKnownCols) {
      if (oEKnown.ToArgb() == oColor.ToArgb()) {
        sKnown = oEKnown.Name;
      }
    }

    // create a new cell, and add LiteralControl containing value
    oCell = new TableCell();
    oCell.Controls.Add(new LiteralControl(sColorCell));

    // set properties for this cell, and add to row 1
    oCell.BorderColor = Color.Black;
    oCell.BorderStyle = BorderStyle.Solid;
    oCell.BorderWidth = Unit.Pixel(1);
    oCell.BackColor = oColor;
    oRow1.Cells.Add(oCell);

    // repeat for cells containing decimal and hex RGB values
    oCell = new TableCell();
    oCell.Controls.Add(new LiteralControl(sDecimalVals));
    oRow2.Cells.Add(oCell);
    oCell = new TableCell();
    oCell.Controls.Add(new LiteralControl(sHexVals));
    oRow3.Cells.Add(oCell);

    // create cell for matching "known" color if there is one
    oCell = new TableCell();
    if (sKnown != "") {
      oCell.Controls.Add(new LiteralControl(sKnown));

      // create color object using "known" color name
      Color oEKnown = Color.FromName(sKnown);
      oCell.BackColor = oEKnown;
      oCell.BorderColor = Color.Black;
      oCell.BorderStyle = BorderStyle.Solid;
      oCell.BorderWidth = Unit.Pixel(1);

      // see if we need to use white text on this background
      // color when displaying color name in cell
      if (oEKnown.R < 124 && oEKnown.G < 124) {
        oCell.ForeColor = Color.White;
      }

    }

    // add "known color" cell to row 4
    oRow4.Cells.Add(oCell);

    // create cell in row 5 to provide space between color rows
    oCell = new TableCell();
    oCell.Controls.Add(new LiteralControl("&nbsp;"));
    oRow5.Cells.Add(oCell);

    // if Blue element of color has reached 255 start a new row
    // add five existing rows to table, create new ones and set
    // horizontal alignment for the three of them holding text

    if (oColor.B == 255) {
      oTable.Rows.Add(oRow1);
      oTable.Rows.Add(oRow2);
      oTable.Rows.Add(oRow3);
      oTable.Rows.Add(oRow4);
      oTable.Rows.Add(oRow5);
      oRow1 = new TableRow();
      oRow2 = new TableRow();
      oRow3 = new TableRow();
      oRow4 = new TableRow();
      oRow5 = new TableRow();
      oRow2.HorizontalAlign = HorizontalAlign.Center;
      oRow3.HorizontalAlign = HorizontalAlign.Center;
      oRow4.HorizontalAlign = HorizontalAlign.Center;
    }

  }

  // table complete, so insert into page within PlaceHolder control
  ctlPlaceholder.Controls.Add(oTable);

}

</script>

<!doctype html public "-//W3C//DTD HTML 3.2 Final//EN">
<html>
<head>
<title>Browser-safe and Standard Colors</title>
</head>
<body>
Browser-safe and Standard Colors
<asp:PlaceHolder id="ctlPlaceholder" runat="server" />
</body>
</html>

           
       
Related examples in the same category
w___ww___.___j__a__v___a_2__s_._c___om | Contact Us
Copyright 2003 - 08 Demo Source and Support. All rights reserved.
All other trademarks are property of their respective owners.