summaryrefslogtreecommitdiff
path: root/static/freebsd/man5/pbm.5 3.html
blob: 25d01fce0cc489e5e741e38071189957eb4cd3a7 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
<table class="head">
  <tr>
    <td class="head-ltitle">PBM(5)</td>
    <td class="head-vol">File Formats Manual</td>
    <td class="head-rtitle">PBM(5)</td>
  </tr>
</table>
<div class="manual-text">
<section class="Sh">
<h1 class="Sh" id="NAME"><a class="permalink" href="#NAME">NAME</a></h1>
<p class="Pp"><code class="Nm">pbm</code> &#x2014; <span class="Nd">portable
    bitmap file format</span></p>
</section>
<section class="Sh">
<h1 class="Sh" id="DESCRIPTION"><a class="permalink" href="#DESCRIPTION">DESCRIPTION</a></h1>
<p class="Pp">The portable bitmap format is a lowest common denominator
    monochrome file format. It was originally designed to make it reasonable to
    mail bitmaps between different types of machines using the typical stupid
    network mailers we have today. Now it serves as the common language of a
    large family of bitmap conversion filters. The definition is as follows:</p>
<p class="Pp"></p>
<ul class="Bl-bullet Bl-compact">
  <li>A &quot;magic number&quot; for identifying the file type. A pbm file's
      magic number is the two characters &quot;P1&quot;.</li>
  <li>Whitespace (blanks, TABs, CRs, LFs).</li>
  <li>A width, formatted as ASCII characters in decimal.</li>
  <li>Whitespace.</li>
  <li>A height, again in ASCII decimal.</li>
  <li>Whitespace.</li>
  <li>Width * height bits, each either '1' or '0', starting at the top-left
      corner of the bitmap, proceeding in normal English reading order.</li>
  <li>The character '1' means black, '0' means white.</li>
  <li>Whitespace in the bits section is ignored.</li>
  <li>Characters from a &quot;#&quot; to the next end-of-line are ignored
      (comments).</li>
  <li>No line should be longer than 70 characters.</li>
</ul>
<p class="Pp">Here is an example of a small bitmap in this format:</p>
<div class="Bd Pp Li">
<pre>P1
# feep.pbm
24 7
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 1 1 1 1 0 0 1 1 1 1 0 0 1 1 1 1 0 0 1 1 1 1 0
0 1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 1 0
0 1 1 1 0 0 0 1 1 1 0 0 0 1 1 1 0 0 0 1 1 1 1 0
0 1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0
0 1 0 0 0 0 0 1 1 1 1 0 0 1 1 1 1 0 0 1 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0</pre>
</div>
<p class="Pp">Programs that read this format should be as lenient as possible,
    accepting anything that looks remotely like a bitmap.</p>
<p class="Pp">There is also a variant on the format, available by setting the
    RAWBITS option at compile time. This variant is different in the following
    ways:</p>
<p class="Pp"></p>
<ul class="Bl-bullet Bl-compact">
  <li>The &quot;magic number&quot; is &quot;P4&quot; instead of
    &quot;P1&quot;.</li>
  <li>The bits are stored eight per byte, high bit first low bit last.</li>
  <li>No whitespace is allowed in the bits section, and only a single character
      of whitespace (typically a newline) is allowed after the height.</li>
  <li>The files are eight times smaller and many times faster to read and
    write.</li>
</ul>
</section>
<section class="Sh">
<h1 class="Sh" id="AUTHORS"><a class="permalink" href="#AUTHORS">AUTHORS</a></h1>
<p class="Pp">Copyright (C) 1989, 1991 by <span class="An">Jef
  Poskanzer</span>.</p>
</section>
</div>
<table class="foot">
  <tr>
    <td class="foot-date">September 27, 1991</td>
    <td class="foot-os">FreeBSD 15.0</td>
  </tr>
</table>