Penguin
Annotated edit history of netpbm(1) version 2, including all changes. View license author blame.
Rev Author # Line
1 perry 1 netpbm
2 !!!netpbm
3 NAME
4 DESCRIPTION
5 The Netpbm Formats
6 Implied Format Conversion
7 The Netpbm Programs
8 Common Options
9 The Netpbm Libraries
10 HISTORY
11 AUTHOR
12 ----
13 !!NAME
14
15
16 netpbm - package of graphics manipulation programs and libraries
17 !!DESCRIPTION
18
19
20 __Netpbm__ is a package of graphics programs and
21 programming libraries.
22
23
24 There are over 220 separate programs in the package, most of
25 which have
26 pnmscale__ and __giftopnm__.
27
28
29 For example, you might use __pnmscale__ to shrink an
30 image by 10%. Or use __pnmcomp__ to overlay one image on
31 top of another. Or use __pbmtext__ to create an image of
32 text. Or reduce the number of colors in an image with
33 __ppmquant__.
34 !!The Netpbm Formats
35
36
37 All of the programs work with a set of graphics formats
38 called the
39 pbm__(5), pgm(5), ppm(5), and
40 pam(5). The first three of these are sometimes known
41 generically as __pnm__. Many of the Netpbm programs
42 convert from a Netpbm format to another format or vice
43 versa. This is so you can use the Netpbm programs to work on
44 graphics of any format. It is also common to use a
45 combination of Netpbm programs to convert from one
46 non-Netpbm format to another non-Netpbm format. Netpbm has
47 converters for over 80 graphics formats, and as a package
48 Netpbm lets you do more graphics format conversions than any
49 other computer graphics facility.
50
51
52 The Netpbm formats are all raster formats, i.e. they
53 describe an image as a matrix of rows and columns of pixels.
54 In the PBM format, the pixels are black and white. In the
55 PGM format, pixels are shades of gray. In the PPM format,
56 the pixels are in full color. The PAM format is more
57 sophisticated. A replacement for all three of the other
58 formats, it can represent matrices of general data including
59 but not limited to black and white, grayscale, and color
60 images.
61
62
63 Programs designed to work with PBM images have
64
65
66 All Netpbm programs designed to read PGM images see PBM
67 images as if they were PGM too. All Netpbm programs designed
68 to read PPM images see PGM and PBM images as if they were
69 PPM. See the section
70
71
72 Programs that have
73 pnmtogif__ creates a black and
74 white GIF output image if its input is PBM or PGM, but a
75 color GIF output image if its input is PPM. And
76 __pnmscale__ produces an output image of the same format
77 as the input. A __ppmscale__ program would read all three
78 PNM input formats, but would see them all as PPM and would
79 always generate PPM output.
80
81
82 If it seems wasteful to you to have three separate PNM
83 formats, be aware that there is a historical reason for it.
84 In the beginning, there were only PBMs. PGMs came later, and
85 then PPMs. Much later came PAM, which realizes the
86 possibility of having just one aggregate
87 format.
88
89
90 The formats are described in the man pages pbm(5),
91 pgm(5), ppm(5), and
92 pam(5),
93 !!Implied Format Conversion
94
95
96 A program that uses the PGM library to read an image can
97 read a PBM image as well as a PGM image. The program sees
98 the PBM image as if it were the equivalent PGM image, with a
99 maxval of 255.
100
101
102 A program that uses the PPM library to read an image can
103 read a PGM image as well as a PPM image and a PBM image as
104 well as a PGM image. The program sees the PBM or PGM image
105 as if it were the equivalent PPM image, with a maxval of 255
106 in the PBM case and the same maxval as the PGM in the PGM
107 case.
108 !!The Netpbm Programs
109
110
111 The Netpbm programs are generally useful run by a person
112 from a command shell, but are also designed to be used by
113 programs. A common characteristic of Netpbm programs is that
114 they are simple, fundamental building blocks. They are most
115 powerful when stacked in pipelines. Netpbm programs do not
116 use graphical user interfaces (in fact, none of them display
117 graphics at all) and do not seek input from a
118 user.
119
120
121 Each of these programs has its own man page.
122 !!Common Options
123
124
125 There are a few options that are present on all programs
126 that are based on the Netpbm libraries, including virtually
127 all Netpbm programs. These are not mentioned in the
128 individual man pages for the programs.
129
130
131 __-quiet__
132
133
134 Suppress all informational messages that would otherwise be
135 issued to Standard Error. (To be precise, this only works to
136 the extent that the program in question implements the
137 Netpbm convention of issuing all informational messages via
138 the __pm_message()__ service of the Netpbm
139 libraries).
140
141
142 __-version__
143
144
145 Instead of doing anything else, report the version of the
146 __libpbm__ library linked with the program (it may have
147 been linked statically into the program, or dynamically
148 linked at run time). Normally, the Netpbm programs and the
149 libraries are installed at the same time, so this tells you
150 the version of the program and all the other Netpbm
151 libraries and files it uses as well.
152
153
154 Here is a directory of the Netpbm programs. You can also use
155 __man -k__ to search for a program that does what you
156 want.
157
158
159 __Converters__
160
161
162 __ppmtompeg__
163
164
165 convert series of PPM frames to an MPEG movie
166
167
168 __jpegtopnm__
169
170
171 convert JFIF/JPEG/EXIF file to Netpbm format
172
173
174 __pnmtojpeg__
175
176
177 convert PPM to JPEG/JFIF/EXIF format
178
179
180 __anytopnm__
181
182
183 convert any graphics format to Netpbm format
184
185
186 __bmptoppm__
187
188
189 convert Windows or OS/2 Bitmap file to PPM
190
191
192 __ppmtobmp__
193
194
195 convert PPM to Windows or OS/2 Bitmap file
196
197
198 __winicontoppm__
199
200
201 convert Windows icon file to PPM
202
203
204 __ppmtowinicon__
205
206
207 convert PPM to Windows icon file
208
209
210 __giftopnm__
211
212
213 convert GIF to portable anymap
214
215
216 __ppmtogif__
217
218
219 convert PPM to GIF
220
221
222 __pnmtopng__
223
224
225 convert Netpbm format to Portable Network
226 Graphics
227
228
229 __pngtopnm__
230
231
232 convert PNG (Portable Network Graphics) to Netpbm
233 formats
234
235
236 __palmtopnm__
237
238
239 convert Palm pixmap to Netpbm formats
240
241
242 __pnmtopalm__
243
244
245 convert Netpbm formats to Palm pixmap
246
247
248 __jbigtopbm__
249
250
251 convert JBIG BIE (compressed bitmap) to PBM
252
253
254 __pbmtojbig__
255
256
257 convert PBM to JBIG BIE (compressed bitmap)
258
259
260 __pnmtofiasco__
261
262
263 convert Netpbm image to Fiasco (wfa) highly compressed
264 format
265
266
267 __fiascotopnm__
268
269
270 convert Fiasco (wfa) highly compressed format to Netpbm
271 image
272
273
274 __hpcdtoppm__
275
276
277 convert photo CD to PPM
278
279
280 __pbmtonokia__
281
282
283 convert PBM to Nokia Smart Messaging Format
284 (SMF)
285
286
287 __pbmtowbmp__
288
289
290 convert PBM to WAP (Wireless App Protocol) Wireless
291 Bitmap
292
293
294 __wbmptopbm__
295
296
297 convert WAP (Wireless App Protocol) Wireless Bitmap to
298 PBM
299
300
301 __neotoppm__
302
303
304 convert Atari Neochrome (.neo) image to PPM
305
306
307 __ppmtoneo__
308
309
310 convert PPM image to Atari Neochrome (.neo)
311
312
313 __pbmtomda__
314
315
316 convert from PBM to Microdesign (for Amstrad
317 PCWs)
318
319
320 __mdatopbm__
321
322
323 convert from Microdesign (for Amstrad PCWs) to
324 PBM
325
326
327 __atktopbm__
328
329
330 convert Andrew Toolkit raster object to PBM
331
332
333 __pbmtoatk__
334
335
336 convert PBM to Andrew Toolkit raster object
337
338
339 __brushtopbm__
340
341
342 convert Xerox doodle brushes to PBM
343
344
345 __cmuwmtopbm__
346
347
348 convert CMU window manager format to PBM
349
350
351 __g3topbm__
352
353
354 convert Group 3 FAX to PBM
355
356
357 __pbmtog3__
358
359
360 convert PBM to Group 3 FAX
361
362
363 __icontopbm__
364
365
366 convert Sun icon to PBM
367
368
369 __pbmtoicon__
370
371
372 convert PBM to Sun icon
373
374
375 __gemtopnm__
376
377
378 convert GEM .img format to PBM or pixmap
379
380
381 __macptopbm__
382
383
2 perry 384 convert !MacPaint to PBM
1 perry 385
386
387 __pbmtomacp__
388
389
2 perry 390 convert PBM to !MacPaint
1 perry 391
392
393 __mgrtopbm__
394
395
396 convert MGR format to PBM
397
398
399 __pbmtomgr__
400
401
402 convert PBM to MGR format
403
404
405 __pi3topbm__
406
407
408 convert Atari Degas .pi3 to PBM
409
410
411 __pbmtopi3__
412
413
414 convert PBM to Atari Degas .pi3
415
416
417 __xbmtopbm__
418
419
420 convert X10 or X11 bitmap to PBM
421
422
423 __pbmtoxbm__
424
425
426 convert PBM to X11 bitmap
427
428
429 __pbmtox10bm__
430
431
432 convert PBM to X10 bitmap
433
434
435 __ybmtopbm__
436
437
438 convert Bennet Yee
439
440
441 __pbmtoybm__
442
443
444 convert PBM into Bennet Yee
445
446
447 __pbmto10x__
448
449
450 convert PBM to Gemini 10x printer graphics
451
452
453 __pbmtoascii__
454
455
456 convert PBM to ASCII graphic form
457
458
459 __asciitopgm__
460
461
462 convert ASCII character graphics to PGM
463
464
465 __pbmtobbnbg__
466
467
2 perry 468 convert PBM to BBN !BitGraph graphics
1 perry 469
470
471 __pbmtocmuwm__
472
473
474 convert PBM to CMU window manager format
475
476
477 __pbmtoepson__
478
479
480 convert PBM to Epson printer graphics
481
482
483 __pbmtogem__
484
485
486 convert PBM into GEM .img file
487
488
489 __pbmtogo__
490
491
2 perry 492 convert PBM to !GraphOn graphics
1 perry 493
494
495 __pbmtolj__
496
497
2 perry 498 convert PBM to HP !LaserJet black and white
1 perry 499 graphics
500
501
502 __ppmtolj__
503
504
2 perry 505 convert PPM to HP !LaserJet color graphics (PCL)
1 perry 506
507
508 __pjtoppm__
509
510
2 perry 511 convert HP !PaintJet file to PPM
1 perry 512
513
514 __ppmtopj__
515
516
2 perry 517 convert PPM to HP !PaintJet file
1 perry 518
519
520 __thinkjettopbm__
521
522
523 convert HP Thinkjet printer stream to PBM
524
525
526 __pbmtoplot__
527
528
529 convert PBM into Unix plot(5) file
530
531
532 __pbmtoptx__
533
534
535 convert PBM to Printronix graphics
536
537
538 __pbmtozinc__
539
540
541 convert PBM to Zinc Interface Library icon
542
543
544 __fitstopnm__
545
546
547 convert FITS format to portable anymap
548
549
550 __pnmtofits__
551
552
553 convert Netpbm formats to FITS format
554
555
556 __fstopgm__
557
558
2 perry 559 convert Usenix !FaceSaver(tm) format to PGM
1 perry 560
561
562 __pgmtofs__
563
564
2 perry 565 convert PGM to Usenix !FaceSaver(tm) format
1 perry 566
567
568 __hipstopgm__
569
570
571 convert HIPS format to PGM
572
573
574 __lispmtopgm__
575
576
577 convert a Lisp Machine bitmap file into PGM
578 format
579
580
581 __pgmtolispm__
582
583
584 convert PGM into Lisp Machine format
585
586
587 __pnmtops__
588
589
590 convert Netpbm formats to Postscript
591
592
593 __pstopnm__
594
595
596 convert Postscript to Netpbm formats
597
598
599 __psidtopgm__
600
601
2 perry 602 convert !PostScript
1 perry 603
604
605 __pbmtolps__
606
607
608 convert PBM image to Postscript using lines
609
610
611 __pbmtoepsi__
612
613
614 convert a PBM image to encapsulated Postscript preview
615 bitmap
616
617
618 __pbmtopsg3__
619
620
621 convert PBM images to Postscript using G3 fax
622 compression.
623
624
625 __rawtopgm__
626
627
628 convert raw grayscale bytes to PGM
629
630
631 __pgmtopbm__
632
633
634 convert PGM to PBM
635
636
637 __gouldtoppm__
638
639
640 convert Gould scanner file to PPM
641
642
643 __ilbmtoppm__
644
645
646 convert IFF ILBM to PPM
647
648
649 __ppmtoilbm__
650
651
652 convert PPM to IFF ILBM
653
654
655 __imgtoppm__
656
657
658 convert Img-whatnot to PPM
659
660
661 __mtvtoppm__
662
663
664 convert MTV ray-tracer output to PPM
665
666
667 __pcxtoppm__
668
669
670 convert PC Paintbrush format to PPM
671
672
673 __pgmtoppm__
674
675
676 colorize a portable graymap into a PPM
677
678
679 __pi1toppm__
680
681
682 convert Atari Degas .pi1 to PPM
683
684
685 __ppmtopi1__
686
687
688 convert PPM to Atari Degas .pi1
689
690
691 __picttoppm__
692
693
694 convert Macintosh PICT to PPM
695
696
697 __ppmtopict__
698
699
700 convert PPM to Macintosh PICT
701
702
703 __qrttoppm__
704
705
706 convert QRT ray-tracer output to PPM
707
708
709 __rawtoppm__
710
711
712 convert raw RGB bytes to PPM
713
714
715 __sldtoppm__
716
717
718 convert an AutoCAD slide file into a PPM
719
720
721 __spctoppm__
722
723
724 convert Atari compressed Spectrum to PPM
725
726
727 __sputoppm__
728
729
730 convert Atari uncompressed Spectrum to PPM
731
732
733 __tgatoppm__
734
735
2 perry 736 convert !TrueVision Targa file to PPM
1 perry 737
738
739 __ppmtotga__
740
741
2 perry 742 convert PPM to !TrueVision Targa file
1 perry 743
744
745 __ximtoppm__
746
747
748 convert Xim to PPM
749
750
751 __xpmtoppm__
752
753
754 convert XPM format to PPM
755
756
757 __ppmtoxpm__
758
759
760 convert PPM to XPM format
761
762
763 __yuvtoppm__
764
765
766 convert Abekas YUV format to PPM
767
768
769 __eyuvtoppm__
770
771
772 convert Encoder/Berkeley YUV format to PPM
773
774
775 __ppmtoeyuv__
776
777
778 convert PPM to Encoder/Berkeley YUV format
779
780
781 __ppmtoyuv__
782
783
784 convert PPM to Abekas YUV format
785
786
787 __ppmtoyuvsplit__
788
789
790 convert PPM to 3 subsampled raw YUV files
791
792
793 __yuvsplittoppm__
794
795
796 merge 3 subsampled raw YUV files to one PPM
797
798
799 __ppmtoacad__
800
801
802 convert PPM to AutoCAD database or slide
803
804
805 __ppmtoicr__
806
807
808 convert PPM to NCSA ICR graphics
809
810
811 __ppmtopcx__
812
813
814 convert PPM to PC Paintbrush format
815
816
817 __ppmtopgm__
818
819
820 convert PPM to portable graymap
821
822
823 __ppmtopuzz__
824
825
826 convert PPM to X11
827
828
829 __rasttopnm__
830
831
832 convert Sun raster file to Netpbm formats
833
834
835 __pnmtorast__
836
837
838 convert Netpbm formats to Sun raster file
839
840
841 __tifftopnm__
842
843
844 convert TIFF file to portable anymap
845
846
847 __pnmtotiff__
848
849
850 convert Netpbm formats to TIFF RGB file
851
852
853 __pnmtotiffcmyk__
854
855
856 convert Netpbm formats to TIFF CMYK file
857
858
859 __xwdtopnm__
860
861
862 convert X10 or X11 window dump to Netpbm
863 formats
864
865
866 __pnmtoxwd__
867
868
869 convert Netpbm formats to X11 window dump
870
871
872 __pnmtoplainpnm__
873
874
875 convert regular Netpbm format image into plain Netpbm
876 format
877
878
879 __pbmtopgm__
880
881
882 convert PBM file to PGM by averaging areas
883
884
885 __411toppm__
886
887
888 convert 411 (Sony Mavica) to PPM
889
890
891 __ppmtosixel__
892
893
894 convert PPM to DEC sixel format
895
896
897 __ppmtouil__
898
899
900 convert PPM to Motif UIL icon file
901
902
903 __sbigtopgm__
904
905
906 convert Santa Barbara Instrument Group CCD file to
907 PGM
908
909
910 __vidtoppm__
911
912
913 convert Parallax XVideo JPEG to sequence of PPM
914 files
915
916
917 __pnmtorle__
918
919
920 convert PNM to Utah Raster Toolkit (urt/rle)
921 file
922
923
924 __rletopnm__
925
926
927 convert Utah Raster Toolkit (urt/rle) file to
928 PNM
929
930
931 __ppmtoleaf__
932
933
934 convert PPM to Interleaf
935
936
937 __leaftoppm__
938
939
940 convert Interleaf to PPM
941
942
943 __bioradtopgm__
944
945
946 convert Biorad confocal image to PGM
947
948
949 __pbmtoln03__
950
951
952 convert PGM image to Dec LN03+ Sixel image
953
954
955 __pbmtopk__
956
957
958 convert PBM image to packed format (PK) font
959
960
961 __pktopbm__
962
963
964 convert packed format (PK) font to PBM image
965
966
967 __Image Generators__
968
969
970 All of these generate Netpbm format output.
971
972
973 __pbmmake__
974
975
976 create a blank PBM image of a specified size
977
978
979 __ppmmake__
980
981
982 create a PPM image of a specified size and
983 color
984
985
986 __pgmramp__
987
988
989 generate a grayscale ramp
990
991
992 __ppmpat__
993
994
995 create a pretty PPM image
996
997
998 __ppmrainbow__
999
1000
1001 create a spectrum-like image with colors fading
1002 together.
1003
1004
1005 __pgmnoise__
1006
1007
1008 create a PGM image of white noise
1009
1010
1011 __pbmtext__
1012
1013
1014 render text into a PBM image
1015
1016
1017 __pbmupc__
1018
1019
1020 create a Universal Product Code PBM image
1021
1022
1023 __ppmcie__
1024
1025
1026 generate a CIE color map PPM image
1027
1028
1029 __pbmpage__
1030
1031
1032 create a printer test pattern page in PBM
1033 format
1034
1035
1036 __Image Editors__
1037
1038
1039 All of these work on the Netpbm formats
1040
1041
1042 __ppmlabel__
1043
1044
1045 Add text to an image
1046
1047
1048 __pnmshadow__
1049
1050
1051 add a shadow to an image so it looks like it's
1052 floating
1053
1054
1055 __ppmbrighten__
1056
1057
1058 brighten or dim an image -- change saturation and
1059 value
1060
1061
1062 __ppmdim__
1063
1064
1065 dim an image - different way from ppmbrighten
1066
1067
1068 __pbmreduce__
1069
1070
1071 reduce a PBM N times, using Floyd-Steinberg
1072
1073
1074 __pgmnorm__
1075
1076
1077 normalize contrast in a PGM image
1078
1079
1080 __ppmnorm__
1081
1082
1083 normalize contrast in a PPM image
1084
1085
1086 __pbmpscale__
1087
1088
1089 enlarge a PBM image with edge smoothing
1090
1091
1092 __pnmscale__
1093
1094
1095 scale an image with high precision
1096
1097
1098 __pnmscalefixed__
1099
1100
1101 scale an image quickly with low precision
1102
1103
1104 __ppmdither__
1105
1106
1107 ordered dither for color images
1108
1109
1110 __ppmquant__
1111
1112
1113 quantize colors in an image down to a specified
1114 number
1115
1116
1117 __ppmquantall__
1118
1119
1120 quantize colors down to a specified number on many
1121 files
1122
1123
1124 __ppmrelief__
1125
1126
1127 run a Laplacian Relief filter on a PPM
1128
1129
1130 __pnmarith__
1131
1132
1133 perform arithmetic on two images
1134
1135
1136 __pnmcat__
1137
1138
1139 concatenate images
1140
1141
1142 __pnmpad__
1143
1144
1145 add borders to an image
1146
1147
1148 __pnmcomp__
1149
1150
1151 create composite (overlay) of images
1152
1153
1154 __ppmmix__
1155
1156
1157 mix (overlay) two images.
1158
1159
1160 __pnmcrop__
1161
1162
1163 crop all like-colored borders off an image
1164
1165
1166 __pnmcut__
1167
1168
1169 select a rectangular region from an image
1170
1171
1172 __pnmdepth__
1173
1174
1175 change the maxval in an image
1176
1177
1178 __pnmenlarge__
1179
1180
1181 enlarge an image N times
1182
1183
1184 __pnmflip__
1185
1186
1187 perform one or more flip operations on an image
1188
1189
1190 __pnminterp__
1191
1192
1193 scale up an image by interpolating between
1194 pixels
1195
1196
1197 __pnminterp-gen__
1198
1199
1200 scale by non-integer values using pnminterp and
1201 pnmscale
1202
1203
1204 __pnminvert__
1205
1206
1207 invert an image
1208
1209
1210 __pnmgamma__
1211
1212
1213 perform gamma correction on an image
1214
1215
1216 __pnmmargin__
1217
1218
1219 add a margin to an image
1220
1221
1222 __pnmpaste__
1223
1224
1225 paste a rectangle into an image
1226
1227
1228 __pnmrotate__
1229
1230
1231 rotate an image
1232
1233
1234 __pnmshear__
1235
1236
1237 shear an image
1238
1239
1240 __pnmsmooth__
1241
1242
1243 smooth am image
1244
1245
1246 __pnmtile__
1247
1248
1249 replicate an image into a specified size
1250
1251
1252 __pbmclean__
1253
1254
1255 remove lone pixels (snow) from a PBM image
1256
1257
1258 __pnmalias__
1259
1260
1261 antialias an image
1262
1263
1264 __ppmchange__
1265
1266
1267 change all of one color to another in PPM image
1268
1269
1270 __ppmshift__
1271
1272
1273 shift lines of PPM image left or right a random
1274 amount
1275
1276
1277 __ppmspread__
1278
1279
1280 move pixels of PPM image a random amount
1281
1282
1283 __pnmconvol__
1284
1285
1286 general MxN convolution on an image
1287
1288
1289 __rgb3toppm__
1290
1291
1292 combine three portable graymaps into one PPM
1293
1294
1295 __ppmtorgb3__
1296
1297
1298 separate a PPM into three portable graymaps
1299
1300
1301 __pbmlife__
1302
1303
1304 apply Conway's rules of Life to a PBM image
1305
1306
1307 __ppmdist__
1308
1309
1310 map colors to high contrast grayscales
1311 arbitrarily
1312
1313
1314 __ppmntsc__
1315
1316
1317 adjust colors so they are legal for NTSC or PAL
1318 television
1319
1320
1321 __Image Analyzers__
1322
1323
1324 These all work on the Netpbm formats as input.
1325
1326
1327 __pnmfile__
1328
1329
1330 describe an image's vital characteristics
1331
1332
1333 __pnmpsnr__
1334
1335
1336 measure difference between two images
1337
1338
1339 __pgmedge__
1340
1341
1342 edge-detect a PGM image
1343
1344
1345 __pgmenhance__
1346
1347
1348 edge-enhance a PGM image
1349
1350
1351 __pgmslice__
1352
1353
1354 print grayscale values for a row or column of a PGM
1355 image
1356
1357
1358 __pgmtexture__
1359
1360
1361 calculate textural features on a PGM image
1362
1363
1364 __pgmhist__
1365
1366
1367 print a histogram of the values in a PGM image
1368
1369
1370 __ppmhist__
1371
1372
1373 print a histogram of a PPM
1374
1375
1376 __ppmtomap__
1377
1378
1379 generate a map of all colors in an image
1380
1381
1382 __Miscellaneous__
1383
1384
1385 __pbmmask__
1386
1387
1388 create a mask bitmap from a regular bitmap
1389
1390
1391 __ppmcolormask__
1392
1393
1394 create mask of areas of a certain color in an
1395 image
1396
1397
1398 __pnmsplit__
1399
1400
1401 split a multi-image Netpbm file into multiple 1-image
1402 files
1403
1404
1405 __pnmindex__
1406
1407
1408 build a visual index of a bunch of Netpbm
1409 images
1410
1411
1412 __pcdindex__
1413
1414
1415 build a visual index of a photo CD from PCD overview
1416 file
1417
1418
1419 __pnmmontage__
1420
1421
1422 build multiple Netpbm images into a single montage
1423 image
1424
1425
1426 __pgmbentley__
1427
1428
1429 Bentleyize a PGM image
1430
1431
1432 __pgmcrater__
1433
1434
1435 create cratered terrain by fractal forgery
1436
1437
1438 __pamoil__
1439
1440
1441 turn a PNM or PAM image into an oil painting
1442
1443
1444 __ppmforge__
1445
1446
1447 fractal forgeries of clouds, planets, and starry
1448 skies
1449
1450
1451 __pgmkernel__
1452
1453
1454 generate a convolution kernel
1455
1456
1457 __ppmtv__
1458
1459
1460 Make an image lined so it looks like an old TV
1461
1462
1463 __pbmto4425__
1464
1465
1466 Display PBM image on AT
1467
1468
1469 __Uncatalogued As Yet__
1470
1471
1472 __pnmhisteq__
1473
1474
1475 __pnmhistmap__
1476
1477
1478 __pnmnlfilt__
1479
1480
1481 __pnmtoddif__
1482
1483
1484 __pnmtosgi__
1485
1486
1487 __pnmtosir__
1488
1489
1490 __ppm3d__
1491
1492
1493 __ppmflash__
1494
1495
1496 __ppmqvga__
1497
1498
1499 __ppmtomitsu__
1500
1501
1502 __ppmtopjxl__
1503
1504
1505 __sgitopnm__
1506
1507
1508 __sirtopnm__
1509
1510
1511 __spottopgm__
1512
1513
1514 __xvminitoppm__
1515
1516
1517 __zeisstopnm__
1518 !!The Netpbm Libraries
1519
1520
1521 The Netpbm programming libraries, libpbm(3),
1522 libpgm(3), libppm(3), and libpnm(3),
1523 make it easy to write programs that manipulate graphic
1524 images. Their main function is to read and write files in
1525 the Netpbm format, and because the Netpbm package contains
1526 converters for all the popular graphics formats, if your
1527 program reads and writes the Netpbm formats, you can use it
1528 with any formats.
1529
1530
1531 But the libraries also contain some utility functions, such
1532 as character drawing and RGB/YCrCb conversion.
1533
1534
1535 The libraries have the conventional C linkage. Virtually all
1536 programs in the Netpbm package are based on the Netpbm
1537 libraries.
1538
1539
1540 __Application Notes__
1541
1542
1543 As a collection of primitive tools, the power of Netpbm is
1544 multiplied by the power of all the other unix tools you can
1545 use with them. These notes remind you of some of the more
1546 useful ways to do this. Often, when people want to add high
1547 level functions to the Netpbm tools, they have overlooked
1548 some existing tool that, in combination with Netpbm, already
1549 does it.
1550
1551
1552 Often, you need to apply some conversion or edit to a whole
1553 bunch of files.
1554
1555
1556 As a rule, Netpbm programs take one input file and produce
1557 one output file, usually on Standard Output. This is for
1558 flexibility, since you so often have to pipeline many tools
1559 together.
1560
1561
1562 Here is an example of a shell command to convert all your of
1563 PNG files (named *.png) to JPEG files named
1564 *.jpg:
1565
1566
1567 __for i in *.png; do pngtopnm $i | ppmtojpeg
1568 __
1569
1570
1571 Or you might just generate a stream of individual shell
1572 commands, one per file, with awk or perl. Here's how to
1573 brighten 30 YUV images that make up one second of a movie,
1574 keeping the images in the same files:
1575
1576
1577 __ls *.yuv .br | perl -ne 'chomp;
1578 print yuvtoppm $_ | ppmbrighten -v 100 | ppmtoyuv
1579 mv tmp$$.yuv $_0
1580 ' .br | sh__
1581
1582
1583 The tools __find__ (with the __-exec__ option) and
1584 __xargs__ are also useful for simple manipulation of
1585 groups of files.
1586
1587
1588 Some shells'
1589 abc.png__. Try:
1590
1591
1592 __printcmyk
1593 __
1594
1595
1596 It works in the other direction too, if you have a program
1597 that makes you name its output file and you want the output
1598 to go through a Netpbm tool.
1599
1600
1601 __Other Graphics Software__
1602
1603
1604 Netpbm contains primitive building blocks. It certainly is
1605 not a complete graphics library.
1606
1607
1608 The first thing you will need to make use of any of these
1609 tools is a viewer. __zgv__ is a good viewer to use on a
1610 GNU/Linux system with the SVGALIB graphics display driver
1611 library. You can find __zgv__ at
1612 __ftp://ftp.ibiblio.org/pub/Linux/apps/graphics/viewers/svga
1613 .__
1614
1615
1616 __zgv__ even has a feature in it wherein you can visually
1617 crop an image and write an output file of the cropped image
1618 using __pnmcut__. See the __-s__ option to
1619 __zgv__.
1620
1621
1622 For the X inclined, there is also __xzgv__. See
1623 __ftp://metalab.unc.edu/pub/Linux/apps/graphics/viewers/X__.
1624
1625
1626 __xloadimage__ and its extension __xli__ are also
1627 common ways to display a graphic image in X.
1628
1629
2 perry 1630 __!ImageMagick__ is like a visual version of Netpbm. Using
1 perry 1631 the X/Window system on Unix, you can do basic editing of
1632 images and lots of format conversions. The package does
1633 include at least some non-visual tools. Convert, Mogrify,
1634 Montage, and Animate are popular programs from the
2 perry 1635 __!ImageMagick__ package. __!ImageMagick__ runs on Unix,
1 perry 1636 Windows, Windows NT, Macintosh, and VMS.
1637
1638
1639 The Gimp is a visual image editor for Unix and X, in the
1640 same category as the more famous, less capable, and much
1641 more expensive Adobe Photoshop, etc. for Windows. See
1642 __http://www.gimp.org__.
1643
1644
1645 The __file__ program looks at a file and tells you what
1646 kind of file it is. It recognizes most of the graphics
1647 formats with which Netpbm deals, so it is pretty handy for
1648 graphics work. Netpbm's __anytopnm__ program depends on
1649 __file.__ See
1650 __ftp://ftp.astron.com/pub/file__.
1651
1652
1653 The Utah Raster Toolkit serves a lot of the same purpose as
1654 Netpbm, but without the emphasis on format conversions. This
1655 package is based on the RLE format, which you can convert to
1656 and from the Netpbm formats.
1657 __http://www.cs.utah.edu/research/projects/alpha1/urt.html__
1658 gives some information on the Utah Raster Toolkit, but does
1659 not tell where to get it.
1660
1661
1662 There are some Netpbm-like graphics tools distributed by the
1663 Army High Performance Computing Research Center at
1664 __http://www.arc.umn.edu/gvl-software/media-tools.html__.
1665 These operate directly on non-Netpbm format images, so they
1666 aren't included in the Netpbm package. However, you can use
1667 them with any image format by using the Netpbm format
1668 converters.
1669
1670
1671 __Ivtools__ is a suite of free X Windows drawing editors
1672 for Postscript, Tex, and web graphics production, as well as
1673 an embeddable and extendable vector graphic shell. It uses
1674 the Netpbm facilities. See
1675 __http://www.ivtools.org__.
1676
1677
1678 __Ilib__ is a C subroutine library with functions for
1679 adding text to an image (as you might do at a higher level
1680 with __pbmtext__, __pnmcomp__, etc.). It works with
1681 Netpbm input and output. Find it at
1682 __http://www.radix.net/~cknudsen/Ilib__. Netpbm also
1683 includes character drawing functions in the __libppm__
1684 library, but they do not have as fancy font capabilities
1685 (see __ppmlabel__ for an example of use of the Netpbm
1686 character drawing functions).
1687
1688
1689 __pnm2ppa__ converts to HP's
1690 __pbmtoppa__ and handles, notably, color.
1691 However, it is more of a printer driver than a Netpbm-style
1692 primitive graphics building block. See
1693 __http://sourceforge.net/project/?group_id=1322__.
1694
1695
1696 The program __morph__ morphs one image into another. It
1697 uses Targa format images, but you can use __tgatoppm__
1698 and __ppmtotga__ to deal with that format. You have to
1699 use the graphical (X/Tk) Xmorph to create the mesh files
1700 that you must feed to __morph__. __morph__ is part of
1701 the Xmorph package. See
1702 __http://www.colorado-research.com/~gourlay/software/Graphics/Xmorph__.
1703
1704
1705 To create an animated GIF, or extract a frame from one, use
1706 __gifsicle__. __gifsicle__ converts between animated
1707 GIF and still GIF, and you can use __ppmtogif__ and
1708 __giftopnm__ to connect up to all the Netpbm utilities.
1709 See __http://www.lcdf.org/gifsicle__.
1710
1711
1712 To convert an image of text to text (optical character
1713 recongition - OCR), use __gocr__ (think of it as an
1714 inverse of __pbmtext__). See
1715 __http://altmark.nat.uni-magdeburg.de/~jschulen/ocr/__.
1716
1717
1718 __http://schaik.com/pngsuite__ contains a PNG test suite
1719 -- a whole bunch of PNG images exploiting the various
1720 features of the PNG format.
1721
1722
1723 Another version of __pnmtopng__/__pngtopnm__ is at
1724 __http://www.schaik.com/png/pnmtopng.html__. The version
1725 in Netpbm was actually based on that package a long time
1726 ago, and you can expect to find better exploitation of the
1727 PNG format, especially recent enhancements, in that package.
1728 It may be a little less consistent with the Netpbm project
1729 and less exploitive of recent Netpbm format enhancements,
1730 though.
1731
1732
1733 __jpegtran__ Does some of the same transformations as
1734 Netpbm is famous for, but does them specifically on JPEG
1735 files and does them without loss of information. By
1736 contrast, if you were to use Netpbm, you would first
1737 decompress the JPEG image to Netpbm format, then transform
1738 the image, then compress it back to JPEG format. In that
1739 recompression, you lose a little image information because
1740 JPEG is a lossy compression. __jpegtran__ comes with the
1741 Independent Jpeg Group's (http://www.ijg.org) JPEG
1742 library.
1743
1744
1745 Some tools to deal with EXIF files (see also Netpbm's
1746 __jpegtopnm__ and __pnmtojpeg__): To dump (interpret)
1747 an EXIF header: Exifdump
1748 ((http://topo.math.u-psud.fr/~bousch/exifdump.py) or Jhead
1749 (http://www.sentex.net/~mwandel/jhead).
1750
1751
1752 A Python EXIF library and dumper:
1753 http://pyexif.sourceforge.net.
1754
1755
1756 __Other Graphics Formats__
1757
1758
1759 People never seem to tire of inventing new graphics formats,
1760 often completely redundant with pre-existing ones. Netpbm
1761 cannot keep up with them. Here is a list of a few that we
1762 know Netpbm does ''not'' handle (yet).
1763
1764
1765 CAL (originated by US Department Of Defense, favored by
1766 architects).
1767 http://www.landfield.com/faqs/graphics/fileformats-faq/part3/section-24.html
1768
1769
1770 array formats dx, general, netcdf, CDF, hdf, cm
1771
1772
1773 CGM+
1774
1775
1776 Windows Meta File (.WMF). Libwmf converts from WMF to things
1777 like Latex, PDF, PNG. Some of these can be input to
1778 Netpbm.
1779
1780
1781 Microsoft Word, RTF. Microsoft keeps a proprietary hold on
1782 these formats. Any software you see that can handle them is
1783 likely to cost money.
1784 !!HISTORY
1785
1786
1787 Netpbm has a long history, starting with Jef Poskanzer's
1788 __Pbmplus__ package in 1988. The file ''HISTORY'' in
1789 the Netpbm source code contains a historical overview as
1790 well as a detailed history release by release.
1791 !!AUTHOR
1792
1793
1794 __Netpbm__ is based on the __Pbmplus__ package by Jef
1795 Poskanzer, first distributed in 1988 and maintained by him
1796 until 1991. But the package contains work by countless other
1797 authors, added since Jef's original work. In fact, the name
1798 is derived from the fact that the work was contributed by
1799 people all over the world via the Internet, when such
1800 collaboration was still novel enough to merit naming the
1801 package after it.
1802
1803
1804 Bryan Henderson has been maintaining __Netpbm__ since
1805 1999. In addition to packaging work by others, Bryan has
1806 also written a significant amount of new material for the
1807 package.
1808 ----
This page is a man page (or other imported legacy content). We are unable to automatically determine the license status of this page.