有个功能需求是将文字显示到LED屏幕上,LED屏幕的识别方式是0表示不亮,1表示亮。
我如果要将“测试”这2个字显示到LED屏幕上,需要先将“测试”转化为一张图片(假设底色为白色,字为黑色),然后将图片上的点一个个读出来,当读到底色的时候,在byte数组里面将对应的位置记录为0,当读到黑色的时候将此位置记录为1。理论上,将这个数组传送到led屏幕上,就可以显示了。
请问这种解决思路可行吗?
或者有更加简便的方式?可以直接用image对象把这些点读出来吗?
我如果要将“测试”这2个字显示到LED屏幕上,需要先将“测试”转化为一张图片(假设底色为白色,字为黑色),然后将图片上的点一个个读出来,当读到底色的时候,在byte数组里面将对应的位置记录为0,当读到黑色的时候将此位置记录为1。理论上,将这个数组传送到led屏幕上,就可以显示了。
请问这种解决思路可行吗?
或者有更加简便的方式?可以直接用image对象把这些点读出来吗?
我想问问image对象有什么方法可以获得指定点的颜色值,,,,
我很久没有做过c#了.
查了一下msdn,发现image对象只有3个get开头的方法:GetHashCode GetOutputValue GetType 这3个方法都取不到颜色哦。我生成的对象是Bitmap的,去查查Bitmap的看看。
那我初始化大小要和字体配套呀?
实例化bitmap对象的时候可以不指定大小吗?
我再去试试,找一找缩放的方法。
用Graphics定位画到图片上,好控制格式。
谢谢大家!
Bitmap bmp = new Bitmap(image);
System.IO.Stream ms = null;
bmp.Save(ms,System.Drawing.Imaging.ImageFormat.Bmp);
for(i =0;i< ms)
{
byte bt = ms.ReadByte();//一个一个字节读出来
}
当然,如果效率要求不高可用,很慢,慎用
Color color = bmp.GetPixel(10,10);//可读出(10,10)颜色结构体