客户端输入文字(文字大小48点),然后文字转换成图片按点阵发送到led屏。
有没有什么相关的资料给我参考参考啊。
需求如下:
4.16 发送图片
#PIC23,L,5,5#<本报文起始字节数2字节><2字节标识><图片数据...>
本报文起始字节数2字节:
表示本报文起始字节数(即前面已发送到字节数),因此图片每种颜色总长度最长为64KB
2字节标识:
高2位:
11表示本报文是红色或单色数据
10表示本报文是绿色数据
00表示本报文是图片描述报文,Unicode编码,文字长度应与图片长度换算成文字的长度一致,否则会被屏控卡截断或补充空格
最低位:
0表示本报文不是最后一个报文
1表示本报文是最后一个报文,收到此报文将写入字幕信息准备好播放。图片描述报文必须是最后一个报文且起始位置不能为0。
其它位:
保留,应填1每种颜色图片数据的格式为以8列(一个字节)为单位,从左上角开始,从上往下一个字高(16行),再从左往右到屏宽,然后再继续下一个字高的屏幕区域。每个bit 0代表亮灯,1代表暗灯。除最后一个报文外每个报文的图片数据长度为512个字节,一幅图片可能需要多个报文,每个报文均应按照以上格式,起始字节数从0,0x200,0x400依次递增。
有没有什么相关的资料给我参考参考啊。
需求如下:
4.16 发送图片
#PIC23,L,5,5#<本报文起始字节数2字节><2字节标识><图片数据...>
本报文起始字节数2字节:
表示本报文起始字节数(即前面已发送到字节数),因此图片每种颜色总长度最长为64KB
2字节标识:
高2位:
11表示本报文是红色或单色数据
10表示本报文是绿色数据
00表示本报文是图片描述报文,Unicode编码,文字长度应与图片长度换算成文字的长度一致,否则会被屏控卡截断或补充空格
最低位:
0表示本报文不是最后一个报文
1表示本报文是最后一个报文,收到此报文将写入字幕信息准备好播放。图片描述报文必须是最后一个报文且起始位置不能为0。
其它位:
保留,应填1每种颜色图片数据的格式为以8列(一个字节)为单位,从左上角开始,从上往下一个字高(16行),再从左往右到屏宽,然后再继续下一个字高的屏幕区域。每个bit 0代表亮灯,1代表暗灯。除最后一个报文外每个报文的图片数据长度为512个字节,一幅图片可能需要多个报文,每个报文均应按照以上格式,起始字节数从0,0x200,0x400依次递增。
解决方案 »
- 关于this的一个小问题
- c#中调用存储过程(含输出参数)
- C/s模式,子窗体完成事务后(新增,删除),怎么通过子窗体刷新主窗体数据?
- 如何给DataGrid的列标头加中文,这个B/S很容易实现,但是,不知道C/S模式(即windows form) 下如何实现!!!!
- 超级二的问题:在我的程序里有用到ACCESS数据库,用户机子配置为.NET FRAMEWORK1.1.用户需要进行什么配置才能使用吗?
- 利用VS.net 2003自带的水晶报表做的web程序如何部署???
- 求《c#设计模式》一书的中文电子版
- WinCE DataGrid控制列宽
- 新手提问!
- 好久没来!看了看论坛!高手很多!大家请多指教!我的QQ4120938!呵呵
- 线程问题
- winform下隐藏控件问题
Graphics g = Graphics.FromImage(bmp);
Font font = new Font("宋体", 36.0f);
Brush blackBrush = new SolidBrush(Color.Black);
Brush whiteBrush = new SolidBrush(Color.White);
g.FillRectangle(whiteBrush, 0, 0, 48, 48);
g.DrawString("我", font, blackBrush, new PointF(-8, 0));
g.Save(); pictureBox1.Image = bmp; byte[,] matrix = new byte[48, 48];
for (int y = 0; y < 47; y++)
{
for (int x = 0; x < 47; x++)
{
if (bmp.GetPixel(x, y) == Color.Black)
matrix[x, y] = 0x1;
} }
但采取出来的数据为什么是这样的? :0 0.0.0.0:3700 367 RecvFrom
0000 CB CB CB 00 00 00 00 00 04 00 00 00 A3 CB CB CB ................
0010 00 F4 12 00 00 00 00 00 68 AC F1 00 35 31 30 30 ........h...5100
0020 34 31 30 37 32 30 30 38 00 23 00 50 00 49 00 43 41072008.#.P.I.C
0030 00 31 00 2C 00 30 00 2C 00 33 00 2C 00 39 00 2C .1.,.0.,.3.,.9.,
0040 00 30 00 30 00 3A 00 30 00 30 00 2D 00 32 00 33 .0.0.:.0.0.-.2.3
0050 00 3A 00 30 00 30 00 2C 00 39 00 39 00 2D 00 31 .:.0.0.,.9.9.-.1
0060 00 32 00 2D 00 33 00 31 00 23 00 00 00 FE FF FF .2.-.3.1.#......
0070 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ................
0080 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ................
0090 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ................
00A0 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ................
00B0 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ................
00C0 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ................
00D0 FF FF FF FF FF FF C3 BD E1 DD BD BD C0 FF FF FF ................
00E0 FF FF FF FF FF FF C3 BD E1 DD BD BD C0 FF FF FF ................
00F0 FF FF FF FF FF FF C3 BD E1 DD BD BD C0 FF FF FF ................
0100 FF FF FF FF FF FF C3 BD E1 DD BD BD C0 FF FF FF ................
0110 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ................
0120 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ................
0130 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ................
0140 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ................
0150 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ................
0160 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ...............
FF代表黑色的背景可以理解,C3 BD这样是怎么生成的呢??
很急啊.
而且这个数据时文字转成图片按点阵发送的.
如果不是1位图形 就把C3转换为 2进数据看看
本报文起始字节数2字节:
表示本报文起始字节数(即前面已发送到字节数),因此图片每种颜色总长度最长为64KB
2字节标识:
高2位:
11表示本报文是红色或单色数据
10表示本报文是绿色数据
00表示本报文是图片描述报文,Unicode编码,文字长度应与图片长度换算成文字的长度一致,否则会被屏控卡截断或补充空格
最低位:
0表示本报文不是最后一个报文
1表示本报文是最后一个报文,收到此报文将写入字幕信息准备好播放。图片描述报文必须是最后一个报文且起始位置不能为0。
其它位:
保留,应填1每种颜色图片数据的格式为以8列(一个字节)为单位,从左上角开始,从上往下一个字高(16行),再从左往右到屏宽,然后再继续下一个字高的屏幕区域。每个bit 0代表亮灯,1代表暗灯。除最后一个报文外每个报文的图片数据长度为512个字节,一幅图片可能需要多个报文,每个报文均应按照以上格式,起始字节数从0,0x200,0x400依次递增。给我的资料就这么一些.以数据以Unicode发送.
楼上的救命啊.帮帮忙啊.
文字转成图片.然后图片按点阵发送.
找了半天也就找到这么点资料.
晕了.
http://topic.csdn.net/u/20100429/08/5ed965c9-4440-48a1-af72-b60a46177104.html
这边的判断要改一下的.
Bitmap bmp = new Bitmap(48, 48);
Graphics g = Graphics.FromImage(bmp);
Font font = new Font("宋体", 36.0f);
Brush blackBrush = new SolidBrush(Color.Black);
Brush whiteBrush = new SolidBrush(Color.White);
g.FillRectangle(whiteBrush, 0, 0, 48, 48);
g.DrawString("我", font, blackBrush, new PointF(-8, 0));
g.Save(); pictureBox1.Image = bmp; byte[,] matrix = new byte[48, 48];
for (int y = 0; y < 47; y++)
{
for (int x = 0; x < 47; x++)
{
Color pixel = bmp.GetPixel(x, y);
if (pixel.R == 0 && pixel.G == 0 && pixel.B == 0)
matrix[x, y] = 0x1;
} }
获取的byte二维数组怎么转换呢??
比如byte[0][1] 代表第2行第1个点的值
然后判断图片像素,如果是红色的就是(1or0),反之为0或1.