2
    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 Web サイトでこのソリューションを見つけましたが、その画像は 255/255 でした。これは 50/50 画像に必要ですが、オフセットまたは bitmapDatalength を何に変更すればよいかわかりません...

4

2 に答える 2

1

私は同じ問題を抱えていて、このように解決しました。技術的には、方法はわかりませんが、試してみてください...

Dim bitmapDataLength As Integer = 338 Dim bitmapDataOffset As Integer = 62

最初の行は画像サイズ (ファイル サイズ) をバイト単位で表します - 62 2 行目は画像のヘッダー サイズ (62) を表します

お役に立てれば

于 2012-07-11T08:10:19.320 に答える
1

ビットマップの色深度は 1 ビットですか? このようなカラー画像を送信することはできません。ピクセルあたり 1 ビットの白黒に変換する必要があります。bitmapDataLengthまた、変数が正しいことを確認する必要があります。これは、プリンターに送信されるイメージのバイト数である必要があります。ZPL マニュアル^GFのコマンドを参照してください。画像をプリンターに保存したい場合は、マニュアルの ~DG コマンドの後の例を参照することもできます。

いくつかの画像を変換して保存する必要がある場合は、ZebraNet Bridgeのグラフィック変換ウィザードを使用できます。色変換と ZPL ^GF 計算を処理し、必要に応じて画像をプリンタに保存することもできます。

于 2012-07-10T13:27:51.953 に答える