C# 打印图像ESC/POS

C# 打印图像ESC/POS,c#,xamarin,printing,escpos,C#,Xamarin,Printing,Escpos,我正在使用API在带有蓝牙连接的热敏打印机中打印图像。我使用分辨率为3840x2160的这款相机进行了测试,它打印得非常完美。我用SkiaSharp绘制了一个位图,保存在我的设备上,但我正在打印它,我无法设置高度 我尝试了一些解决方案: 1280x720 720x720 即使我的图像有3840的宽度(例如链接的示例),该函数也将限制设置为372,并且它可以工作,但与高度无关 我无法控制高度,它正在剪切我的位图,甚至连一半都不打印 我的位图是一个列表,大概有372的宽度和800的高度 代码: 在P

我正在使用API在带有蓝牙连接的热敏打印机中打印图像。我使用分辨率为3840x2160的这款相机进行了测试,它打印得非常完美。我用SkiaSharp绘制了一个位图,保存在我的设备上,但我正在打印它,我无法设置高度

我尝试了一些解决方案:

1280x720

720x720

即使我的图像有3840的宽度(例如链接的示例),该函数也将限制设置为372,并且它可以工作,但与高度无关

我无法控制高度,它正在剪切我的位图,甚至连一半都不打印

我的位图是一个列表,大概有372的宽度和800的高度

代码:

PrintImage
上,它转到:

byte[]打印图像(byte[]图像,bool isHiDPI,bool isLegacy=false,int maxWidth=-1,int color=1)

我收到这个
字节[]
并发送打印。链接


PS:我已经更改了
PrintImage
的参数,但它仍然打印“徽标大小”图像,而不是整个图像。如果我减小位图中文本的字体大小,打印时会看到更多文本,因此它可能是它将打印的高度,而不是位图上的问题(当我在设备库中打开它时,这是完美的)。

图像的DPI是多少?Nike标志为72DPI@Jason我不知道这个信息,我看不出来。我的图像宽度为700,高度为1280,大小为81KB,强度为32位。PNG格式。有没有办法查看图像的DPI以帮助您解决此问题?使用任何图像工具下载GIMP查看图像属性。。。没有注意到。所以,它也是72 DPI。我建议在他们的github上发行一期
            EPSON e = new EPSON();
            ConnectBluetooth("ThermalPrinter");
            var outStream = (OutputStreamInvoker)socket.OutputStream;
            string directory = System.IO.Path.Combine(Android.OS.Environment.ExternalStorageDirectory.AbsolutePath, Android.OS.Environment.DirectoryDownloads);
            string logoPath = System.IO.Path.Combine(directory, "bmp.png");
            var logo = System.IO.File.ReadAllBytes(logoPath);

            byte[] buffer = null;

            buffer = ByteSplicer.Combine(
                e.PrintImage(logo, true, true, 372, 0)
            );
            await outStream.WriteAsync(buffer, 0, buffer.Length);
            buffer = null;

            socket.Close();
            socket.Dispose();