Re: [Gimp-user] Epson <esc>i print format (Gutenprint question)



On 3/1/22 14:00, Gary Aitken wrote:
On 3/1/22 8:59 AM, Gary Aitken wrote:
I have a simple image with one straight line of a single color.
Using the gutenprint dialog, I can print that file.
If I do a "reverse translation" of the raw file, there is one escp2 command
in it to print the line, shown below with some notes:

0000006a  1b  (  U 05 00 08 08 08 40 0b
         units; (page1=08), (vt1=08), (hz1=08), (base2= 40 0b = 0xb40 = 2880)
...
000000c0  1b  i 12 01 02 68 01 01 00
         Print color1, compress1, bits1, bytes2, lines2, data...
         color1 = 0x12 = 18 = light cyan
         compress1 = 1 (TIFF compression)
         bits1 (bits/pixel) = 0x2 = 2
         bytes2 = ???? = 0x068 = 360
         lines2 is # lines to print = 0x0001 = 1
         data = unknown, not dumped; specifies the dot size, 2 bits each
00000124  0c
         FF

What I don't understand is what bytes2 is counting.
There are 100 bytes between 000000c0 and 00000124.
What does the 360 mean?
Do the horizontal units factor or the compression type factor into this
in some way?

My oversight, I see the bytes2 is a count of pixels in each line.
But the question remains:

How do you compute where the next command (the FF) is?

Do you have to actually decode the tiff data?

Yes you do.  It's basically a simple RLE compression scheme.  Repeated bytes (up to 128) are
represented as

[1-N][byte]

Non-repeated sequences (up to 128 bytes) are output as

[N][sequence]

It is possible for the "compression" to expand the data some; there's a very hairy calculation for
the worst case.


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]