110,533
社区成员
发帖
与我相关
我的任务
分享
private void DrawImage(string s)
{
StringBuilder sb = new StringBuilder();
string[] s1 = s.Replace("\r\n", "|").Split('|');
int l, w;
l = l4;
w = a4;
Bitmap bmp = new Bitmap(l, w);
Graphics draw = Graphics.FromImage(bmp);
draw.Clear(Color.Black);
Color c = Color.FromArgb(255);
Pen p = new Pen(c);
p.Color = Color.FromArgb(255);
for (int i = 0; i < w; i++)
{
for (int a = 0; a < l*2; a++)
{
#region
switch (s1[i].Substring(a, 2))
{
case "00":
{
p.Color = Color.FromArgb(0, 255, 0);
draw.DrawRectangle(p, a/2, i, 1, 1);
a++;
break;
}
case "02":
{
p.Color = Color.FromArgb(255, 255, 0);
draw.DrawRectangle(p, a/2, i, 1, 1);
a++;
break;
}
case "03":
{
p.Color = Color.FromArgb(0, 255, 255);
draw.DrawRectangle(p, a/2, i, 1, 1);
a++;
break;
}
case "04":
{
p.Color = Color.FromArgb(0, 0, 0);
draw.DrawRectangle(p, a/2, i, 1, 1);
a++;
break;
}
case "05":
{
p.Color = Color.FromArgb(255, 255, 255);
draw.DrawRectangle(p, a/2, i, 1, 1);
a++;
break;
}
case "06":
{
p.Color = Color.FromArgb(0, 0, 255);
draw.DrawRectangle(p, a/2, i, 1, 1);
a++;
break;
}
case "07":
{
p.Color = Color.FromArgb(100, 100, 100);
draw.DrawRectangle(p, a/2, i, 1, 1);
a++;
break;
}
case "08":
{
p.Color = Color.FromArgb(100, 100, 0);
draw.DrawRectangle(p, a/2, i, 1, 1);
a++;
break;
}
case "09":
{
p.Color = Color.FromArgb(100, 0, 0);
draw.DrawRectangle(p, a/2, i, 1, 1);
a++;
break;
}
}
#endregion
}
}
draw.Dispose();
bmp.Save("D:\\a.bmp");
}
}
public static class XXX
{
public static Dictionary<string, Color> ColorTable;
static XXX()
{
ColorTable = new Dictionary<string, Color>();
ColorTable.Add("00", Color.FromArgb(0, 255, 0));
ColorTable.Add("02", Color.FromArgb(255, 255, 0));
ColorTable.Add("03", Color.FromArgb(0, 255, 255));
ColorTable.Add("04", Color.FromArgb(0, 0, 0));
ColorTable.Add("05", Color.FromArgb(255, 255, 255));
ColorTable.Add("06", Color.FromArgb(0, 0, 255));
ColorTable.Add("07", Color.FromArgb(100, 100, 100));
ColorTable.Add("08", Color.FromArgb(100, 100, 0));
ColorTable.Add("09", Color.FromArgb(100, 0, 0));
}
}
//Color color = ColorTable[s1.Substring(index, 2)];
Color color = XXX.ColorTable[s1.Substring(index, 2)];
public Dictionary<string, Color> ColorTable;
Load:
ColorTable = new Dictionary<string, Color>();
ColorTable.Add("00", Color.FromArgb(0, 255, 0));
ColorTable.Add("02", Color.FromArgb(255, 255, 0));
ColorTable.Add("03", Color.FromArgb(0, 255, 255));
ColorTable.Add("04", Color.FromArgb(0, 0, 0));
ColorTable.Add("05", Color.FromArgb(255, 255, 255));
ColorTable.Add("06", Color.FromArgb(0, 0, 255));
ColorTable.Add("07", Color.FromArgb(100, 100, 100));
ColorTable.Add("08", Color.FromArgb(100, 100, 0));
ColorTable.Add("09", Color.FromArgb(100, 0, 0));
private void DrawImage(string s)
{
string s1 = s.Replace("\r\n", "");
int l, w;
l = l4;
w = a4;
Bitmap bmp = new Bitmap(l, w);
BitmapData bdata = bmp.LockBits(new Rectangle(0, 0, bmp.Width, bmp.Height), ImageLockMode.ReadWrite, bmp.PixelFormat);
byte[] buffer = new byte[bmp.Height * bdata.Stride];
int index=0;
for (int i = 0; i < buffer.Length; i += 4) //for 32 bit
{
Color color = ColorTable[s1.Substring(index, 2)];
index += 2;
buffer[i + 0] = color.B;
buffer[i + 1] = color.G;
buffer[i + 2] = color.R;
buffer[i + 3] = color.A;
}
Marshal.Copy(buffer,0,bdata.Scan0,buffer.Length);
bmp.UnlockBits(bdata);
bmp.Save("D:\\a.bmp");
bmp.Dispose();
}