Dim bitmapFilePath As String = imagepath here...
Dim bitmapFileData As Byte() = System.IO.File.ReadAllBytes(bitmapFilePath)
Dim fileSize As Integer = bitmapFileData.Length
Dim bitmapDataOffset As Integer = 0
Dim width As Integer = 50 '255
Dim height As Integer = 50 '255
Dim bitsPerPixel As Integer = 1
Dim bitmapDataLength As Integer = 400
Dim widthInBytes As Double = Math.Ceiling(width / 8.0)
Dim bitmap(bitmapDataLength) As Byte
Buffer.BlockCopy(bitmapFileData, bitmapDataOffset, bitmap, 0, bitmapDataLength)
For i As Integer = 0 To bitmapDataLength Step 1
bitmap(i) = bitmap(i) Xor &HFF
Next
Dim ZPLImageDataString As String = BitConverter.ToString(bitmap)
ZPLImageDataString = Replace(ZPLImageDataString, "-", String.Empty)
Dim zplCommand(3) As String
zplCommand(0) = "^XA"
zplCommand(1) = "^FO20,20"
zplCommand(2) =
"^GFA, " +
bitmapDataLength.ToString() + "," +
bitmapDataLength.ToString() + "," +
widthInBytes.ToString() + "," +
ZPLImageDataString
zplCommand(3) = "^XZ"
打印出一个看似有人在Photoshop中应用了噪音滤镜的无意义方块。我在Zebra网站上找到了这个解决方案,但是那个图像是255/255,我需要这个50/50图像,但我不知道我应该将偏移更改为bitmapData ...
答案 0 :(得分:1)
你的位图是1位颜色深度吗?你不能发送这样的彩色图像,它们需要转换为每像素1位的黑白。您还需要确保bitmapDataLength
变量正确无误。这应该是要发送到打印机的图像的字节数。请参阅ZPL Manual中的^GF
命令。如果要将图像保存在打印机上,也可以在~DG命令后的示例中查看手册
如果您只需转换一些图像并将其保存,则可以使用ZebraNet Bridge中的图形转换向导。它将为您完成颜色转换和ZPL ^ GF数学运算,您还可以将图像存储在打印机上。
答案 1 :(得分:1)
我有同样的问题并且像这样解决了。从技术上讲,不知道如何,但试试吧......
Dim bitmapDataLength As Integer = 338
Dim bitmapDataOffset As Integer = 62
第一行表示图像大小(文件大小),以字节为单位 - 62 第二行代表图像的标题大小(62)
希望这有帮助