using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; namespace vcsWEBcolor140 { public partial class Form1 : Form { string dir = "c:\\vcs2010pro\\vcs7WEBcolor140\\data-file"; public Form1() { InitializeComponent(); } //------------------------------------------------------------------ private void toolStripButton1_Click(object sender, EventArgs e) { System.IO.StreamReader sr; System.IO.StreamWriter sw; string dat; string[] sbuf; char delim = ','; string fnameR = ""; string fnameW1 = ""; ; string fnameW2 = ""; ; int i, j, k; string[] colname = new string[140]; byte rr, gg, bb; string colrgb = ""; string col_16 = ""; string strcol = ""; int num, ic; string scase = "_16"; //string scase = "rgb"; fnameW1 = dir + "\\subwebcolor140"+scase+".html"; fnameW2 = dir + "\\cswebcolor140"+scase+".css"; toolStripLabel1.Text = fnameW1; //htmlファイル出力 sw = new System.IO.StreamWriter(fnameW1, false, System.Text.Encoding.GetEncoding("shift-jis")); sw.WriteLine(""); sw.WriteLine(""); sw.WriteLine(""); sw.WriteLine(""); sw.WriteLine(""); //******************************************************************* fnameR = dir + "\\inpvbcolorname.txt"; //ColorプロパティのTransparentはrgb値が(255,255,255)でWhiteと同じため省略 sr = new System.IO.StreamReader(fnameR, System.Text.Encoding.GetEncoding("shift-jis")); k = 0; while (sr.Peek() >= 0) { dat = sr.ReadLine(); sbuf = dat.Split(delim); colname[k] = sbuf[0]; k = k + 1; } sr.Close(); sw.WriteLine("

Web カラー 140 色(色名,16 進表示,RGB 値)

"); sw.WriteLine(""); sw.WriteLine(""); k = 0; for (i = 0; i <= 27; i++) { sw.WriteLine(""); for (j = 0; j <= 4; j++) { rr = Color.FromName(colname[k]).R; gg = Color.FromName(colname[k]).G; bb = Color.FromName(colname[k]).B; colrgb = "(" + rr.ToString() + "," + gg.ToString() + "," + bb.ToString() + ")"; col_16 = "#" + rr.ToString("X2") + gg.ToString("X2") + bb.ToString("X2"); sw.WriteLine(""); k = k + 1; } sw.WriteLine(""); } sw.WriteLine("
" + colname[k] + "
" + col_16 + "
" + colrgb + "
"); //******************************************************************* sw.WriteLine(""); sw.WriteLine(""); sw.Close(); //******************************************************************* //cssファイル出力 sw = new System.IO.StreamWriter(fnameW2, false, System.Text.Encoding.GetEncoding("shift-jis")); sw.WriteLine("body{background-color:#2F4F4F;color:#ffffff;}"); sw.WriteLine("p.cline{text-align:center;}"); sw.WriteLine("table.tbl{background-color:#ffffff;text-align:center;font-size:0.8em;font-weight:bold;line-height:120%;}"); for (k = 0; k <= 139; k++) { //色名をrgb値に変換 rr = Color.FromName(colname[k]).R; gg = Color.FromName(colname[k]).G; bb = Color.FromName(colname[k]).B; colrgb = "rgb(" + rr.ToString() + "," + gg.ToString() + "," + bb.ToString() + ")"; col_16 = "#" + rr.ToString("X2") + gg.ToString("X2") + bb.ToString("X2"); //バックカラーに応じた文字色の選定 num = (int)rr + (int)gg + (int)bb; if (num < 400) { ic = 1; if (200 < (int)gg && (int)bb < 128) ic = 0; } else { ic = 0; if ((int)gg < 150 && 200 < (int)bb) ic = 1; if (200 < (int)rr && ((int)gg < 150 && 200 < (int)bb)) ic = 0; } switch (ic) { case 0: strcol = "#000000"; break; case 1: strcol = "#ffffff"; break; } //バックカラーのrgb指定と文字色の指定書き込み switch(scase){ case "rgb": sw.WriteLine("td.vbcol" + k.ToString("000") + "{background-color:" + colrgb + ";color:" + strcol + ";}"); break; case "_16": sw.WriteLine("td.vbcol" + k.ToString("000") + "{background-color:" + col_16 + ";color:" + strcol + ";}"); break; } } sw.Close(); this.Width = 800; this.Height = 600; webBrowser1.Url = new Uri(toolStripLabel1.Text); } //------------------------------------------------------------------ private void toolStripButton2_Click(object sender, EventArgs e) { System.Diagnostics.Process.Start(toolStripLabel1.Text); } //------------------------------------------------------------------ } }