image_compressor_pack 1.0.0.1-universal-darwin-16

Sign up to get free protection for your applications and to get access to all the features.
Files changed (105) hide show
  1. checksums.yaml +7 -0
  2. data/LICENSE.txt +22 -0
  3. data/lib/.paths.yml +12 -0
  4. data/lib/image_compressor_pack/dynamically_linked_recipes.yml +102 -0
  5. data/lib/image_compressor_pack/recipes.rb +42 -0
  6. data/lib/image_compressor_pack/statically_linked_recipes.yml +109 -0
  7. data/lib/image_compressor_pack/version.rb +3 -0
  8. data/lib/image_compressor_pack.rb +24 -0
  9. data/ports/advancecomp-1.22-x86_64-apple-darwin16.1.0.installed +0 -0
  10. data/ports/gifsicle-1.88-x86_64-apple-darwin16.1.0.installed +0 -0
  11. data/ports/jhead-3.0-x86_64-apple-darwin16.1.0.installed +0 -0
  12. data/ports/jpeg-archive-2.1.1-x86_64-apple-darwin16.1.0.installed +0 -0
  13. data/ports/jpegoptim-1.4.4-x86_64-apple-darwin16.1.0.installed +0 -0
  14. data/ports/lcms2-2.8-x86_64-apple-darwin16.1.0.installed +0 -0
  15. data/ports/libpng-1.6.26-x86_64-apple-darwin16.1.0.installed +0 -0
  16. data/ports/mozjpeg-3.1-x86_64-apple-darwin16.1.0.installed +0 -0
  17. data/ports/nasm-2.12.02-x86_64-apple-darwin16.1.0.installed +0 -0
  18. data/ports/optipng-0.7.6-x86_64-apple-darwin16.1.0.installed +0 -0
  19. data/ports/pngcrush-1.8.10-x86_64-apple-darwin16.1.0.installed +0 -0
  20. data/ports/pngquant-2.8.0-x86_64-apple-darwin16.1.0.installed +0 -0
  21. data/ports/x86_64-apple-darwin16.1.0/advancecomp/1.22/bin/advdef +0 -0
  22. data/ports/x86_64-apple-darwin16.1.0/advancecomp/1.22/bin/advmng +0 -0
  23. data/ports/x86_64-apple-darwin16.1.0/advancecomp/1.22/bin/advpng +0 -0
  24. data/ports/x86_64-apple-darwin16.1.0/advancecomp/1.22/bin/advzip +0 -0
  25. data/ports/x86_64-apple-darwin16.1.0/advancecomp/1.22/share/man/man1/advdef.1 +83 -0
  26. data/ports/x86_64-apple-darwin16.1.0/advancecomp/1.22/share/man/man1/advmng.1 +197 -0
  27. data/ports/x86_64-apple-darwin16.1.0/advancecomp/1.22/share/man/man1/advpng.1 +93 -0
  28. data/ports/x86_64-apple-darwin16.1.0/advancecomp/1.22/share/man/man1/advzip.1 +116 -0
  29. data/ports/x86_64-apple-darwin16.1.0/gifsicle/1.88/bin/gifsicle +0 -0
  30. data/ports/x86_64-apple-darwin16.1.0/gifsicle/1.88/share/man/man1/gifsicle.1 +1318 -0
  31. data/ports/x86_64-apple-darwin16.1.0/jhead/3.0/bin/jhead +0 -0
  32. data/ports/x86_64-apple-darwin16.1.0/jpeg-archive/2.1.1/bin/jpeg-archive +40 -0
  33. data/ports/x86_64-apple-darwin16.1.0/jpeg-archive/2.1.1/bin/jpeg-compare +0 -0
  34. data/ports/x86_64-apple-darwin16.1.0/jpeg-archive/2.1.1/bin/jpeg-hash +0 -0
  35. data/ports/x86_64-apple-darwin16.1.0/jpeg-archive/2.1.1/bin/jpeg-recompress +0 -0
  36. data/ports/x86_64-apple-darwin16.1.0/jpegoptim/1.4.4/bin/jpegoptim +0 -0
  37. data/ports/x86_64-apple-darwin16.1.0/jpegoptim/1.4.4/share/man/man1/jpegoptim.1 +186 -0
  38. data/ports/x86_64-apple-darwin16.1.0/lcms2/2.8/bin/linkicc +0 -0
  39. data/ports/x86_64-apple-darwin16.1.0/lcms2/2.8/bin/psicc +0 -0
  40. data/ports/x86_64-apple-darwin16.1.0/lcms2/2.8/bin/transicc +0 -0
  41. data/ports/x86_64-apple-darwin16.1.0/lcms2/2.8/include/lcms2.h +1903 -0
  42. data/ports/x86_64-apple-darwin16.1.0/lcms2/2.8/include/lcms2_plugin.h +665 -0
  43. data/ports/x86_64-apple-darwin16.1.0/lcms2/2.8/lib/liblcms2.a +0 -0
  44. data/ports/x86_64-apple-darwin16.1.0/lcms2/2.8/lib/liblcms2.la +41 -0
  45. data/ports/x86_64-apple-darwin16.1.0/lcms2/2.8/lib/pkgconfig/lcms2.pc +11 -0
  46. data/ports/x86_64-apple-darwin16.1.0/lcms2/2.8/share/man/man1/jpgicc.1 +122 -0
  47. data/ports/x86_64-apple-darwin16.1.0/lcms2/2.8/share/man/man1/tificc.1 +117 -0
  48. data/ports/x86_64-apple-darwin16.1.0/libpng/1.6.26/include/libpng16/png.h +3266 -0
  49. data/ports/x86_64-apple-darwin16.1.0/libpng/1.6.26/include/libpng16/pngconf.h +622 -0
  50. data/ports/x86_64-apple-darwin16.1.0/libpng/1.6.26/include/libpng16/pnglibconf.h +213 -0
  51. data/ports/x86_64-apple-darwin16.1.0/libpng/1.6.26/include/png.h +3266 -0
  52. data/ports/x86_64-apple-darwin16.1.0/libpng/1.6.26/include/pngconf.h +622 -0
  53. data/ports/x86_64-apple-darwin16.1.0/libpng/1.6.26/include/pnglibconf.h +213 -0
  54. data/ports/x86_64-apple-darwin16.1.0/libpng/1.6.26/lib/libpng.a +0 -0
  55. data/ports/x86_64-apple-darwin16.1.0/libpng/1.6.26/lib/libpng.la +41 -0
  56. data/ports/x86_64-apple-darwin16.1.0/libpng/1.6.26/lib/libpng16.a +0 -0
  57. data/ports/x86_64-apple-darwin16.1.0/libpng/1.6.26/lib/libpng16.la +41 -0
  58. data/ports/x86_64-apple-darwin16.1.0/libpng/1.6.26/lib/pkgconfig/libpng16.pc +11 -0
  59. data/ports/x86_64-apple-darwin16.1.0/libpng/1.6.26/share/man/man3/libpng.3 +6179 -0
  60. data/ports/x86_64-apple-darwin16.1.0/libpng/1.6.26/share/man/man3/libpngpf.3 +18 -0
  61. data/ports/x86_64-apple-darwin16.1.0/libpng/1.6.26/share/man/man5/png.5 +74 -0
  62. data/ports/x86_64-apple-darwin16.1.0/mozjpeg/3.1/bin/cjpeg +0 -0
  63. data/ports/x86_64-apple-darwin16.1.0/mozjpeg/3.1/bin/djpeg +0 -0
  64. data/ports/x86_64-apple-darwin16.1.0/mozjpeg/3.1/bin/jpegtran +0 -0
  65. data/ports/x86_64-apple-darwin16.1.0/mozjpeg/3.1/bin/rdjpgcom +0 -0
  66. data/ports/x86_64-apple-darwin16.1.0/mozjpeg/3.1/bin/tjbench +0 -0
  67. data/ports/x86_64-apple-darwin16.1.0/mozjpeg/3.1/bin/wrjpgcom +0 -0
  68. data/ports/x86_64-apple-darwin16.1.0/mozjpeg/3.1/include/jconfig.h +71 -0
  69. data/ports/x86_64-apple-darwin16.1.0/mozjpeg/3.1/include/jerror.h +320 -0
  70. data/ports/x86_64-apple-darwin16.1.0/mozjpeg/3.1/include/jmorecfg.h +390 -0
  71. data/ports/x86_64-apple-darwin16.1.0/mozjpeg/3.1/include/jpeglib.h +1185 -0
  72. data/ports/x86_64-apple-darwin16.1.0/mozjpeg/3.1/include/turbojpeg.h +1538 -0
  73. data/ports/x86_64-apple-darwin16.1.0/mozjpeg/3.1/lib/libjpeg.a +0 -0
  74. data/ports/x86_64-apple-darwin16.1.0/mozjpeg/3.1/lib/libjpeg.la +41 -0
  75. data/ports/x86_64-apple-darwin16.1.0/mozjpeg/3.1/lib/libturbojpeg.a +0 -0
  76. data/ports/x86_64-apple-darwin16.1.0/mozjpeg/3.1/lib/libturbojpeg.la +41 -0
  77. data/ports/x86_64-apple-darwin16.1.0/mozjpeg/3.1/share/doc/README +281 -0
  78. data/ports/x86_64-apple-darwin16.1.0/mozjpeg/3.1/share/doc/README-mozilla.txt +194 -0
  79. data/ports/x86_64-apple-darwin16.1.0/mozjpeg/3.1/share/doc/README-turbo.txt +363 -0
  80. data/ports/x86_64-apple-darwin16.1.0/mozjpeg/3.1/share/doc/example.c +433 -0
  81. data/ports/x86_64-apple-darwin16.1.0/mozjpeg/3.1/share/doc/libjpeg.txt +3015 -0
  82. data/ports/x86_64-apple-darwin16.1.0/mozjpeg/3.1/share/doc/structure.txt +906 -0
  83. data/ports/x86_64-apple-darwin16.1.0/mozjpeg/3.1/share/doc/usage.txt +649 -0
  84. data/ports/x86_64-apple-darwin16.1.0/mozjpeg/3.1/share/doc/wizard.txt +211 -0
  85. data/ports/x86_64-apple-darwin16.1.0/mozjpeg/3.1/share/man/man1/cjpeg.1 +352 -0
  86. data/ports/x86_64-apple-darwin16.1.0/mozjpeg/3.1/share/man/man1/djpeg.1 +278 -0
  87. data/ports/x86_64-apple-darwin16.1.0/mozjpeg/3.1/share/man/man1/jpegtran.1 +269 -0
  88. data/ports/x86_64-apple-darwin16.1.0/mozjpeg/3.1/share/man/man1/rdjpgcom.1 +63 -0
  89. data/ports/x86_64-apple-darwin16.1.0/mozjpeg/3.1/share/man/man1/wrjpgcom.1 +103 -0
  90. data/ports/x86_64-apple-darwin16.1.0/nasm/2.12.02/bin/nasm +0 -0
  91. data/ports/x86_64-apple-darwin16.1.0/nasm/2.12.02/bin/ndisasm +0 -0
  92. data/ports/x86_64-apple-darwin16.1.0/nasm/2.12.02/share/man/man1/nasm.1 +429 -0
  93. data/ports/x86_64-apple-darwin16.1.0/nasm/2.12.02/share/man/man1/ndisasm.1 +120 -0
  94. data/ports/x86_64-apple-darwin16.1.0/optipng/0.7.6/bin/optipng +0 -0
  95. data/ports/x86_64-apple-darwin16.1.0/optipng/0.7.6/man/man1/optipng.1 +343 -0
  96. data/ports/x86_64-apple-darwin16.1.0/pngcrush/1.8.10/bin/pngcrush +0 -0
  97. data/ports/x86_64-apple-darwin16.1.0/pngquant/2.8.0/bin/pngquant +0 -0
  98. data/ports/x86_64-apple-darwin16.1.0/pngquant/2.8.0/share/man/man1/pngquant.1 +127 -0
  99. data/ports/x86_64-apple-darwin16.1.0/zlib/1.2.8/include/zconf.h +511 -0
  100. data/ports/x86_64-apple-darwin16.1.0/zlib/1.2.8/include/zlib.h +1768 -0
  101. data/ports/x86_64-apple-darwin16.1.0/zlib/1.2.8/lib/libz.a +0 -0
  102. data/ports/x86_64-apple-darwin16.1.0/zlib/1.2.8/lib/pkgconfig/zlib.pc +13 -0
  103. data/ports/x86_64-apple-darwin16.1.0/zlib/1.2.8/share/man/man3/zlib.3 +151 -0
  104. data/ports/zlib-1.2.8-x86_64-apple-darwin16.1.0.installed +0 -0
  105. metadata +219 -0
