C#热敏打印图片 串口打印图片

简介: 原文:C#热敏打印图片 串口打印图片 如图,一步一步慢慢调出来的 //串口通信类public System.
原文: C#热敏打印图片 串口打印图片

如图,一步一步慢慢调出来的

       //串口通信类
public System.IO.Ports.SerialPort serialPort = null;
serialPort = new System.IO.Ports.SerialPort("COM1");
serialPort.BaudRate =19200;
serialPort.DataBits = 8;
serialPort.StopBits = System.IO.Ports.StopBits.One;
serialPort.Parity = System.IO.Ports.Parity.None;
serialPort.Open();
        /// <summary>
        /// 打印位图logo
        /// </summary>
        /// <param name="bitmap"></param>
        public void PrintBitmap2(Bitmap bitmap)
        { 
            int Width=bitmap.Width-1;
            int Height =(int)(bitmap.Height)/8 ;
            int SpaceNum=(int)(244-Width)/2;
            int x0,x1, x2=0,x3=0,x4=0,x5=0,x6=0,x7=0;
            byte[] PBuf = new byte[1024*1024];
            int point = 0;
            PBuf[point++] = 27;
            PBuf[point++] = (byte)'3';
            PBuf[point++] = 16;
            PBuf[point++] = 27;
            PBuf[point++] = (byte)'r';
            PBuf[point++] = 0;
            Func<Color, bool> IsNearWhite = color => {
                if (color.A + color.B + color.G + color.R >= 255 + 250 + 250 + 250)
                {
                    return false;
                }
                return true;
            };
            for (int n = 0; n < Height; n++)
            {
               PBuf[point++] = 27;
               PBuf[point++] = (byte)'*';
               PBuf[point++] = 0;
               PBuf[point++] = (byte)(Width+SpaceNum);
               PBuf[point++] = 0;
               for (int i = 0; i< SpaceNum; i++)
               {
                  PBuf[point++] = 0;
               }
               for (int i = 0; i < Width; i++)
               {
                  x0=0;
                  x1=0;
                  x2=0;
                  x3=0;
                  x4=0;
                  x5=0;
                  x6=0;
                  x7=0;
                  
                  if(IsNearWhite(bitmap.GetPixel(i,0+(n*8))))
                    x0 = 128;
                  if (IsNearWhite(bitmap.GetPixel(i, 1 + (n * 8))))
                    x1 = 64;
                  if (IsNearWhite(bitmap.GetPixel(i, 2 + (n * 8))))
                    x2 = 32;
                  if (IsNearWhite(bitmap.GetPixel(i, 3 + (n * 8))))
                    x3 = 16;
                  if (IsNearWhite(bitmap.GetPixel(i, 4 + (n * 8))))
                    x4 = 8;
                  if (IsNearWhite(bitmap.GetPixel(i, 5 + (n * 8))))
                    x5 = 4;
                  if (IsNearWhite(bitmap.GetPixel(i, 6 + (n * 8))))
                    x6 = 2;
                  if (IsNearWhite(bitmap.GetPixel(i, 7 + (n * 8))))
                    x7 = 1;
                  PBuf[point++]=(byte)(x0 ^ x1 ^ x2 ^ x3 ^ x4 ^ x5 ^ x6 ^x7);
               }

               PBuf[point++] = 13;
               PBuf[point++] = 10;
            }
            serialPort.Write(PBuf, 0, point);
       }

目录
相关文章
|
7天前
|
存储 算法 C#
C# 生成指定图片的缩略图
C# 生成指定图片的缩略图
|
7天前
|
C# 开发工具 数据安全/隐私保护
C# 给图片添加文字水印
C# 给图片添加文字水印
|
7天前
|
开发框架 .NET C#
C# 自动填充文字内容到指定图片
C# 自动填充文字内容到指定图片
|
2月前
|
API C# 数据安全/隐私保护
C# 实现网页内容保存为图片并生成压缩包
C# 实现网页内容保存为图片并生成压缩包
|
7月前
C#WPF 图片在显示时没有问题,但在运行时图片显示不出来的解决
选中项目,点击右上角的显示全部文件按钮,会将默认隐藏的文件显示出来,选中所需图片,右键,添加到项目,然后选择图片查看属性,生成操作选择resource。完毕。本人目前的解决方案。
267 41
C#WPF 图片在显示时没有问题,但在运行时图片显示不出来的解决
|
5月前
|
API C#
C# 调用系统“API“设置图片为“桌面壁纸“
C# 调用系统“API“设置图片为“桌面壁纸“
|
7月前
|
C#
C# 图片RGB处理判断
C# 图片RGB处理判断 需要:根据一张原始图的RGB平均值和新的图片的RGB平均值的差距,来判断图中是否出现除原图中物体外的其他物体 前提:.Net framework 4.8 及以上 示例代码: 程序集:using System;using System.Drawing;using System.Drawing.Drawing2D;using System.Drawing.Imagin...
25 0
|
10月前
|
人工智能 文字识别 API
C# 10分钟完成百度图片提取文字(文字识别)——入门篇
C# 10分钟完成百度图片提取文字(文字识别)——入门篇
|
算法 定位技术 C#
C#开发:不规则裁切图片
C#开发:不规则裁切图片
121 0