2012-07-09 6 views
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" 

포토샵에서 누군가가 노이즈 필터를 적용한 것처럼 보이는 엉뚱한 사각형을 인쇄합니다. Zebra 웹 사이트에서이 솔루션을 찾았지만 그 이미지는 255/255였습니다. 50/50 이미지에이 이미지가 필요하지만 오프셋이나 비트 맵 길이를 변경해야하는 이유가 전혀 없습니다 ...ZPL 레이블 프린터로 비트 맵 작업

+0

원본 파일이 무엇입니까? 머리말이없는 순수한 이진 이미지 데이터를 기대하는 것처럼 보이는 코드입니다. – SSS

+0

그것은 .BMP 이미지입니다. 특별한 것은 없습니다 ... http://imgur.com/SsxCL (imgur는 이것을 PNG로 변경했습니다. – Calvin

답변

1

비트 맵 1 비트 색상 심도가 맞습니까? 이와 같은 컬러 이미지는 전송할 수 없으며 픽셀 당 흑백 1 비트로 변환해야합니다. 또한 bitmapDataLength 변수가 올바른지 확인해야합니다. 프린터에 전송할 이미지의 바이트 수 여야합니다. ZPL Manual^GF 명령을 참조하십시오. 프린터의 이미지를 저장하려는 경우 ~ DG 명령 다음의 예에서 설명서를 볼 수도 있습니다.

몇 개의 이미지를 변환하고 저장해야하는 경우 그래픽 변환을 사용할 수 있습니다 마법사 (ZebraNet Bridge) 색상 변환과 ZPL^GF 수학을 처리하고 프린터에 이미지를 Optioinally 저장할 수 있습니다.

+1

고마워요, 저는 ZebraNet 브릿지와 함께 가서 템플릿이 있습니다. – Calvin

1

나는 똑같은 문제가있어 이렇게 풀렸다. 두 번째 줄은 이미지의 헤더 크기 (대표 (62) - 기술적으로,

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

첫 번째 줄은 바이트 단위로 이미지 크기 (파일 크기)을 나타냅니다 ... 방법을 알고 있지만, 그것을 시도하지 않는다 62)

희망 하시겠습니까?

+0

실제로 위의 해결 방법이 있지만 머리글 크기가 62라고 적어 두었습니다. 내가 잘못하고있는 것 같습니다. – Calvin