@@ -0,0 +1,649 @@
1
+ NOTE: This file was modified by The libjpeg-turbo Project to include only
2
+ information relevant to libjpeg-turbo and to wordsmith certain sections.
3
+
4
+ USAGE instructions for the Independent JPEG Group's JPEG software
5
+ =================================================================
6
+
7
+ This file describes usage of the JPEG conversion programs cjpeg and djpeg,
8
+ as well as the utility programs jpegtran, rdjpgcom and wrjpgcom. (See
9
+ the other documentation files if you wish to use the JPEG library within
10
+ your own programs.)
11
+
12
+ If you are on a Unix machine you may prefer to read the Unix-style manual
13
+ pages in files cjpeg.1, djpeg.1, jpegtran.1, rdjpgcom.1, wrjpgcom.1.
14
+
15
+
16
+ INTRODUCTION
17
+
18
+ These programs implement JPEG image encoding, decoding, and transcoding.
19
+ JPEG (pronounced "jay-peg") is a standardized compression method for
20
+ full-color and grayscale images.
21
+
22
+
23
+ GENERAL USAGE
24
+
25
+ We provide two programs, cjpeg to compress an image file into JPEG format,
26
+ and djpeg to decompress a JPEG file back into a conventional image format.
27
+
28
+ On Unix-like systems, you say:
29
+ cjpeg [switches] [imagefile] >jpegfile
30
+ or
31
+ djpeg [switches] [jpegfile] >imagefile
32
+ The programs read the specified input file, or standard input if none is
33
+ named. They always write to standard output (with trace/error messages to
34
+ standard error). These conventions are handy for piping images between
35
+ programs.
36
+
37
+ On most non-Unix systems, you say:
38
+ cjpeg [switches] imagefile jpegfile
39
+ or
40
+ djpeg [switches] jpegfile imagefile
41
+ i.e., both the input and output files are named on the command line. This
42
+ style is a little more foolproof, and it loses no functionality if you don't
43
+ have pipes. (You can get this style on Unix too, if you prefer, by defining
44
+ TWO_FILE_COMMANDLINE when you compile the programs; see install.txt.)
45
+
46
+ You can also say:
47
+ cjpeg [switches] -outfile jpegfile imagefile
48
+ or
49
+ djpeg [switches] -outfile imagefile jpegfile
50
+ This syntax works on all systems, so it is useful for scripts.
51
+
52
+ The currently supported image file formats are: PPM (PBMPLUS color format),
53
+ PGM (PBMPLUS grayscale format), BMP, Targa, and RLE (Utah Raster Toolkit
54
+ format). (RLE is supported only if the URT library is available.)
55
+ cjpeg recognizes the input image format automatically, with the exception
56
+ of some Targa-format files. You have to tell djpeg which format to generate.
57
+
58
+ JPEG files are in the defacto standard JFIF file format. There are other,
59
+ less widely used JPEG-based file formats, but we don't support them.
60
+
61
+ All switch names may be abbreviated; for example, -grayscale may be written
62
+ -gray or -gr. Most of the "basic" switches can be abbreviated to as little as
63
+ one letter. Upper and lower case are equivalent (-BMP is the same as -bmp).
64
+ British spellings are also accepted (e.g., -greyscale), though for brevity
65
+ these are not mentioned below.
66
+
67
+
68
+ CJPEG DETAILS
69
+
70
+ The basic command line switches for cjpeg are:
71
+
72
+ -quality N[,...] Scale quantization tables to adjust image quality.
73
+ Quality is 0 (worst) to 100 (best); default is 75.
74
+ (See below for more info.)
75
+
76
+ -grayscale Create monochrome JPEG file from color input.
77
+ Be sure to use this switch when compressing a grayscale
78
+ BMP file, because cjpeg isn't bright enough to notice
79
+ whether a BMP file uses only shades of gray. By
80
+ saying -grayscale, you'll get a smaller JPEG file that
81
+ takes less time to process.
82
+
83
+ -rgb Create RGB JPEG file.
84
+ Using this switch suppresses the conversion from RGB
85
+ colorspace input to the default YCbCr JPEG colorspace.
86
+
87
+ -optimize Perform optimization of entropy encoding parameters.
88
+ Without this, default encoding parameters are used.
89
+ -optimize usually makes the JPEG file a little smaller,
90
+ but cjpeg runs somewhat slower and needs much more
91
+ memory. Image quality and speed of decompression are
92
+ unaffected by -optimize.
93
+
94
+ -progressive Create progressive JPEG file (see below).
95
+
96
+ -targa Input file is Targa format. Targa files that contain
97
+ an "identification" field will not be automatically
98
+ recognized by cjpeg; for such files you must specify
99
+ -targa to make cjpeg treat the input as Targa format.
100
+ For most Targa files, you won't need this switch.
101
+
102
+ The -quality switch lets you trade off compressed file size against quality of
103
+ the reconstructed image: the higher the quality setting, the larger the JPEG
104
+ file, and the closer the output image will be to the original input. Normally
105
+ you want to use the lowest quality setting (smallest file) that decompresses
106
+ into something visually indistinguishable from the original image. For this
107
+ purpose the quality setting should be between 50 and 95; the default of 75 is
108
+ often about right. If you see defects at -quality 75, then go up 5 or 10
109
+ counts at a time until you are happy with the output image. (The optimal
110
+ setting will vary from one image to another.)
111
+
112
+ -quality 100 will generate a quantization table of all 1's, minimizing loss
113
+ in the quantization step (but there is still information loss in subsampling,
114
+ as well as roundoff error). This setting is mainly of interest for
115
+ experimental purposes. Quality values above about 95 are NOT recommended for
116
+ normal use; the compressed file size goes up dramatically for hardly any gain
117
+ in output image quality.
118
+
119
+ In the other direction, quality values below 50 will produce very small files
120
+ of low image quality. Settings around 5 to 10 might be useful in preparing an
121
+ index of a large image library, for example. Try -quality 2 (or so) for some
122
+ amusing Cubist effects. (Note: quality values below about 25 generate 2-byte
123
+ quantization tables, which are considered optional in the JPEG standard.
124
+ cjpeg emits a warning message when you give such a quality value, because some
125
+ other JPEG programs may be unable to decode the resulting file. Use -baseline
126
+ if you need to ensure compatibility at low quality values.)
127
+
128
+ The -quality option has been extended in this version of cjpeg to support
129
+ separate quality settings for luminance and chrominance (or, in general,
130
+ separate settings for every quantization table slot.) The principle is the
131
+ same as chrominance subsampling: since the human eye is more sensitive to
132
+ spatial changes in brightness than spatial changes in color, the chrominance
133
+ components can be quantized more than the luminance components without
134
+ incurring any visible image quality loss. However, unlike subsampling, this
135
+ feature reduces data in the frequency domain instead of the spatial domain,
136
+ which allows for more fine-grained control. This option is useful in
137
+ quality-sensitive applications, for which the artifacts generated by
138
+ subsampling may be unacceptable.
139
+
140
+ The -quality option accepts a comma-separated list of parameters, which
141
+ respectively refer to the quality levels that should be assigned to the
142
+ quantization table slots. If there are more q-table slots than parameters,
143
+ then the last parameter is replicated. Thus, if only one quality parameter is
144
+ given, this is used for both luminance and chrominance (slots 0 and 1,
145
+ respectively), preserving the legacy behavior of cjpeg v6b and prior. More (or
146
+ customized) quantization tables can be set with the -qtables option and
147
+ assigned to components with the -qslots option (see the "wizard" switches
148
+ below.)
149
+
150
+ JPEG files generated with separate luminance and chrominance quality are
151
+ fully compliant with standard JPEG decoders.
152
+
153
+ CAUTION: For this setting to be useful, be sure to pass an argument of
154
+ -sample 1x1 to cjpeg to disable chrominance subsampling. Otherwise, the
155
+ default subsampling level (2x2, AKA "4:2:0") will be used.
156
+
157
+ The -progressive switch creates a "progressive JPEG" file. In this type of
158
+ JPEG file, the data is stored in multiple scans of increasing quality. If the
159
+ file is being transmitted over a slow communications link, the decoder can use
160
+ the first scan to display a low-quality image very quickly, and can then
161
+ improve the display with each subsequent scan. The final image is exactly
162
+ equivalent to a standard JPEG file of the same quality setting, and the total
163
+ file size is about the same --- often a little smaller.
164
+
165
+ Switches for advanced users:
166
+
167
+ -arithmetic Use arithmetic coding. CAUTION: arithmetic coded JPEG
168
+ is not yet widely implemented, so many decoders will
169
+ be unable to view an arithmetic coded JPEG file at
170
+ all.
171
+
172
+ -dct int Use integer DCT method (default).
173
+ -dct fast Use fast integer DCT (less accurate).
174
+ In libjpeg-turbo, the fast method is generally about
175
+ 5-15% faster than the int method when using the
176
+ x86/x86-64 SIMD extensions (results may vary with other
177
+ SIMD implementations, or when using libjpeg-turbo
178
+ without SIMD extensions.) For quality levels of 90 and
179
+ below, there should be little or no perceptible
180
+ difference between the two algorithms. For quality
181
+ levels above 90, however, the difference between
182
+ the fast and the int methods becomes more pronounced.
183
+ With quality=97, for instance, the fast method incurs
184
+ generally about a 1-3 dB loss (in PSNR) relative to
185
+ the int method, but this can be larger for some images.
186
+ Do not use the fast method with quality levels above
187
+ 97. The algorithm often degenerates at quality=98 and
188
+ above and can actually produce a more lossy image than
189
+ if lower quality levels had been used. Also, in
190
+ libjpeg-turbo, the fast method is not fully accerated
191
+ for quality levels above 97, so it will be slower than
192
+ the int method.
193
+ -dct float Use floating-point DCT method.
194
+ The float method is mainly a legacy feature. It does
195
+ not produce significantly more accurate results than
196
+ the int method, and it is much slower. The float
197
+ method may also give different results on different
198
+ machines due to varying roundoff behavior, whereas the
199
+ integer methods should give the same results on all
200
+ machines.
201
+
202
+ -restart N Emit a JPEG restart marker every N MCU rows, or every
203
+ N MCU blocks if "B" is attached to the number.
204
+ -restart 0 (the default) means no restart markers.
205
+
206
+ -smooth N Smooth the input image to eliminate dithering noise.
207
+ N, ranging from 1 to 100, indicates the strength of
208
+ smoothing. 0 (the default) means no smoothing.
209
+
210
+ -maxmemory N Set limit for amount of memory to use in processing
211
+ large images. Value is in thousands of bytes, or
212
+ millions of bytes if "M" is attached to the number.
213
+ For example, -max 4m selects 4000000 bytes. If more
214
+ space is needed, temporary files will be used.
215
+
216
+ -verbose Enable debug printout. More -v's give more printout.
217
+ or -debug Also, version information is printed at startup.
218
+
219
+ The -restart option inserts extra markers that allow a JPEG decoder to
220
+ resynchronize after a transmission error. Without restart markers, any damage
221
+ to a compressed file will usually ruin the image from the point of the error
222
+ to the end of the image; with restart markers, the damage is usually confined
223
+ to the portion of the image up to the next restart marker. Of course, the
224
+ restart markers occupy extra space. We recommend -restart 1 for images that
225
+ will be transmitted across unreliable networks such as Usenet.
226
+
227
+ The -smooth option filters the input to eliminate fine-scale noise. This is
228
+ often useful when converting dithered images to JPEG: a moderate smoothing
229
+ factor of 10 to 50 gets rid of dithering patterns in the input file, resulting
230
+ in a smaller JPEG file and a better-looking image. Too large a smoothing
231
+ factor will visibly blur the image, however.
232
+
233
+ Switches for wizards:
234
+
235
+ -baseline Force baseline-compatible quantization tables to be
236
+ generated. This clamps quantization values to 8 bits
237
+ even at low quality settings. (This switch is poorly
238
+ named, since it does not ensure that the output is
239
+ actually baseline JPEG. For example, you can use
240
+ -baseline and -progressive together.)
241
+
242
+ -qtables file Use the quantization tables given in the specified
243
+ text file.
244
+
245
+ -qslots N[,...] Select which quantization table to use for each color
246
+ component.
247
+
248
+ -sample HxV[,...] Set JPEG sampling factors for each color component.
249
+
250
+ -scans file Use the scan script given in the specified text file.
251
+
252
+ The "wizard" switches are intended for experimentation with JPEG. If you
253
+ don't know what you are doing, DON'T USE THEM. These switches are documented
254
+ further in the file wizard.txt.
255
+
256
+
257
+ DJPEG DETAILS
258
+
259
+ The basic command line switches for djpeg are:
260
+
261
+ -colors N Reduce image to at most N colors. This reduces the
262
+ or -quantize N number of colors used in the output image, so that it
263
+ can be displayed on a colormapped display or stored in
264
+ a colormapped file format. For example, if you have
265
+ an 8-bit display, you'd need to reduce to 256 or fewer
266
+ colors. (-colors is the recommended name, -quantize
267
+ is provided only for backwards compatibility.)
268
+
269
+ -fast Select recommended processing options for fast, low
270
+ quality output. (The default options are chosen for
271
+ highest quality output.) Currently, this is equivalent
272
+ to "-dct fast -nosmooth -onepass -dither ordered".
273
+
274
+ -grayscale Force grayscale output even if JPEG file is color.
275
+ Useful for viewing on monochrome displays; also,
276
+ djpeg runs noticeably faster in this mode.
277
+
278
+ -scale M/N Scale the output image by a factor M/N. Currently
279
+ the scale factor must be M/8, where M is an integer
280
+ between 1 and 16 inclusive, or any reduced fraction
281
+ thereof (such as 1/2, 3/4, etc. Scaling is handy if
282
+ the image is larger than your screen; also, djpeg runs
283
+ much faster when scaling down the output.
284
+
285
+ -bmp Select BMP output format (Windows flavor). 8-bit
286
+ colormapped format is emitted if -colors or -grayscale
287
+ is specified, or if the JPEG file is grayscale;
288
+ otherwise, 24-bit full-color format is emitted.
289
+
290
+ -gif Select GIF output format. Since GIF does not support
291
+ more than 256 colors, -colors 256 is assumed (unless
292
+ you specify a smaller number of colors). If you
293
+ specify -fast, the default number of colors is 216.
294
+
295
+ -os2 Select BMP output format (OS/2 1.x flavor). 8-bit
296
+ colormapped format is emitted if -colors or -grayscale
297
+ is specified, or if the JPEG file is grayscale;
298
+ otherwise, 24-bit full-color format is emitted.
299
+
300
+ -pnm Select PBMPLUS (PPM/PGM) output format (this is the
301
+ default format). PGM is emitted if the JPEG file is
302
+ grayscale or if -grayscale is specified; otherwise
303
+ PPM is emitted.
304
+
305
+ -rle Select RLE output format. (Requires URT library.)
306
+
307
+ -targa Select Targa output format. Grayscale format is
308
+ emitted if the JPEG file is grayscale or if
309
+ -grayscale is specified; otherwise, colormapped format
310
+ is emitted if -colors is specified; otherwise, 24-bit
311
+ full-color format is emitted.
312
+
313
+ Switches for advanced users:
314
+
315
+ -dct int Use integer DCT method (default).
316
+ -dct fast Use fast integer DCT (less accurate).
317
+ In libjpeg-turbo, the fast method is generally about
318
+ 5-15% faster than the int method when using the
319
+ x86/x86-64 SIMD extensions (results may vary with other
320
+ SIMD implementations, or when using libjpeg-turbo
321
+ without SIMD extensions.) If the JPEG image was
322
+ compressed using a quality level of 85 or below, then
323
+ there should be little or no perceptible difference
324
+ between the two algorithms. When decompressing images
325
+ that were compressed using quality levels above 85,
326
+ however, the difference between the fast and int
327
+ methods becomes more pronounced. With images
328
+ compressed using quality=97, for instance, the fast
329
+ method incurs generally about a 4-6 dB loss (in PSNR)
330
+ relative to the int method, but this can be larger for
331
+ some images. If you can avoid it, do not use the fast
332
+ method when decompressing images that were compressed
333
+ using quality levels above 97. The algorithm often
334
+ degenerates for such images and can actually produce
335
+ a more lossy output image than if the JPEG image had
336
+ been compressed using lower quality levels.
337
+ -dct float Use floating-point DCT method.
338
+ The float method is mainly a legacy feature. It does
339
+   not produce significantly more accurate results than
340
+ the int method, and it is much slower. The float
341
+ method may also give different results on different
342
+ machines due to varying roundoff behavior, whereas the
343
+ integer methods should give the same results on all
344
+ machines.
345
+
346
+ -dither fs Use Floyd-Steinberg dithering in color quantization.
347
+ -dither ordered Use ordered dithering in color quantization.
348
+ -dither none Do not use dithering in color quantization.
349
+ By default, Floyd-Steinberg dithering is applied when
350
+ quantizing colors; this is slow but usually produces
351
+ the best results. Ordered dither is a compromise
352
+ between speed and quality; no dithering is fast but
353
+ usually looks awful. Note that these switches have
354
+ no effect unless color quantization is being done.
355
+ Ordered dither is only available in -onepass mode.
356
+
357
+ -map FILE Quantize to the colors used in the specified image
358
+ file. This is useful for producing multiple files
359
+ with identical color maps, or for forcing a predefined
360
+ set of colors to be used. The FILE must be a GIF
361
+ or PPM file. This option overrides -colors and
362
+ -onepass.
363
+
364
+ -nosmooth Use a faster, lower-quality upsampling routine.
365
+
366
+ -onepass Use one-pass instead of two-pass color quantization.
367
+ The one-pass method is faster and needs less memory,
368
+ but it produces a lower-quality image. -onepass is
369
+ ignored unless you also say -colors N. Also,
370
+ the one-pass method is always used for grayscale
371
+ output (the two-pass method is no improvement then).
372
+
373
+ -maxmemory N Set limit for amount of memory to use in processing
374
+ large images. Value is in thousands of bytes, or
375
+ millions of bytes if "M" is attached to the number.
376
+ For example, -max 4m selects 4000000 bytes. If more
377
+ space is needed, temporary files will be used.
378
+
379
+ -verbose Enable debug printout. More -v's give more printout.
380
+ or -debug Also, version information is printed at startup.
381
+
382
+
383
+ HINTS FOR CJPEG
384
+
385
+ Color GIF files are not the ideal input for JPEG; JPEG is really intended for
386
+ compressing full-color (24-bit) images. In particular, don't try to convert
387
+ cartoons, line drawings, and other images that have only a few distinct
388
+ colors. GIF works great on these, JPEG does not. If you want to convert a
389
+ GIF to JPEG, you should experiment with cjpeg's -quality and -smooth options
390
+ to get a satisfactory conversion. -smooth 10 or so is often helpful.
391
+
392
+ Avoid running an image through a series of JPEG compression/decompression
393
+ cycles. Image quality loss will accumulate; after ten or so cycles the image
394
+ may be noticeably worse than it was after one cycle. It's best to use a
395
+ lossless format while manipulating an image, then convert to JPEG format when
396
+ you are ready to file the image away.
397
+
398
+ The -optimize option to cjpeg is worth using when you are making a "final"
399
+ version for posting or archiving. It's also a win when you are using low
400
+ quality settings to make very small JPEG files; the percentage improvement
401
+ is often a lot more than it is on larger files. (At present, -optimize
402
+ mode is always selected when generating progressive JPEG files.)
403
+
404
+ Support for GIF input files was removed in cjpeg v6b due to concerns over
405
+ the Unisys LZW patent. Although this patent expired in 2006, cjpeg still
406
+ lacks GIF support, for these historical reasons. (Conversion of GIF files to
407
+ JPEG is usually a bad idea anyway.)
408
+
409
+
410
+ HINTS FOR DJPEG
411
+
412
+ To get a quick preview of an image, use the -grayscale and/or -scale switches.
413
+ "-grayscale -scale 1/8" is the fastest case.
414
+
415
+ Several options are available that trade off image quality to gain speed.
416
+ "-fast" turns on the recommended settings.
417
+
418
+ "-dct fast" and/or "-nosmooth" gain speed at a small sacrifice in quality.
419
+ When producing a color-quantized image, "-onepass -dither ordered" is fast but
420
+ much lower quality than the default behavior. "-dither none" may give
421
+ acceptable results in two-pass mode, but is seldom tolerable in one-pass mode.
422
+
423
+ Two-pass color quantization requires a good deal of memory; on MS-DOS machines
424
+ it may run out of memory even with -maxmemory 0. In that case you can still
425
+ decompress, with some loss of image quality, by specifying -onepass for
426
+ one-pass quantization.
427
+
428
+ To avoid the Unisys LZW patent, djpeg produces uncompressed GIF files. These
429
+ are larger than they should be, but are readable by standard GIF decoders.
430
+
431
+
432
+ HINTS FOR BOTH PROGRAMS
433
+
434
+ If more space is needed than will fit in the available main memory (as
435
+ determined by -maxmemory), temporary files will be used. (MS-DOS versions
436
+ will try to get extended or expanded memory first.) The temporary files are
437
+ often rather large: in typical cases they occupy three bytes per pixel, for
438
+ example 3*800*600 = 1.44Mb for an 800x600 image. If you don't have enough
439
+ free disk space, leave out -progressive and -optimize (for cjpeg) or specify
440
+ -onepass (for djpeg).
441
+
442
+ On MS-DOS, the temporary files are created in the directory named by the TMP
443
+ or TEMP environment variable, or in the current directory if neither of those
444
+ exist. Amiga implementations put the temp files in the directory named by
445
+ JPEGTMP:, so be sure to assign JPEGTMP: to a disk partition with adequate free
446
+ space.
447
+
448
+ The default memory usage limit (-maxmemory) is set when the software is
449
+ compiled. If you get an "insufficient memory" error, try specifying a smaller
450
+ -maxmemory value, even -maxmemory 0 to use the absolute minimum space. You
451
+ may want to recompile with a smaller default value if this happens often.
452
+
453
+ On machines that have "environment" variables, you can define the environment
454
+ variable JPEGMEM to set the default memory limit. The value is specified as
455
+ described for the -maxmemory switch. JPEGMEM overrides the default value
456
+ specified when the program was compiled, and itself is overridden by an
457
+ explicit -maxmemory switch.
458
+
459
+ On MS-DOS machines, -maxmemory is the amount of main (conventional) memory to
460
+ use. (Extended or expanded memory is also used if available.) Most
461
+ DOS-specific versions of this software do their own memory space estimation
462
+ and do not need you to specify -maxmemory.
463
+
464
+
465
+ JPEGTRAN
466
+
467
+ jpegtran performs various useful transformations of JPEG files.
468
+ It can translate the coded representation from one variant of JPEG to another,
469
+ for example from baseline JPEG to progressive JPEG or vice versa. It can also
470
+ perform some rearrangements of the image data, for example turning an image
471
+ from landscape to portrait format by rotation.
472
+
473
+ jpegtran works by rearranging the compressed data (DCT coefficients), without
474
+ ever fully decoding the image. Therefore, its transformations are lossless:
475
+ there is no image degradation at all, which would not be true if you used
476
+ djpeg followed by cjpeg to accomplish the same conversion. But by the same
477
+ token, jpegtran cannot perform lossy operations such as changing the image
478
+ quality.
479
+
480
+ jpegtran uses a command line syntax similar to cjpeg or djpeg.
481
+ On Unix-like systems, you say:
482
+ jpegtran [switches] [inputfile] >outputfile
483
+ On most non-Unix systems, you say:
484
+ jpegtran [switches] inputfile outputfile
485
+ where both the input and output files are JPEG files.
486
+
487
+ To specify the coded JPEG representation used in the output file,
488
+ jpegtran accepts a subset of the switches recognized by cjpeg:
489
+ -optimize Perform optimization of entropy encoding parameters.
490
+ -progressive Create progressive JPEG file.
491
+ -arithmetic Use arithmetic coding.
492
+ -restart N Emit a JPEG restart marker every N MCU rows, or every
493
+ N MCU blocks if "B" is attached to the number.
494
+ -scans file Use the scan script given in the specified text file.
495
+ See the previous discussion of cjpeg for more details about these switches.
496
+ If you specify none of these switches, you get a plain baseline-JPEG output
497
+ file. The quality setting and so forth are determined by the input file.
498
+
499
+ The image can be losslessly transformed by giving one of these switches:
500
+ -flip horizontal Mirror image horizontally (left-right).
501
+ -flip vertical Mirror image vertically (top-bottom).
502
+ -rotate 90 Rotate image 90 degrees clockwise.
503
+ -rotate 180 Rotate image 180 degrees.
504
+ -rotate 270 Rotate image 270 degrees clockwise (or 90 ccw).
505
+ -transpose Transpose image (across UL-to-LR axis).
506
+ -transverse Transverse transpose (across UR-to-LL axis).
507
+
508
+ The transpose transformation has no restrictions regarding image dimensions.
509
+ The other transformations operate rather oddly if the image dimensions are not
510
+ a multiple of the iMCU size (usually 8 or 16 pixels), because they can only
511
+ transform complete blocks of DCT coefficient data in the desired way.
512
+
513
+ jpegtran's default behavior when transforming an odd-size image is designed
514
+ to preserve exact reversibility and mathematical consistency of the
515
+ transformation set. As stated, transpose is able to flip the entire image
516
+ area. Horizontal mirroring leaves any partial iMCU column at the right edge
517
+ untouched, but is able to flip all rows of the image. Similarly, vertical
518
+ mirroring leaves any partial iMCU row at the bottom edge untouched, but is
519
+ able to flip all columns. The other transforms can be built up as sequences
520
+ of transpose and flip operations; for consistency, their actions on edge
521
+ pixels are defined to be the same as the end result of the corresponding
522
+ transpose-and-flip sequence.
523
+
524
+ For practical use, you may prefer to discard any untransformable edge pixels
525
+ rather than having a strange-looking strip along the right and/or bottom edges
526
+ of a transformed image. To do this, add the -trim switch:
527
+ -trim Drop non-transformable edge blocks.
528
+ Obviously, a transformation with -trim is not reversible, so strictly speaking
529
+ jpegtran with this switch is not lossless. Also, the expected mathematical
530
+ equivalences between the transformations no longer hold. For example,
531
+ "-rot 270 -trim" trims only the bottom edge, but "-rot 90 -trim" followed by
532
+ "-rot 180 -trim" trims both edges.
533
+
534
+ If you are only interested in perfect transformations, add the -perfect switch:
535
+ -perfect Fail with an error if the transformation is not
536
+ perfect.
537
+ For example, you may want to do
538
+ jpegtran -rot 90 -perfect foo.jpg || djpeg foo.jpg | pnmflip -r90 | cjpeg
539
+ to do a perfect rotation, if available, or an approximated one if not.
540
+
541
+ This version of jpegtran also offers a lossless crop option, which discards
542
+ data outside of a given image region but losslessly preserves what is inside.
543
+ Like the rotate and flip transforms, lossless crop is restricted by the current
544
+ JPEG format; the upper left corner of the selected region must fall on an iMCU
545
+ boundary. If it doesn't, then it is silently moved up and/or left to the
546
+ nearest iMCU boundary (the lower right corner is unchanged.)
547
+
548
+ The image can be losslessly cropped by giving the switch:
549
+ -crop WxH+X+Y Crop to a rectangular region of width W and height H,
550
+ starting at point X,Y.
551
+
552
+ Other not-strictly-lossless transformation switches are:
553
+
554
+ -grayscale Force grayscale output.
555
+ This option discards the chrominance channels if the input image is YCbCr
556
+ (ie, a standard color JPEG), resulting in a grayscale JPEG file. The
557
+ luminance channel is preserved exactly, so this is a better method of reducing
558
+ to grayscale than decompression, conversion, and recompression. This switch
559
+ is particularly handy for fixing a monochrome picture that was mistakenly
560
+ encoded as a color JPEG. (In such a case, the space savings from getting rid
561
+ of the near-empty chroma channels won't be large; but the decoding time for
562
+ a grayscale JPEG is substantially less than that for a color JPEG.)
563
+
564
+ jpegtran also recognizes these switches that control what to do with "extra"
565
+ markers, such as comment blocks:
566
+ -copy none Copy no extra markers from source file. This setting
567
+ suppresses all comments and other excess baggage
568
+ present in the source file.
569
+ -copy comments Copy only comment markers. This setting copies
570
+ comments from the source file but discards
571
+ any other data that is inessential for image display.
572
+ -copy all Copy all extra markers. This setting preserves
573
+ miscellaneous markers found in the source file, such
574
+ as JFIF thumbnails, Exif data, and Photoshop settings.
575
+ In some files, these extra markers can be sizable.
576
+ The default behavior is -copy comments. (Note: in IJG releases v6 and v6a,
577
+ jpegtran always did the equivalent of -copy none.)
578
+
579
+ Additional switches recognized by jpegtran are:
580
+ -outfile filename
581
+ -maxmemory N
582
+ -verbose
583
+ -debug
584
+ These work the same as in cjpeg or djpeg.
585
+
586
+
587
+ THE COMMENT UTILITIES
588
+
589
+ The JPEG standard allows "comment" (COM) blocks to occur within a JPEG file.
590
+ Although the standard doesn't actually define what COM blocks are for, they
591
+ are widely used to hold user-supplied text strings. This lets you add
592
+ annotations, titles, index terms, etc to your JPEG files, and later retrieve
593
+ them as text. COM blocks do not interfere with the image stored in the JPEG
594
+ file. The maximum size of a COM block is 64K, but you can have as many of
595
+ them as you like in one JPEG file.
596
+
597
+ We provide two utility programs to display COM block contents and add COM
598
+ blocks to a JPEG file.
599
+
600
+ rdjpgcom searches a JPEG file and prints the contents of any COM blocks on
601
+ standard output. The command line syntax is
602
+ rdjpgcom [-raw] [-verbose] [inputfilename]
603
+ The switch "-raw" (or just "-r") causes rdjpgcom to output non-printable
604
+ characters in JPEG comments. These characters are normally escaped for
605
+ security reasons.
606
+ The switch "-verbose" (or just "-v") causes rdjpgcom to also display the JPEG
607
+ image dimensions. If you omit the input file name from the command line,
608
+ the JPEG file is read from standard input. (This may not work on some
609
+ operating systems, if binary data can't be read from stdin.)
610
+
611
+ wrjpgcom adds a COM block, containing text you provide, to a JPEG file.
612
+ Ordinarily, the COM block is added after any existing COM blocks, but you
613
+ can delete the old COM blocks if you wish. wrjpgcom produces a new JPEG
614
+ file; it does not modify the input file. DO NOT try to overwrite the input
615
+ file by directing wrjpgcom's output back into it; on most systems this will
616
+ just destroy your file.
617
+
618
+ The command line syntax for wrjpgcom is similar to cjpeg's. On Unix-like
619
+ systems, it is
620
+ wrjpgcom [switches] [inputfilename]
621
+ The output file is written to standard output. The input file comes from
622
+ the named file, or from standard input if no input file is named.
623
+
624
+ On most non-Unix systems, the syntax is
625
+ wrjpgcom [switches] inputfilename outputfilename
626
+ where both input and output file names must be given explicitly.
627
+
628
+ wrjpgcom understands three switches:
629
+ -replace Delete any existing COM blocks from the file.
630
+ -comment "Comment text" Supply new COM text on command line.
631
+ -cfile name Read text for new COM block from named file.
632
+ (Switch names can be abbreviated.) If you have only one line of comment text
633
+ to add, you can provide it on the command line with -comment. The comment
634
+ text must be surrounded with quotes so that it is treated as a single
635
+ argument. Longer comments can be read from a text file.
636
+
637
+ If you give neither -comment nor -cfile, then wrjpgcom will read the comment
638
+ text from standard input. (In this case an input image file name MUST be
639
+ supplied, so that the source JPEG file comes from somewhere else.) You can
640
+ enter multiple lines, up to 64KB worth. Type an end-of-file indicator
641
+ (usually control-D or control-Z) to terminate the comment text entry.
642
+
643
+ wrjpgcom will not add a COM block if the provided comment string is empty.
644
+ Therefore -replace -comment "" can be used to delete all COM blocks from a
645
+ file.
646
+
647
+ These utility programs do not depend on the IJG JPEG library. In
648
+ particular, the source code for rdjpgcom is intended as an illustration of
649
+ the minimum amount of code required to parse a JPEG file header correctly.