Merge commit '15274b901acb75d6d2433e8578f3cfbc6f4f5fd9' into mozjpeg
* commit '15274b901acb75d6d2433e8578f3cfbc6f4f5fd9': (98 commits)
AppVeyor: Use SignPath release cert/only sign tags
xform fuzz: Use only xform opts to set entropy alg
jchuff.c: Test for out-of-range coefficients
turbojpeg.h: Make customFilter() proto match doc
ChangeLog.md: Fix typo
djpeg: Fix -map option with 12-bit data precision
Disallow color quantization with lossless decomp
tj3Transform: Calc dst buf size from xformed dims
README.md: Include link to project home page
AppVeyor: Only add installers to zip file
AppVeyor: Integrate with SignPath.io
Fix build warnings/errs w/ -DNO_GETENV/-DNO_PUTENV
GitHub: Fix x32 build
Bump version to 3.0.0
tjexample.c: Prevent integer overflow
Disallow merged upsampling with lossless decomp
SECURITY.md: Wordsmithing and clarifications
GitHub: Add security policy
ChangeLog.md: List CVE ID fixed by 9f756bc6
jpeg_crop_scanline: Fix calc w/sclg + 2x4,4x2 samp
...
This commit is contained in:
@@ -307,15 +307,6 @@ API/ABI-compatible with libjpeg v8. See [README.md](README.md) for more
|
|||||||
information about libjpeg v7 and v8 emulation.
|
information about libjpeg v7 and v8 emulation.
|
||||||
|
|
||||||
|
|
||||||
### In-Memory Source/Destination Managers
|
|
||||||
|
|
||||||
When using libjpeg v6b or v7 API/ABI emulation, add `-DWITH_MEM_SRCDST=0` to
|
|
||||||
the CMake command line to build a version of libjpeg-turbo that lacks the
|
|
||||||
`jpeg_mem_src()` and `jpeg_mem_dest()` functions. These functions were not
|
|
||||||
part of the original libjpeg v6b and v7 APIs, so removing them ensures strict
|
|
||||||
conformance with those APIs. See [README.md](README.md) for more information.
|
|
||||||
|
|
||||||
|
|
||||||
### Arithmetic Coding Support
|
### Arithmetic Coding Support
|
||||||
|
|
||||||
Since the patent on arithmetic coding has expired, this functionality has been
|
Since the patent on arithmetic coding has expired, this functionality has been
|
||||||
|
|||||||
1408
CMakeLists.txt
1408
CMakeLists.txt
File diff suppressed because it is too large
Load Diff
195
ChangeLog.md
195
ChangeLog.md
@@ -1,15 +1,33 @@
|
|||||||
2.1.6
|
3.0.0
|
||||||
=====
|
=====
|
||||||
|
|
||||||
### Significant changes relative to 2.1.5.1:
|
### Significant changes relative to 3.0 beta2:
|
||||||
|
|
||||||
1. Fixed an oversight in 1.4 beta1[8] that caused various segfaults and buffer
|
1. The TurboJPEG API now supports 4:4:1 (transposed 4:1:1) chrominance
|
||||||
|
subsampling, which allows losslessly transposed or rotated 4:1:1 JPEG images to
|
||||||
|
be losslessly cropped, partially decompressed, or decompressed to planar YUV
|
||||||
|
images.
|
||||||
|
|
||||||
|
2. Fixed various segfaults and buffer overruns (CVE-2023-2804) that occurred
|
||||||
|
when attempting to decompress various specially-crafted malformed
|
||||||
|
12-bit-per-component and 16-bit-per-component lossless JPEG images using color
|
||||||
|
quantization or merged chroma upsampling/color conversion. The underlying
|
||||||
|
cause of these issues was that the color quantization and merged chroma
|
||||||
|
upsampling/color conversion algorithms were not designed with lossless
|
||||||
|
decompression in mind. Since libjpeg-turbo explicitly does not support color
|
||||||
|
conversion when compressing or decompressing lossless JPEG images, merged
|
||||||
|
chroma upsampling/color conversion never should have been enabled for such
|
||||||
|
images. Color quantization is a legacy feature that serves little or no
|
||||||
|
purpose with lossless JPEG images, so it is also now disabled when
|
||||||
|
decompressing such images. (As a result, djpeg can no longer decompress a
|
||||||
|
lossless JPEG image into a GIF image.)
|
||||||
|
|
||||||
|
3. Fixed an oversight in 1.4 beta1[8] that caused various segfaults and buffer
|
||||||
overruns when attempting to decompress various specially-crafted malformed
|
overruns when attempting to decompress various specially-crafted malformed
|
||||||
12-bit-per-component JPEG images using a 12-bit-per-component build of djpeg
|
12-bit-per-component JPEG images using djpeg with both color quantization and
|
||||||
(`-DWITH_12BIT=1`) with both color quantization and RGB565 color conversion
|
RGB565 color conversion enabled.
|
||||||
enabled.
|
|
||||||
|
|
||||||
2. Fixed an issue whereby `jpeg_crop_scanline()` sometimes miscalculated the
|
4. Fixed an issue whereby `jpeg_crop_scanline()` sometimes miscalculated the
|
||||||
downsampled width for components with 4x2 or 2x4 subsampling factors if
|
downsampled width for components with 4x2 or 2x4 subsampling factors if
|
||||||
decompression scaling was enabled. This caused the components to be upsampled
|
decompression scaling was enabled. This caused the components to be upsampled
|
||||||
incompletely, which caused the color converter to read from uninitialized
|
incompletely, which caused the color converter to read from uninitialized
|
||||||
@@ -17,7 +35,7 @@ memory. With 12-bit data precision, this caused a buffer overrun or underrun
|
|||||||
and subsequent segfault if the sample value read from uninitialized memory was
|
and subsequent segfault if the sample value read from uninitialized memory was
|
||||||
outside of the valid sample range.
|
outside of the valid sample range.
|
||||||
|
|
||||||
3. Fixed a long-standing issue whereby the `tjTransform()` function, when used
|
5. Fixed a long-standing issue whereby the `tj3Transform()` function, when used
|
||||||
with the `TJXOP_TRANSPOSE`, `TJXOP_TRANSVERSE`, `TJXOP_ROT90`, or
|
with the `TJXOP_TRANSPOSE`, `TJXOP_TRANSVERSE`, `TJXOP_ROT90`, or
|
||||||
`TJXOP_ROT270` transform operation and without automatic JPEG destination
|
`TJXOP_ROT270` transform operation and without automatic JPEG destination
|
||||||
buffer (re)allocation or lossless cropping, computed the worst-case transformed
|
buffer (re)allocation or lossless cropping, computed the worst-case transformed
|
||||||
@@ -25,23 +43,158 @@ JPEG image size based on the source image dimensions rather than the
|
|||||||
transformed image dimensions. If a calling program allocated the JPEG
|
transformed image dimensions. If a calling program allocated the JPEG
|
||||||
destination buffer based on the transformed image dimensions, as the API
|
destination buffer based on the transformed image dimensions, as the API
|
||||||
documentation instructs, and attempted to transform a specially-crafted 4:2:2,
|
documentation instructs, and attempted to transform a specially-crafted 4:2:2,
|
||||||
4:4:0, or 4:1:1 JPEG source image containing a large amount of metadata, the
|
4:4:0, 4:1:1, or 4:4:1 JPEG source image containing a large amount of metadata,
|
||||||
issue caused `tjTransform()` to overflow the JPEG destination buffer rather
|
the issue caused `tj3Transform()` to overflow the JPEG destination buffer
|
||||||
than fail gracefully. The issue could be worked around by setting
|
rather than fail gracefully. The issue could be worked around by setting
|
||||||
`TJXOPT_COPYNONE`. Note that, irrespective of this issue, `tjTransform()`
|
`TJXOPT_COPYNONE`. Note that, irrespective of this issue, `tj3Transform()`
|
||||||
cannot reliably transform JPEG source images that contain a large amount of
|
cannot reliably transform JPEG source images that contain a large amount of
|
||||||
metadata unless automatic JPEG destination buffer (re)allocation is used or
|
metadata unless automatic JPEG destination buffer (re)allocation is used or
|
||||||
`TJXOPT_COPYNONE` is set.
|
`TJXOPT_COPYNONE` is set.
|
||||||
|
|
||||||
4. Fixed an issue that caused the C Huffman encoder (which is not used by
|
6. Fixed a regression introduced by 3.0 beta2[6] that prevented the djpeg
|
||||||
|
`-map` option from working when decompressing 12-bit-per-component lossy JPEG
|
||||||
|
images.
|
||||||
|
|
||||||
|
7. Fixed an issue that caused the C Huffman encoder (which is not used by
|
||||||
default on x86 and Arm CPUs) to read from uninitialized memory when attempting
|
default on x86 and Arm CPUs) to read from uninitialized memory when attempting
|
||||||
to transform a specially-crafted malformed arithmetic-coded JPEG source image
|
to transform a specially-crafted malformed arithmetic-coded JPEG source image
|
||||||
into a baseline Huffman-coded JPEG destination image.
|
into a baseline Huffman-coded JPEG destination image.
|
||||||
|
|
||||||
5. Fixed two minor issues in the interblock smoothing algorithm that caused
|
|
||||||
mathematical (but not necessarily perceptible) edge block errors when
|
2.1.91 (3.0 beta2)
|
||||||
decompressing progressive JPEG images exactly two MCU blocks in width or that
|
==================
|
||||||
use vertical chrominance subsampling.
|
|
||||||
|
### Significant changes relative to 2.1.5.1:
|
||||||
|
|
||||||
|
1. Significantly sped up the computation of optimal Huffman tables. This
|
||||||
|
speeds up the compression of tiny images by as much as 2x and provides a
|
||||||
|
noticeable speedup for images as large as 256x256 when using optimal Huffman
|
||||||
|
tables.
|
||||||
|
|
||||||
|
2. All deprecated fields, constructors, and methods in the TurboJPEG Java API
|
||||||
|
have been removed.
|
||||||
|
|
||||||
|
3. Arithmetic entropy coding is now supported with 12-bit-per-component JPEG
|
||||||
|
images.
|
||||||
|
|
||||||
|
4. Overhauled the TurboJPEG API to address long-standing limitations and to
|
||||||
|
make the API more extensible and intuitive:
|
||||||
|
|
||||||
|
- All C function names are now prefixed with `tj3`, and all version
|
||||||
|
suffixes have been removed from the function names. Future API overhauls will
|
||||||
|
increment the prefix to `tj4`, etc., thus retaining backward API/ABI
|
||||||
|
compatibility without versioning each individual function.
|
||||||
|
- Stateless boolean flags have been replaced with stateful integer API
|
||||||
|
parameters, the values of which persist between function calls. New
|
||||||
|
functions/methods (`tj3Set()`/`TJCompressor.set()`/`TJDecompressor.set()` and
|
||||||
|
`tj3Get()`/`TJCompressor.get()`/`TJDecompressor.get()`) can be used to set and
|
||||||
|
query the value of a particular API parameter.
|
||||||
|
- The JPEG quality and subsampling are now implemented using API
|
||||||
|
parameters rather than stateless function arguments (C) or dedicated set/get
|
||||||
|
methods (Java.)
|
||||||
|
- `tj3DecompressHeader()` now stores all relevant information about the
|
||||||
|
JPEG image, including the width, height, subsampling type, entropy coding
|
||||||
|
algorithm, etc., in API parameters rather than returning that information
|
||||||
|
through pointer arguments.
|
||||||
|
- `TJFLAG_LIMITSCANS`/`TJ.FLAG_LIMITSCANS` has been reimplemented as an
|
||||||
|
API parameter (`TJPARAM_SCANLIMIT`/`TJ.PARAM_SCANLIMIT`) that allows the number
|
||||||
|
of scans to be specified.
|
||||||
|
- Optimized baseline entropy coding (the computation of optimal Huffman
|
||||||
|
tables, as opposed to using the default Huffman tables) can now be specified,
|
||||||
|
using a new API parameter (`TJPARAM_OPTIMIZE`/`TJ.PARAM_OPTIMIZE`), a new
|
||||||
|
transform option (`TJXOPT_OPTIMIZE`/`TJTransform.OPT_OPTIMIZE`), and a new
|
||||||
|
TJBench option (`-optimize`.)
|
||||||
|
- Arithmetic entropy coding can now be specified or queried, using a new
|
||||||
|
API parameter (`TJPARAM_ARITHMETIC`/`TJ.PARAM_ARITHMETIC`), a new transform
|
||||||
|
option (`TJXOPT_ARITHMETIC`/`TJTransform.OPT_ARITHMETIC`), and a new TJBench
|
||||||
|
option (`-arithmetic`.)
|
||||||
|
- The restart marker interval can now be specified, using new API
|
||||||
|
parameters (`TJPARAM_RESTARTROWS`/`TJ.PARAM_RESTARTROWS` and
|
||||||
|
`TJPARAM_RESTARTBLOCKS`/`TJ.PARAM_RESTARTBLOCKS`) and a new TJBench option
|
||||||
|
(`-restart`.)
|
||||||
|
- Pixel density can now be specified or queried, using new API parameters
|
||||||
|
(`TJPARAM_XDENSITY`/`TJ.PARAM_XDENSITY`,
|
||||||
|
`TJPARAM_YDENSITY`/`TJ.PARAM_YDENSITY`, and
|
||||||
|
`TJPARAM_DENSITYUNITS`/`TJ.PARAM_DENSITYUNITS`.)
|
||||||
|
- The accurate DCT/IDCT algorithms are now the default for both
|
||||||
|
compression and decompression, since the "fast" algorithms are considered to be
|
||||||
|
a legacy feature. (The "fast" algorithms do not pass the ISO compliance tests,
|
||||||
|
and those algorithms are not any faster than the accurate algorithms on modern
|
||||||
|
x86 CPUs.)
|
||||||
|
- All C initialization functions have been combined into a single function
|
||||||
|
(`tj3Init()`) that accepts an integer argument specifying the subsystems to
|
||||||
|
initialize.
|
||||||
|
- All C functions now use the `const` keyword for pointer arguments that
|
||||||
|
point to unmodified buffers (and for both dimensions of pointer arguments that
|
||||||
|
point to sets of unmodified buffers.)
|
||||||
|
- All C functions now use `size_t` rather than `unsigned long` to
|
||||||
|
represent buffer sizes, for compatibility with `malloc()` and to avoid
|
||||||
|
disparities in the size of `unsigned long` between LP64 (Un*x) and LLP64
|
||||||
|
(Windows) operating systems.
|
||||||
|
- All C buffer size functions now return 0 if an error occurs, rather than
|
||||||
|
trying to awkwardly return -1 in an unsigned data type (which could easily be
|
||||||
|
misinterpreted as a very large value.)
|
||||||
|
- Decompression scaling is now enabled explicitly, using a new
|
||||||
|
function/method (`tj3SetScalingFactor()`/`TJDecompressor.setScalingFactor()`),
|
||||||
|
rather than implicitly using awkward "desired width"/"desired height"
|
||||||
|
arguments.
|
||||||
|
- Partial image decompression has been implemented, using a new
|
||||||
|
function/method (`tj3SetCroppingRegion()`/`TJDecompressor.setCroppingRegion()`)
|
||||||
|
and a new TJBench option (`-crop`.)
|
||||||
|
- The JPEG colorspace can now be specified explicitly when compressing,
|
||||||
|
using a new API parameter (`TJPARAM_COLORSPACE`/`TJ.PARAM_COLORSPACE`.) This
|
||||||
|
allows JPEG images with the RGB and CMYK colorspaces to be created.
|
||||||
|
- TJBench no longer generates error/difference images, since identical
|
||||||
|
functionality is already available in ImageMagick.
|
||||||
|
- JPEG images with unknown subsampling configurations can now be
|
||||||
|
fully decompressed into packed-pixel images or losslessly transformed (with the
|
||||||
|
exception of lossless cropping.) They cannot currently be partially
|
||||||
|
decompressed or decompressed into planar YUV images.
|
||||||
|
- `tj3Destroy()` now silently accepts a NULL handle.
|
||||||
|
- `tj3Alloc()` and `tj3Free()` now return/accept void pointers, as
|
||||||
|
`malloc()` and `free()` do.
|
||||||
|
- The C image I/O functions now accept a TurboJPEG instance handle, which
|
||||||
|
is used to transmit/receive API parameter values and to receive error
|
||||||
|
information.
|
||||||
|
|
||||||
|
5. Added support for 8-bit-per-component, 12-bit-per-component, and
|
||||||
|
16-bit-per-component lossless JPEG images. A new libjpeg API function
|
||||||
|
(`jpeg_enable_lossless()`), TurboJPEG API parameters
|
||||||
|
(`TJPARAM_LOSSLESS`/`TJ.PARAM_LOSSLESS`,
|
||||||
|
`TJPARAM_LOSSLESSPSV`/`TJ.PARAM_LOSSLESSPSV`, and
|
||||||
|
`TJPARAM_LOSSLESSPT`/`TJ.PARAM_LOSSLESSPT`), and a cjpeg/TJBench option
|
||||||
|
(`-lossless`) can be used to create a lossless JPEG image. (Decompression of
|
||||||
|
lossless JPEG images is handled automatically.) Refer to
|
||||||
|
[libjpeg.txt](libjpeg.txt), [usage.txt](usage.txt), and the TurboJPEG API
|
||||||
|
documentation for more details.
|
||||||
|
|
||||||
|
6. Added support for 12-bit-per-component (lossy and lossless) and
|
||||||
|
16-bit-per-component (lossless) JPEG images to the libjpeg and TurboJPEG APIs:
|
||||||
|
|
||||||
|
- The existing `data_precision` field in `jpeg_compress_struct` and
|
||||||
|
`jpeg_decompress_struct` has been repurposed to enable the creation of
|
||||||
|
12-bit-per-component and 16-bit-per-component JPEG images or to detect whether
|
||||||
|
a 12-bit-per-component or 16-bit-per-component JPEG image is being
|
||||||
|
decompressed.
|
||||||
|
- New 12-bit-per-component and 16-bit-per-component versions of
|
||||||
|
`jpeg_write_scanlines()` and `jpeg_read_scanlines()`, as well as new
|
||||||
|
12-bit-per-component versions of `jpeg_write_raw_data()`,
|
||||||
|
`jpeg_skip_scanlines()`, `jpeg_crop_scanline()`, and `jpeg_read_raw_data()`,
|
||||||
|
provide interfaces for compressing from/decompressing to 12-bit-per-component
|
||||||
|
and 16-bit-per-component packed-pixel and planar YUV image buffers.
|
||||||
|
- New 12-bit-per-component and 16-bit-per-component compression,
|
||||||
|
decompression, and image I/O functions/methods have been added to the TurboJPEG
|
||||||
|
API, and a new API parameter (`TJPARAM_PRECISION`/`TJ.PARAM_PRECISION`) can be
|
||||||
|
used to query the data precision of a JPEG image. (YUV functions are currently
|
||||||
|
limited to 8-bit data precision but can be expanded to accommodate 12-bit data
|
||||||
|
precision in the future, if such is deemed beneficial.)
|
||||||
|
- A new cjpeg and TJBench command-line argument (`-precision`) can be used
|
||||||
|
to create a 12-bit-per-component or 16-bit-per-component JPEG image.
|
||||||
|
(Decompression and transformation of 12-bit-per-component and
|
||||||
|
16-bit-per-component JPEG images is handled automatically.)
|
||||||
|
|
||||||
|
Refer to [libjpeg.txt](libjpeg.txt), [usage.txt](usage.txt), and the
|
||||||
|
TurboJPEG API documentation for more details.
|
||||||
|
|
||||||
|
|
||||||
2.1.5.1
|
2.1.5.1
|
||||||
@@ -245,9 +398,9 @@ transform a specially-crafted malformed JPEG image.
|
|||||||
|
|
||||||
### Significant changes relative to 2.1 beta1:
|
### Significant changes relative to 2.1 beta1:
|
||||||
|
|
||||||
1. Fixed a regression (CVE-2021-29390) introduced by 2.1 beta1[6(b)] whereby
|
1. Fixed a regression introduced by 2.1 beta1[6(b)] whereby attempting to
|
||||||
attempting to decompress certain progressive JPEG images with one or more
|
decompress certain progressive JPEG images with one or more component planes of
|
||||||
component planes of width 8 or less caused a buffer overrun.
|
width 8 or less caused a buffer overrun.
|
||||||
|
|
||||||
2. Fixed a regression introduced by 2.1 beta1[6(b)] whereby attempting to
|
2. Fixed a regression introduced by 2.1 beta1[6(b)] whereby attempting to
|
||||||
decompress a specially-crafted malformed progressive JPEG image caused the
|
decompress a specially-crafted malformed progressive JPEG image caused the
|
||||||
@@ -1486,7 +1639,7 @@ features (such as the colorspace extensions), but in general, it performs no
|
|||||||
faster than libjpeg v6b.
|
faster than libjpeg v6b.
|
||||||
|
|
||||||
14. Added ARM 64-bit SIMD acceleration for the YCC-to-RGB color conversion
|
14. Added ARM 64-bit SIMD acceleration for the YCC-to-RGB color conversion
|
||||||
and IDCT algorithms (both are used during JPEG decompression.) For unknown
|
and IDCT algorithms (both are used during JPEG decompression.) For
|
||||||
reasons (probably related to clang), this code cannot currently be compiled for
|
reasons (probably related to clang), this code cannot currently be compiled for
|
||||||
iOS.
|
iOS.
|
||||||
|
|
||||||
|
|||||||
24
README.ijg
24
README.ijg
@@ -43,7 +43,7 @@ User documentation:
|
|||||||
change.log Version-to-version change highlights.
|
change.log Version-to-version change highlights.
|
||||||
Programmer and internal documentation:
|
Programmer and internal documentation:
|
||||||
libjpeg.txt How to use the JPEG library in your own programs.
|
libjpeg.txt How to use the JPEG library in your own programs.
|
||||||
example.txt Sample code for calling the JPEG library.
|
example.c Sample code for calling the JPEG library.
|
||||||
structure.txt Overview of the JPEG library's internal structure.
|
structure.txt Overview of the JPEG library's internal structure.
|
||||||
coderules.txt Coding style rules --- please read if you contribute code.
|
coderules.txt Coding style rules --- please read if you contribute code.
|
||||||
|
|
||||||
@@ -68,17 +68,17 @@ other abrupt features may not compress well with JPEG, and a higher JPEG
|
|||||||
quality may have to be used to avoid visible compression artifacts with such
|
quality may have to be used to avoid visible compression artifacts with such
|
||||||
images.
|
images.
|
||||||
|
|
||||||
JPEG is lossy, meaning that the output pixels are not necessarily identical to
|
JPEG is normally lossy, meaning that the output pixels are not necessarily
|
||||||
the input pixels. However, on photographic content and other "smooth" images,
|
identical to the input pixels. However, on photographic content and other
|
||||||
very good compression ratios can be obtained with no visible compression
|
"smooth" images, very good compression ratios can be obtained with no visible
|
||||||
artifacts, and extremely high compression ratios are possible if you are
|
compression artifacts, and extremely high compression ratios are possible if
|
||||||
willing to sacrifice image quality (by reducing the "quality" setting in the
|
you are willing to sacrifice image quality (by reducing the "quality" setting
|
||||||
compressor.)
|
in the compressor.)
|
||||||
|
|
||||||
This software implements JPEG baseline, extended-sequential, and progressive
|
This software implements JPEG baseline, extended-sequential, progressive, and
|
||||||
compression processes. Provision is made for supporting all variants of these
|
lossless compression processes. Provision is made for supporting all variants
|
||||||
processes, although some uncommon parameter settings aren't implemented yet.
|
of these processes, although some uncommon parameter settings aren't
|
||||||
We have made no provision for supporting the hierarchical or lossless
|
implemented yet. We have made no provision for supporting the hierarchical
|
||||||
processes defined in the standard.
|
processes defined in the standard.
|
||||||
|
|
||||||
We provide a set of library routines for reading and writing JPEG image files,
|
We provide a set of library routines for reading and writing JPEG image files,
|
||||||
@@ -241,7 +241,7 @@ This software implements ITU T.81 | ISO/IEC 10918 with some extensions from
|
|||||||
ITU T.871 | ISO/IEC 10918-5 (JPEG File Interchange Format-- see REFERENCES).
|
ITU T.871 | ISO/IEC 10918-5 (JPEG File Interchange Format-- see REFERENCES).
|
||||||
Informally, the term "JPEG image" or "JPEG file" most often refers to JFIF or
|
Informally, the term "JPEG image" or "JPEG file" most often refers to JFIF or
|
||||||
a subset thereof, but there are other formats containing the name "JPEG" that
|
a subset thereof, but there are other formats containing the name "JPEG" that
|
||||||
are incompatible with the DCT-based JPEG standard or with JFIF (for instance,
|
are incompatible with the original JPEG standard or with JFIF (for instance,
|
||||||
JPEG 2000 and JPEG XR). This software therefore does not support these
|
JPEG 2000 and JPEG XR). This software therefore does not support these
|
||||||
formats. Indeed, one of the original reasons for developing this free software
|
formats. Indeed, one of the original reasons for developing this free software
|
||||||
was to help force convergence on a common, interoperable format standard for
|
was to help force convergence on a common, interoperable format standard for
|
||||||
|
|||||||
28
cdjpeg.h
28
cdjpeg.h
@@ -5,7 +5,7 @@
|
|||||||
* Copyright (C) 1994-1997, Thomas G. Lane.
|
* Copyright (C) 1994-1997, Thomas G. Lane.
|
||||||
* Modified 2019 by Guido Vollbeding.
|
* Modified 2019 by Guido Vollbeding.
|
||||||
* libjpeg-turbo Modifications:
|
* libjpeg-turbo Modifications:
|
||||||
* Copyright (C) 2017, 2019, 2021, D. R. Commander.
|
* Copyright (C) 2017, 2019, 2021-2022, D. R. Commander.
|
||||||
* Copyright (C) 2014, Mozilla Corporation.
|
* Copyright (C) 2014, Mozilla Corporation.
|
||||||
* For conditions of distribution and use, see the accompanying README.ijg
|
* For conditions of distribution and use, see the accompanying README.ijg
|
||||||
* file.
|
* file.
|
||||||
@@ -37,6 +37,10 @@ struct cjpeg_source_struct {
|
|||||||
FILE *input_file;
|
FILE *input_file;
|
||||||
|
|
||||||
JSAMPARRAY buffer;
|
JSAMPARRAY buffer;
|
||||||
|
J12SAMPARRAY buffer12;
|
||||||
|
#ifdef C_LOSSLESS_SUPPORTED
|
||||||
|
J16SAMPARRAY buffer16;
|
||||||
|
#endif
|
||||||
JDIMENSION buffer_height;
|
JDIMENSION buffer_height;
|
||||||
#ifdef FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION
|
#ifdef FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION
|
||||||
JDIMENSION max_pixels;
|
JDIMENSION max_pixels;
|
||||||
@@ -83,6 +87,10 @@ struct djpeg_dest_struct {
|
|||||||
* height is buffer_height.
|
* height is buffer_height.
|
||||||
*/
|
*/
|
||||||
JSAMPARRAY buffer;
|
JSAMPARRAY buffer;
|
||||||
|
J12SAMPARRAY buffer12;
|
||||||
|
#ifdef D_LOSSLESS_SUPPORTED
|
||||||
|
J16SAMPARRAY buffer16;
|
||||||
|
#endif
|
||||||
JDIMENSION buffer_height;
|
JDIMENSION buffer_height;
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -118,9 +126,23 @@ EXTERN(cjpeg_source_ptr) jinit_read_bmp(j_compress_ptr cinfo,
|
|||||||
EXTERN(djpeg_dest_ptr) jinit_write_bmp(j_decompress_ptr cinfo, boolean is_os2,
|
EXTERN(djpeg_dest_ptr) jinit_write_bmp(j_decompress_ptr cinfo, boolean is_os2,
|
||||||
boolean use_inversion_array);
|
boolean use_inversion_array);
|
||||||
EXTERN(cjpeg_source_ptr) jinit_read_gif(j_compress_ptr cinfo);
|
EXTERN(cjpeg_source_ptr) jinit_read_gif(j_compress_ptr cinfo);
|
||||||
|
EXTERN(cjpeg_source_ptr) j12init_read_gif(j_compress_ptr cinfo);
|
||||||
|
#ifdef C_LOSSLESS_SUPPORTED
|
||||||
|
EXTERN(cjpeg_source_ptr) j16init_read_gif(j_compress_ptr cinfo);
|
||||||
|
#endif
|
||||||
EXTERN(djpeg_dest_ptr) jinit_write_gif(j_decompress_ptr cinfo, boolean is_lzw);
|
EXTERN(djpeg_dest_ptr) jinit_write_gif(j_decompress_ptr cinfo, boolean is_lzw);
|
||||||
|
EXTERN(djpeg_dest_ptr) j12init_write_gif(j_decompress_ptr cinfo,
|
||||||
|
boolean is_lzw);
|
||||||
EXTERN(cjpeg_source_ptr) jinit_read_ppm(j_compress_ptr cinfo);
|
EXTERN(cjpeg_source_ptr) jinit_read_ppm(j_compress_ptr cinfo);
|
||||||
|
EXTERN(cjpeg_source_ptr) j12init_read_ppm(j_compress_ptr cinfo);
|
||||||
|
#ifdef C_LOSSLESS_SUPPORTED
|
||||||
|
EXTERN(cjpeg_source_ptr) j16init_read_ppm(j_compress_ptr cinfo);
|
||||||
|
#endif
|
||||||
EXTERN(djpeg_dest_ptr) jinit_write_ppm(j_decompress_ptr cinfo);
|
EXTERN(djpeg_dest_ptr) jinit_write_ppm(j_decompress_ptr cinfo);
|
||||||
|
EXTERN(djpeg_dest_ptr) j12init_write_ppm(j_decompress_ptr cinfo);
|
||||||
|
#ifdef D_LOSSLESS_SUPPORTED
|
||||||
|
EXTERN(djpeg_dest_ptr) j16init_write_ppm(j_decompress_ptr cinfo);
|
||||||
|
#endif
|
||||||
EXTERN(cjpeg_source_ptr) jinit_read_targa(j_compress_ptr cinfo);
|
EXTERN(cjpeg_source_ptr) jinit_read_targa(j_compress_ptr cinfo);
|
||||||
EXTERN(djpeg_dest_ptr) jinit_write_targa(j_decompress_ptr cinfo);
|
EXTERN(djpeg_dest_ptr) jinit_write_targa(j_decompress_ptr cinfo);
|
||||||
|
|
||||||
@@ -137,6 +159,7 @@ EXTERN(boolean) set_sample_factors(j_compress_ptr cinfo, char *arg);
|
|||||||
/* djpeg support routines (in rdcolmap.c) */
|
/* djpeg support routines (in rdcolmap.c) */
|
||||||
|
|
||||||
EXTERN(void) read_color_map(j_decompress_ptr cinfo, FILE *infile);
|
EXTERN(void) read_color_map(j_decompress_ptr cinfo, FILE *infile);
|
||||||
|
EXTERN(void) read_color_map_12(j_decompress_ptr cinfo, FILE *infile);
|
||||||
|
|
||||||
/* common support routines (in cdjpeg.c) */
|
/* common support routines (in cdjpeg.c) */
|
||||||
|
|
||||||
@@ -166,6 +189,3 @@ EXTERN(FILE *) write_stdout(void);
|
|||||||
#ifndef EXIT_WARNING
|
#ifndef EXIT_WARNING
|
||||||
#define EXIT_WARNING 2
|
#define EXIT_WARNING 2
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#define IsExtRGB(cs) \
|
|
||||||
(cs == JCS_RGB || (cs >= JCS_EXT_RGB && cs <= JCS_EXT_ARGB))
|
|
||||||
|
|||||||
56
cjpeg.1
56
cjpeg.1
@@ -1,4 +1,4 @@
|
|||||||
.TH CJPEG 1 "30 November 2021"
|
.TH CJPEG 1 "29 June 2023"
|
||||||
.SH NAME
|
.SH NAME
|
||||||
cjpeg \- compress an image file to a JPEG file
|
cjpeg \- compress an image file to a JPEG file
|
||||||
.SH SYNOPSIS
|
.SH SYNOPSIS
|
||||||
@@ -149,6 +149,56 @@ about the same --- often a little smaller.
|
|||||||
.PP
|
.PP
|
||||||
Switches for advanced users:
|
Switches for advanced users:
|
||||||
.TP
|
.TP
|
||||||
|
.BI \-precision " N"
|
||||||
|
Create JPEG file with N-bit data precision. N is 8, 12, or 16; default is 8.
|
||||||
|
If N is 16, then
|
||||||
|
.B -lossless
|
||||||
|
must also be specified.
|
||||||
|
.B Caution:
|
||||||
|
12-bit and 16-bit JPEG is not yet widely implemented, so many decoders will be
|
||||||
|
unable to view a 12-bit or 16-bit JPEG file at all.
|
||||||
|
.TP
|
||||||
|
.BI \-lossless " psv[,Pt]"
|
||||||
|
Create a lossless JPEG file using the specified predictor selection value
|
||||||
|
(1 through 7) and optional point transform (0 through
|
||||||
|
.nh
|
||||||
|
.I precision
|
||||||
|
.hy
|
||||||
|
- 1, where
|
||||||
|
.nh
|
||||||
|
.I precision
|
||||||
|
.hy
|
||||||
|
is the JPEG data precision in bits). A point transform value of 0 (the
|
||||||
|
default) is necessary in order to create a fully lossless JPEG file. (A
|
||||||
|
non-zero point transform value right-shifts the input samples by the specified
|
||||||
|
number of bits, which is effectively a form of lossy color quantization.)
|
||||||
|
.B Caution:
|
||||||
|
lossless JPEG is not yet widely implemented, so many decoders will be unable to
|
||||||
|
view a lossless JPEG file at all. Note that the following features will be
|
||||||
|
unavailable when compressing or decompressing a lossless JPEG file:
|
||||||
|
.IP
|
||||||
|
- Quality/quantization table selection
|
||||||
|
.IP
|
||||||
|
- Color space conversion (the JPEG image will use the same color space as the
|
||||||
|
input image)
|
||||||
|
.IP
|
||||||
|
- Color quantization
|
||||||
|
.IP
|
||||||
|
- DCT/IDCT algorithm selection
|
||||||
|
.IP
|
||||||
|
- Smoothing
|
||||||
|
.IP
|
||||||
|
- Downsampling/upsampling
|
||||||
|
.IP
|
||||||
|
- IDCT scaling
|
||||||
|
.IP
|
||||||
|
- Partial image decompression
|
||||||
|
.IP
|
||||||
|
- Transformations using
|
||||||
|
.B jpegtran
|
||||||
|
.IP
|
||||||
|
Any switches used to enable or configure those features will be ignored.
|
||||||
|
.TP
|
||||||
.B \-arithmetic
|
.B \-arithmetic
|
||||||
Use arithmetic coding.
|
Use arithmetic coding.
|
||||||
.B Caution:
|
.B Caution:
|
||||||
@@ -195,8 +245,8 @@ machines.
|
|||||||
Embed ICC color management profile contained in the specified file.
|
Embed ICC color management profile contained in the specified file.
|
||||||
.TP
|
.TP
|
||||||
.BI \-restart " N"
|
.BI \-restart " N"
|
||||||
Emit a JPEG restart marker every N MCU rows, or every N MCU blocks if "B" is
|
Emit a JPEG restart marker every N MCU rows, or every N MCU blocks (samples in
|
||||||
attached to the number.
|
lossless mode) if "B" is attached to the number.
|
||||||
.B \-restart 0
|
.B \-restart 0
|
||||||
(the default) means no restart markers.
|
(the default) means no restart markers.
|
||||||
.TP
|
.TP
|
||||||
|
|||||||
106
cjpeg.c
106
cjpeg.c
@@ -4,6 +4,8 @@
|
|||||||
* This file was part of the Independent JPEG Group's software:
|
* This file was part of the Independent JPEG Group's software:
|
||||||
* Copyright (C) 1991-1998, Thomas G. Lane.
|
* Copyright (C) 1991-1998, Thomas G. Lane.
|
||||||
* Modified 2003-2011 by Guido Vollbeding.
|
* Modified 2003-2011 by Guido Vollbeding.
|
||||||
|
* Lossless JPEG Modifications:
|
||||||
|
* Copyright (C) 1999, Ken Murchison.
|
||||||
* libjpeg-turbo Modifications:
|
* libjpeg-turbo Modifications:
|
||||||
* Copyright (C) 2010, 2013-2014, 2017, 2019-2022, D. R. Commander.
|
* Copyright (C) 2010, 2013-2014, 2017, 2019-2022, D. R. Commander.
|
||||||
* Copyright (C) 2014, Mozilla Corporation.
|
* Copyright (C) 2014, Mozilla Corporation.
|
||||||
@@ -105,11 +107,31 @@ select_file_type(j_compress_ptr cinfo, FILE *infile)
|
|||||||
#endif
|
#endif
|
||||||
#ifdef GIF_SUPPORTED
|
#ifdef GIF_SUPPORTED
|
||||||
case 'G':
|
case 'G':
|
||||||
return jinit_read_gif(cinfo);
|
if (cinfo->data_precision == 16) {
|
||||||
|
#ifdef C_LOSSLESS_SUPPORTED
|
||||||
|
return j16init_read_gif(cinfo);
|
||||||
|
#else
|
||||||
|
ERREXIT1(cinfo, JERR_BAD_PRECISION, cinfo->data_precision);
|
||||||
|
break;
|
||||||
|
#endif
|
||||||
|
} else if (cinfo->data_precision == 12)
|
||||||
|
return j12init_read_gif(cinfo);
|
||||||
|
else
|
||||||
|
return jinit_read_gif(cinfo);
|
||||||
#endif
|
#endif
|
||||||
#ifdef PPM_SUPPORTED
|
#ifdef PPM_SUPPORTED
|
||||||
case 'P':
|
case 'P':
|
||||||
return jinit_read_ppm(cinfo);
|
if (cinfo->data_precision == 16) {
|
||||||
|
#ifdef C_LOSSLESS_SUPPORTED
|
||||||
|
return j16init_read_ppm(cinfo);
|
||||||
|
#else
|
||||||
|
ERREXIT1(cinfo, JERR_BAD_PRECISION, cinfo->data_precision);
|
||||||
|
break;
|
||||||
|
#endif
|
||||||
|
} else if (cinfo->data_precision == 12)
|
||||||
|
return j12init_read_ppm(cinfo);
|
||||||
|
else
|
||||||
|
return jinit_read_ppm(cinfo);
|
||||||
#endif
|
#endif
|
||||||
#ifdef PNG_SUPPORTED
|
#ifdef PNG_SUPPORTED
|
||||||
case 0x89:
|
case 0x89:
|
||||||
@@ -232,6 +254,16 @@ usage(void)
|
|||||||
fprintf(stderr, "Switches for advanced users:\n");
|
fprintf(stderr, "Switches for advanced users:\n");
|
||||||
fprintf(stderr, " -noovershoot Disable black-on-white deringing via overshoot\n");
|
fprintf(stderr, " -noovershoot Disable black-on-white deringing via overshoot\n");
|
||||||
fprintf(stderr, " -nojfif Do not write JFIF (reduces size by 18 bytes but breaks standards; no known problems in Web browsers)\n");
|
fprintf(stderr, " -nojfif Do not write JFIF (reduces size by 18 bytes but breaks standards; no known problems in Web browsers)\n");
|
||||||
|
fprintf(stderr, " -precision N Create JPEG file with N-bit data precision\n");
|
||||||
|
#ifdef C_LOSSLESS_SUPPORTED
|
||||||
|
fprintf(stderr, " (N is 8, 12, or 16; default is 8; if N is 16, then -lossless\n");
|
||||||
|
fprintf(stderr, " must also be specified)\n");
|
||||||
|
#else
|
||||||
|
fprintf(stderr, " (N is 8 or 12; default is 8)\n");
|
||||||
|
#endif
|
||||||
|
#ifdef C_LOSSLESS_SUPPORTED
|
||||||
|
fprintf(stderr, " -lossless psv[,Pt] Create lossless JPEG file\n");
|
||||||
|
#endif
|
||||||
#ifdef C_ARITH_CODING_SUPPORTED
|
#ifdef C_ARITH_CODING_SUPPORTED
|
||||||
fprintf(stderr, " -arithmetic Use arithmetic coding\n");
|
fprintf(stderr, " -arithmetic Use arithmetic coding\n");
|
||||||
#endif
|
#endif
|
||||||
@@ -265,9 +297,7 @@ usage(void)
|
|||||||
#endif
|
#endif
|
||||||
fprintf(stderr, " -maxmemory N Maximum memory to use (in kbytes)\n");
|
fprintf(stderr, " -maxmemory N Maximum memory to use (in kbytes)\n");
|
||||||
fprintf(stderr, " -outfile name Specify name for output file\n");
|
fprintf(stderr, " -outfile name Specify name for output file\n");
|
||||||
#if JPEG_LIB_VERSION >= 80 || defined(MEM_SRCDST_SUPPORTED)
|
|
||||||
fprintf(stderr, " -memdst Compress to memory instead of file (useful for benchmarking)\n");
|
fprintf(stderr, " -memdst Compress to memory instead of file (useful for benchmarking)\n");
|
||||||
#endif
|
|
||||||
fprintf(stderr, " -report Report compression progress\n");
|
fprintf(stderr, " -report Report compression progress\n");
|
||||||
fprintf(stderr, " -strict Treat all warnings as fatal\n");
|
fprintf(stderr, " -strict Treat all warnings as fatal\n");
|
||||||
fprintf(stderr, " -verbose or -debug Emit debug output\n");
|
fprintf(stderr, " -verbose or -debug Emit debug output\n");
|
||||||
@@ -297,6 +327,9 @@ parse_switches(j_compress_ptr cinfo, int argc, char **argv,
|
|||||||
{
|
{
|
||||||
int argn;
|
int argn;
|
||||||
char *arg;
|
char *arg;
|
||||||
|
#ifdef C_LOSSLESS_SUPPORTED
|
||||||
|
int psv, pt = 0;
|
||||||
|
#endif
|
||||||
boolean force_baseline;
|
boolean force_baseline;
|
||||||
boolean simple_progressive;
|
boolean simple_progressive;
|
||||||
char *qualityarg = NULL; /* saves -quality parm if any */
|
char *qualityarg = NULL; /* saves -quality parm if any */
|
||||||
@@ -422,6 +455,27 @@ parse_switches(j_compress_ptr cinfo, int argc, char **argv,
|
|||||||
usage();
|
usage();
|
||||||
icc_filename = argv[argn];
|
icc_filename = argv[argn];
|
||||||
|
|
||||||
|
} else if (keymatch(arg, "lossless", 1)) {
|
||||||
|
/* Enable lossless mode. */
|
||||||
|
#ifdef C_LOSSLESS_SUPPORTED
|
||||||
|
char ch = ',', *ptr;
|
||||||
|
|
||||||
|
if (++argn >= argc) /* advance to next argument */
|
||||||
|
usage();
|
||||||
|
if (sscanf(argv[argn], "%d%c", &psv, &ch) < 1 || ch != ',')
|
||||||
|
usage();
|
||||||
|
ptr = argv[argn];
|
||||||
|
while (*ptr && *ptr++ != ','); /* advance to next segment of arg
|
||||||
|
string */
|
||||||
|
if (*ptr)
|
||||||
|
sscanf(ptr, "%d", &pt);
|
||||||
|
jpeg_enable_lossless(cinfo, psv, pt);
|
||||||
|
#else
|
||||||
|
fprintf(stderr, "%s: sorry, lossless output was not compiled\n",
|
||||||
|
progname);
|
||||||
|
exit(EXIT_FAILURE);
|
||||||
|
#endif
|
||||||
|
|
||||||
} else if (keymatch(arg, "maxmemory", 3)) {
|
} else if (keymatch(arg, "maxmemory", 3)) {
|
||||||
/* Maximum memory in Kb (or Mb with 'm'). */
|
/* Maximum memory in Kb (or Mb with 'm'). */
|
||||||
long lval;
|
long lval;
|
||||||
@@ -460,7 +514,23 @@ parse_switches(j_compress_ptr cinfo, int argc, char **argv,
|
|||||||
}
|
}
|
||||||
outfilename = argv[argn]; /* save it away for later use */
|
outfilename = argv[argn]; /* save it away for later use */
|
||||||
|
|
||||||
} else if (keymatch(arg, "progressive", 1)) {
|
} else if (keymatch(arg, "precision", 3)) {
|
||||||
|
/* Set data precision. */
|
||||||
|
int val;
|
||||||
|
|
||||||
|
if (++argn >= argc) /* advance to next argument */
|
||||||
|
usage();
|
||||||
|
if (sscanf(argv[argn], "%d", &val) != 1)
|
||||||
|
usage();
|
||||||
|
#ifdef C_LOSSLESS_SUPPORTED
|
||||||
|
if (val != 8 && val != 12 && val != 16)
|
||||||
|
#else
|
||||||
|
if (val != 8 && val != 12)
|
||||||
|
#endif
|
||||||
|
usage();
|
||||||
|
cinfo->data_precision = val;
|
||||||
|
|
||||||
|
} else if (keymatch(arg, "progressive", 3)) {
|
||||||
/* Select simple progressive mode. */
|
/* Select simple progressive mode. */
|
||||||
#ifdef C_PROGRESSIVE_SUPPORTED
|
#ifdef C_PROGRESSIVE_SUPPORTED
|
||||||
simple_progressive = TRUE;
|
simple_progressive = TRUE;
|
||||||
@@ -473,13 +543,7 @@ parse_switches(j_compress_ptr cinfo, int argc, char **argv,
|
|||||||
|
|
||||||
} else if (keymatch(arg, "memdst", 2)) {
|
} else if (keymatch(arg, "memdst", 2)) {
|
||||||
/* Use in-memory destination manager */
|
/* Use in-memory destination manager */
|
||||||
#if JPEG_LIB_VERSION >= 80 || defined(MEM_SRCDST_SUPPORTED)
|
|
||||||
memdst = TRUE;
|
memdst = TRUE;
|
||||||
#else
|
|
||||||
fprintf(stderr, "%s: sorry, in-memory destination manager was not compiled in\n",
|
|
||||||
progname);
|
|
||||||
exit(EXIT_FAILURE);
|
|
||||||
#endif
|
|
||||||
|
|
||||||
} else if (keymatch(arg, "quality", 1)) {
|
} else if (keymatch(arg, "quality", 1)) {
|
||||||
/* Quality ratings (quantization table scaling factors). */
|
/* Quality ratings (quantization table scaling factors). */
|
||||||
@@ -872,11 +936,9 @@ main(int argc, char **argv)
|
|||||||
file_index = parse_switches(&cinfo, argc, argv, 0, TRUE);
|
file_index = parse_switches(&cinfo, argc, argv, 0, TRUE);
|
||||||
|
|
||||||
/* Specify data destination for compression */
|
/* Specify data destination for compression */
|
||||||
#if JPEG_LIB_VERSION >= 80 || defined(MEM_SRCDST_SUPPORTED)
|
|
||||||
if (memdst)
|
if (memdst)
|
||||||
jpeg_mem_dest(&cinfo, &outbuffer, &outsize);
|
jpeg_mem_dest(&cinfo, &outbuffer, &outsize);
|
||||||
else
|
else
|
||||||
#endif
|
|
||||||
jpeg_stdio_dest(&cinfo, output_file);
|
jpeg_stdio_dest(&cinfo, output_file);
|
||||||
|
|
||||||
#ifdef CJPEG_FUZZER
|
#ifdef CJPEG_FUZZER
|
||||||
@@ -923,6 +985,21 @@ main(int argc, char **argv)
|
|||||||
jpeg_write_icc_profile(&cinfo, icc_profile, (unsigned int)icc_len);
|
jpeg_write_icc_profile(&cinfo, icc_profile, (unsigned int)icc_len);
|
||||||
|
|
||||||
/* Process data */
|
/* Process data */
|
||||||
|
if (cinfo.data_precision == 16) {
|
||||||
|
#ifdef C_LOSSLESS_SUPPORTED
|
||||||
|
while (cinfo.next_scanline < cinfo.image_height) {
|
||||||
|
num_scanlines = (*src_mgr->get_pixel_rows) (&cinfo, src_mgr);
|
||||||
|
(void)jpeg16_write_scanlines(&cinfo, src_mgr->buffer16, num_scanlines);
|
||||||
|
}
|
||||||
|
#else
|
||||||
|
ERREXIT1(&cinfo, JERR_BAD_PRECISION, cinfo.data_precision);
|
||||||
|
#endif
|
||||||
|
} else if (cinfo.data_precision == 12) {
|
||||||
|
while (cinfo.next_scanline < cinfo.image_height) {
|
||||||
|
num_scanlines = (*src_mgr->get_pixel_rows) (&cinfo, src_mgr);
|
||||||
|
(void)jpeg12_write_scanlines(&cinfo, src_mgr->buffer12, num_scanlines);
|
||||||
|
}
|
||||||
|
} else {
|
||||||
while (cinfo.next_scanline < cinfo.image_height) {
|
while (cinfo.next_scanline < cinfo.image_height) {
|
||||||
num_scanlines = (*src_mgr->get_pixel_rows) (&cinfo, src_mgr);
|
num_scanlines = (*src_mgr->get_pixel_rows) (&cinfo, src_mgr);
|
||||||
#if JPEG_RAW_READER
|
#if JPEG_RAW_READER
|
||||||
@@ -930,7 +1007,8 @@ main(int argc, char **argv)
|
|||||||
(void) jpeg_write_raw_data(&cinfo, src_mgr->plane_pointer, num_scanlines);
|
(void) jpeg_write_raw_data(&cinfo, src_mgr->plane_pointer, num_scanlines);
|
||||||
else
|
else
|
||||||
#endif
|
#endif
|
||||||
(void) jpeg_write_scanlines(&cinfo, src_mgr->buffer, num_scanlines);
|
(void)jpeg_write_scanlines(&cinfo, src_mgr->buffer, num_scanlines);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Finish compression and release memory */
|
/* Finish compression and release memory */
|
||||||
|
|||||||
@@ -30,6 +30,14 @@ file(GLOB FILES
|
|||||||
*_411_*.ppm
|
*_411_*.ppm
|
||||||
*_411_*.jpg
|
*_411_*.jpg
|
||||||
*_411.yuv
|
*_411.yuv
|
||||||
|
*_441_*.bmp
|
||||||
|
*_441_*.png
|
||||||
|
*_441_*.ppm
|
||||||
|
*_441_*.jpg
|
||||||
|
*_441.yuv
|
||||||
|
*_LOSSL*S_*.bmp
|
||||||
|
*_LOSSL*S_*.ppm
|
||||||
|
*_LOSSL*S_*.jpg
|
||||||
tjbenchtest*.log
|
tjbenchtest*.log
|
||||||
tjexampletest*.log)
|
tjexampletest*.log)
|
||||||
|
|
||||||
|
|||||||
77
cmakescripts/tjbenchtest.cmake
Normal file
77
cmakescripts/tjbenchtest.cmake
Normal file
@@ -0,0 +1,77 @@
|
|||||||
|
if(NOT DEFINED PRECISION)
|
||||||
|
message(FATAL_ERROR "PRECISION must be specified")
|
||||||
|
endif()
|
||||||
|
|
||||||
|
if(NOT DEFINED WITH_JAVA)
|
||||||
|
message(FATAL_ERROR "WITH_JAVA must be specified")
|
||||||
|
endif()
|
||||||
|
|
||||||
|
macro(check_error program)
|
||||||
|
if(NOT RESULT EQUAL 0)
|
||||||
|
message(FATAL_ERROR "${program} failed.")
|
||||||
|
endif()
|
||||||
|
endmacro()
|
||||||
|
|
||||||
|
macro(run_test PROG ARGS)
|
||||||
|
string(REPLACE ";" " " SPACED_ARGS "${ARGS}")
|
||||||
|
message(STATUS "${PROG} ${SPACED_ARGS}")
|
||||||
|
execute_process(COMMAND ${CMAKE_CURRENT_BINARY_DIR}/${PROG} ${ARGS}
|
||||||
|
RESULT_VARIABLE RESULT)
|
||||||
|
check_error("${PROG} ${SPACED_ARGS}")
|
||||||
|
endmacro()
|
||||||
|
|
||||||
|
if(NOT PRECISION EQUAL 16)
|
||||||
|
run_test(tjbenchtest "-precision;${PRECISION}")
|
||||||
|
run_test(tjbenchtest "-precision;${PRECISION};-alloc")
|
||||||
|
endif()
|
||||||
|
if(PRECISION EQUAL 8)
|
||||||
|
run_test(tjbenchtest "-precision;${PRECISION};-yuv")
|
||||||
|
run_test(tjbenchtest "-precision;${PRECISION};-yuv;-alloc")
|
||||||
|
run_test(tjbenchtest "-precision;${PRECISION};-optimize")
|
||||||
|
run_test(tjbenchtest "-precision;${PRECISION};-optimize;-yuv")
|
||||||
|
endif()
|
||||||
|
if(NOT PRECISION EQUAL 16)
|
||||||
|
run_test(tjbenchtest "-precision;${PRECISION};-progressive")
|
||||||
|
endif()
|
||||||
|
if(PRECISION EQUAL 8)
|
||||||
|
run_test(tjbenchtest "-precision;${PRECISION};-progressive;-yuv")
|
||||||
|
endif()
|
||||||
|
if(NOT PRECISION EQUAL 16)
|
||||||
|
run_test(tjbenchtest "-precision;${PRECISION};-arithmetic")
|
||||||
|
run_test(tjbenchtest "-precision;${PRECISION};-progressive;-arithmetic")
|
||||||
|
endif()
|
||||||
|
if(PRECISION EQUAL 8)
|
||||||
|
run_test(tjbenchtest "-precision;${PRECISION};-arithmetic;-yuv")
|
||||||
|
endif()
|
||||||
|
run_test(tjbenchtest "-precision;${PRECISION};-lossless")
|
||||||
|
run_test(tjbenchtest "-precision;${PRECISION};-lossless;-alloc")
|
||||||
|
if(PRECISION EQUAL 8)
|
||||||
|
run_test(tjexampletest "")
|
||||||
|
endif()
|
||||||
|
if(WITH_JAVA)
|
||||||
|
if(NOT PRECISION EQUAL 16)
|
||||||
|
run_test(tjbenchtest "-java;-precision;${PRECISION}")
|
||||||
|
endif()
|
||||||
|
if(PRECISION EQUAL 8)
|
||||||
|
run_test(tjbenchtest "-java;-precision;${PRECISION};-yuv")
|
||||||
|
run_test(tjbenchtest "-java;-precision;${PRECISION};-optimize")
|
||||||
|
run_test(tjbenchtest "-java;-precision;${PRECISION};-optimize;-yuv")
|
||||||
|
endif()
|
||||||
|
if(NOT PRECISION EQUAL 16)
|
||||||
|
run_test(tjbenchtest "-java;-precision;${PRECISION};-progressive")
|
||||||
|
endif()
|
||||||
|
if(PRECISION EQUAL 8)
|
||||||
|
run_test(tjbenchtest "-java;-precision;${PRECISION};-progressive;-yuv")
|
||||||
|
endif()
|
||||||
|
if(NOT PRECISION EQUAL 16)
|
||||||
|
run_test(tjbenchtest "-java;-precision;${PRECISION};-arithmetic")
|
||||||
|
run_test(tjbenchtest "-java;-precision;${PRECISION};-progressive;-arithmetic")
|
||||||
|
endif()
|
||||||
|
if(PRECISION EQUAL 8)
|
||||||
|
run_test(tjbenchtest "-java;-precision;${PRECISION};-arithmetic;-yuv")
|
||||||
|
endif()
|
||||||
|
run_test(tjbenchtest "-java;-precision;${PRECISION};-lossless")
|
||||||
|
if(PRECISION EQUAL 8)
|
||||||
|
run_test(tjexampletest "-java")
|
||||||
|
endif()
|
||||||
|
endif()
|
||||||
31
cmyk.h
31
cmyk.h
@@ -1,7 +1,7 @@
|
|||||||
/*
|
/*
|
||||||
* cmyk.h
|
* cmyk.h
|
||||||
*
|
*
|
||||||
* Copyright (C) 2017-2018, D. R. Commander.
|
* Copyright (C) 2017-2018, 2022, D. R. Commander.
|
||||||
* For conditions of distribution and use, see the accompanying README.ijg
|
* For conditions of distribution and use, see the accompanying README.ijg
|
||||||
* file.
|
* file.
|
||||||
*
|
*
|
||||||
@@ -17,18 +17,19 @@
|
|||||||
#include <jinclude.h>
|
#include <jinclude.h>
|
||||||
#define JPEG_INTERNALS
|
#define JPEG_INTERNALS
|
||||||
#include <jpeglib.h>
|
#include <jpeglib.h>
|
||||||
|
#include "jsamplecomp.h"
|
||||||
|
|
||||||
|
|
||||||
/* Fully reversible */
|
/* Fully reversible */
|
||||||
|
|
||||||
INLINE
|
INLINE
|
||||||
LOCAL(void)
|
LOCAL(void)
|
||||||
rgb_to_cmyk(JSAMPLE r, JSAMPLE g, JSAMPLE b, JSAMPLE *c, JSAMPLE *m,
|
rgb_to_cmyk(_JSAMPLE r, _JSAMPLE g, _JSAMPLE b,
|
||||||
JSAMPLE *y, JSAMPLE *k)
|
_JSAMPLE *c, _JSAMPLE *m, _JSAMPLE *y, _JSAMPLE *k)
|
||||||
{
|
{
|
||||||
double ctmp = 1.0 - ((double)r / 255.0);
|
double ctmp = 1.0 - ((double)r / (double)_MAXJSAMPLE);
|
||||||
double mtmp = 1.0 - ((double)g / 255.0);
|
double mtmp = 1.0 - ((double)g / (double)_MAXJSAMPLE);
|
||||||
double ytmp = 1.0 - ((double)b / 255.0);
|
double ytmp = 1.0 - ((double)b / (double)_MAXJSAMPLE);
|
||||||
double ktmp = MIN(MIN(ctmp, mtmp), ytmp);
|
double ktmp = MIN(MIN(ctmp, mtmp), ytmp);
|
||||||
|
|
||||||
if (ktmp == 1.0) ctmp = mtmp = ytmp = 0.0;
|
if (ktmp == 1.0) ctmp = mtmp = ytmp = 0.0;
|
||||||
@@ -37,10 +38,10 @@ rgb_to_cmyk(JSAMPLE r, JSAMPLE g, JSAMPLE b, JSAMPLE *c, JSAMPLE *m,
|
|||||||
mtmp = (mtmp - ktmp) / (1.0 - ktmp);
|
mtmp = (mtmp - ktmp) / (1.0 - ktmp);
|
||||||
ytmp = (ytmp - ktmp) / (1.0 - ktmp);
|
ytmp = (ytmp - ktmp) / (1.0 - ktmp);
|
||||||
}
|
}
|
||||||
*c = (JSAMPLE)(255.0 - ctmp * 255.0 + 0.5);
|
*c = (_JSAMPLE)((double)_MAXJSAMPLE - ctmp * (double)_MAXJSAMPLE + 0.5);
|
||||||
*m = (JSAMPLE)(255.0 - mtmp * 255.0 + 0.5);
|
*m = (_JSAMPLE)((double)_MAXJSAMPLE - mtmp * (double)_MAXJSAMPLE + 0.5);
|
||||||
*y = (JSAMPLE)(255.0 - ytmp * 255.0 + 0.5);
|
*y = (_JSAMPLE)((double)_MAXJSAMPLE - ytmp * (double)_MAXJSAMPLE + 0.5);
|
||||||
*k = (JSAMPLE)(255.0 - ktmp * 255.0 + 0.5);
|
*k = (_JSAMPLE)((double)_MAXJSAMPLE - ktmp * (double)_MAXJSAMPLE + 0.5);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -48,12 +49,12 @@ rgb_to_cmyk(JSAMPLE r, JSAMPLE g, JSAMPLE b, JSAMPLE *c, JSAMPLE *m,
|
|||||||
|
|
||||||
INLINE
|
INLINE
|
||||||
LOCAL(void)
|
LOCAL(void)
|
||||||
cmyk_to_rgb(JSAMPLE c, JSAMPLE m, JSAMPLE y, JSAMPLE k, JSAMPLE *r, JSAMPLE *g,
|
cmyk_to_rgb(_JSAMPLE c, _JSAMPLE m, _JSAMPLE y, _JSAMPLE k,
|
||||||
JSAMPLE *b)
|
_JSAMPLE *r, _JSAMPLE *g, _JSAMPLE *b)
|
||||||
{
|
{
|
||||||
*r = (JSAMPLE)((double)c * (double)k / 255.0 + 0.5);
|
*r = (_JSAMPLE)((double)c * (double)k / (double)_MAXJSAMPLE + 0.5);
|
||||||
*g = (JSAMPLE)((double)m * (double)k / 255.0 + 0.5);
|
*g = (_JSAMPLE)((double)m * (double)k / (double)_MAXJSAMPLE + 0.5);
|
||||||
*b = (JSAMPLE)((double)y * (double)k / 255.0 + 0.5);
|
*b = (_JSAMPLE)((double)y * (double)k / (double)_MAXJSAMPLE + 0.5);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
188
djpeg.c
188
djpeg.c
@@ -5,7 +5,7 @@
|
|||||||
* Copyright (C) 1991-1997, Thomas G. Lane.
|
* Copyright (C) 1991-1997, Thomas G. Lane.
|
||||||
* Modified 2013-2019 by Guido Vollbeding.
|
* Modified 2013-2019 by Guido Vollbeding.
|
||||||
* libjpeg-turbo Modifications:
|
* libjpeg-turbo Modifications:
|
||||||
* Copyright (C) 2010-2011, 2013-2017, 2019-2020, 2022, D. R. Commander.
|
* Copyright (C) 2010-2011, 2013-2017, 2019-2020, 2022-2023, D. R. Commander.
|
||||||
* Copyright (C) 2015, Google, Inc.
|
* Copyright (C) 2015, Google, Inc.
|
||||||
* For conditions of distribution and use, see the accompanying README.ijg
|
* For conditions of distribution and use, see the accompanying README.ijg
|
||||||
* file.
|
* file.
|
||||||
@@ -164,9 +164,7 @@ usage(void)
|
|||||||
fprintf(stderr, " -maxmemory N Maximum memory to use (in kbytes)\n");
|
fprintf(stderr, " -maxmemory N Maximum memory to use (in kbytes)\n");
|
||||||
fprintf(stderr, " -maxscans N Maximum number of scans to allow in input file\n");
|
fprintf(stderr, " -maxscans N Maximum number of scans to allow in input file\n");
|
||||||
fprintf(stderr, " -outfile name Specify name for output file\n");
|
fprintf(stderr, " -outfile name Specify name for output file\n");
|
||||||
#if JPEG_LIB_VERSION >= 80 || defined(MEM_SRCDST_SUPPORTED)
|
|
||||||
fprintf(stderr, " -memsrc Load input file into memory before decompressing\n");
|
fprintf(stderr, " -memsrc Load input file into memory before decompressing\n");
|
||||||
#endif
|
|
||||||
fprintf(stderr, " -report Report decompression progress\n");
|
fprintf(stderr, " -report Report decompression progress\n");
|
||||||
fprintf(stderr, " -skip Y0,Y1 Decompress all rows except those between Y0 and Y1 (inclusive)\n");
|
fprintf(stderr, " -skip Y0,Y1 Decompress all rows except those between Y0 and Y1 (inclusive)\n");
|
||||||
fprintf(stderr, " -crop WxH+X+Y Decompress only a rectangular subregion of the image\n");
|
fprintf(stderr, " -crop WxH+X+Y Decompress only a rectangular subregion of the image\n");
|
||||||
@@ -332,7 +330,10 @@ parse_switches(j_decompress_ptr cinfo, int argc, char **argv,
|
|||||||
fprintf(stderr, "%s: can't open %s\n", progname, argv[argn]);
|
fprintf(stderr, "%s: can't open %s\n", progname, argv[argn]);
|
||||||
exit(EXIT_FAILURE);
|
exit(EXIT_FAILURE);
|
||||||
}
|
}
|
||||||
read_color_map(cinfo, mapfile);
|
if (cinfo->data_precision == 12)
|
||||||
|
read_color_map_12(cinfo, mapfile);
|
||||||
|
else
|
||||||
|
read_color_map(cinfo, mapfile);
|
||||||
fclose(mapfile);
|
fclose(mapfile);
|
||||||
cinfo->quantize_colors = TRUE;
|
cinfo->quantize_colors = TRUE;
|
||||||
#else
|
#else
|
||||||
@@ -379,13 +380,7 @@ parse_switches(j_decompress_ptr cinfo, int argc, char **argv,
|
|||||||
|
|
||||||
} else if (keymatch(arg, "memsrc", 2)) {
|
} else if (keymatch(arg, "memsrc", 2)) {
|
||||||
/* Use in-memory source manager */
|
/* Use in-memory source manager */
|
||||||
#if JPEG_LIB_VERSION >= 80 || defined(MEM_SRCDST_SUPPORTED)
|
|
||||||
memsrc = TRUE;
|
memsrc = TRUE;
|
||||||
#else
|
|
||||||
fprintf(stderr, "%s: sorry, in-memory source manager was not compiled in\n",
|
|
||||||
progname);
|
|
||||||
exit(EXIT_FAILURE);
|
|
||||||
#endif
|
|
||||||
|
|
||||||
} else if (keymatch(arg, "pnm", 1) || keymatch(arg, "ppm", 1)) {
|
} else if (keymatch(arg, "pnm", 1) || keymatch(arg, "ppm", 1)) {
|
||||||
/* PPM/PGM output format. */
|
/* PPM/PGM output format. */
|
||||||
@@ -537,9 +532,7 @@ main(int argc, char **argv)
|
|||||||
FILE *input_file;
|
FILE *input_file;
|
||||||
FILE *output_file;
|
FILE *output_file;
|
||||||
unsigned char *inbuffer = NULL;
|
unsigned char *inbuffer = NULL;
|
||||||
#if JPEG_LIB_VERSION >= 80 || defined(MEM_SRCDST_SUPPORTED)
|
|
||||||
unsigned long insize = 0;
|
unsigned long insize = 0;
|
||||||
#endif
|
|
||||||
JDIMENSION num_scanlines;
|
JDIMENSION num_scanlines;
|
||||||
|
|
||||||
progname = argv[0];
|
progname = argv[0];
|
||||||
@@ -629,7 +622,6 @@ main(int argc, char **argv)
|
|||||||
}
|
}
|
||||||
|
|
||||||
/* Specify data source for decompression */
|
/* Specify data source for decompression */
|
||||||
#if JPEG_LIB_VERSION >= 80 || defined(MEM_SRCDST_SUPPORTED)
|
|
||||||
if (memsrc) {
|
if (memsrc) {
|
||||||
size_t nbytes;
|
size_t nbytes;
|
||||||
do {
|
do {
|
||||||
@@ -651,7 +643,6 @@ main(int argc, char **argv)
|
|||||||
fprintf(stderr, "Compressed size: %lu bytes\n", insize);
|
fprintf(stderr, "Compressed size: %lu bytes\n", insize);
|
||||||
jpeg_mem_src(&cinfo, inbuffer, insize);
|
jpeg_mem_src(&cinfo, inbuffer, insize);
|
||||||
} else
|
} else
|
||||||
#endif
|
|
||||||
jpeg_stdio_src(&cinfo, input_file);
|
jpeg_stdio_src(&cinfo, input_file);
|
||||||
|
|
||||||
/* Read file header, set default decompression parameters */
|
/* Read file header, set default decompression parameters */
|
||||||
@@ -674,7 +665,12 @@ main(int argc, char **argv)
|
|||||||
#endif
|
#endif
|
||||||
#ifdef GIF_SUPPORTED
|
#ifdef GIF_SUPPORTED
|
||||||
case FMT_GIF:
|
case FMT_GIF:
|
||||||
dest_mgr = jinit_write_gif(&cinfo, TRUE);
|
if (cinfo.data_precision == 16)
|
||||||
|
ERREXIT1(&cinfo, JERR_BAD_PRECISION, cinfo.data_precision);
|
||||||
|
else if (cinfo.data_precision == 12)
|
||||||
|
dest_mgr = j12init_write_gif(&cinfo, TRUE);
|
||||||
|
else
|
||||||
|
dest_mgr = jinit_write_gif(&cinfo, TRUE);
|
||||||
break;
|
break;
|
||||||
case FMT_GIF0:
|
case FMT_GIF0:
|
||||||
dest_mgr = jinit_write_gif(&cinfo, FALSE);
|
dest_mgr = jinit_write_gif(&cinfo, FALSE);
|
||||||
@@ -682,7 +678,16 @@ main(int argc, char **argv)
|
|||||||
#endif
|
#endif
|
||||||
#ifdef PPM_SUPPORTED
|
#ifdef PPM_SUPPORTED
|
||||||
case FMT_PPM:
|
case FMT_PPM:
|
||||||
dest_mgr = jinit_write_ppm(&cinfo);
|
if (cinfo.data_precision == 16)
|
||||||
|
#ifdef D_LOSSLESS_SUPPORTED
|
||||||
|
dest_mgr = j16init_write_ppm(&cinfo);
|
||||||
|
#else
|
||||||
|
ERREXIT1(&cinfo, JERR_BAD_PRECISION, cinfo.data_precision);
|
||||||
|
#endif
|
||||||
|
else if (cinfo.data_precision == 12)
|
||||||
|
dest_mgr = j12init_write_ppm(&cinfo);
|
||||||
|
else
|
||||||
|
dest_mgr = jinit_write_ppm(&cinfo);
|
||||||
break;
|
break;
|
||||||
#endif
|
#endif
|
||||||
#ifdef TARGA_SUPPORTED
|
#ifdef TARGA_SUPPORTED
|
||||||
@@ -721,22 +726,44 @@ main(int argc, char **argv)
|
|||||||
(*dest_mgr->start_output) (&cinfo, dest_mgr);
|
(*dest_mgr->start_output) (&cinfo, dest_mgr);
|
||||||
cinfo.output_height = tmp;
|
cinfo.output_height = tmp;
|
||||||
|
|
||||||
/* Process data */
|
if (cinfo.data_precision == 16)
|
||||||
while (cinfo.output_scanline < skip_start) {
|
ERREXIT(&cinfo, JERR_NOTIMPL);
|
||||||
num_scanlines = jpeg_read_scanlines(&cinfo, dest_mgr->buffer,
|
else if (cinfo.data_precision == 12) {
|
||||||
dest_mgr->buffer_height);
|
/* Process data */
|
||||||
(*dest_mgr->put_pixel_rows) (&cinfo, dest_mgr, num_scanlines);
|
while (cinfo.output_scanline < skip_start) {
|
||||||
}
|
num_scanlines = jpeg12_read_scanlines(&cinfo, dest_mgr->buffer12,
|
||||||
if ((tmp = jpeg_skip_scanlines(&cinfo, skip_end - skip_start + 1)) !=
|
dest_mgr->buffer_height);
|
||||||
skip_end - skip_start + 1) {
|
(*dest_mgr->put_pixel_rows) (&cinfo, dest_mgr, num_scanlines);
|
||||||
fprintf(stderr, "%s: jpeg_skip_scanlines() returned %u rather than %u\n",
|
}
|
||||||
progname, tmp, skip_end - skip_start + 1);
|
if ((tmp = jpeg12_skip_scanlines(&cinfo, skip_end - skip_start + 1)) !=
|
||||||
exit(EXIT_FAILURE);
|
skip_end - skip_start + 1) {
|
||||||
}
|
fprintf(stderr, "%s: jpeg12_skip_scanlines() returned %u rather than %u\n",
|
||||||
while (cinfo.output_scanline < cinfo.output_height) {
|
progname, tmp, skip_end - skip_start + 1);
|
||||||
num_scanlines = jpeg_read_scanlines(&cinfo, dest_mgr->buffer,
|
exit(EXIT_FAILURE);
|
||||||
dest_mgr->buffer_height);
|
}
|
||||||
(*dest_mgr->put_pixel_rows) (&cinfo, dest_mgr, num_scanlines);
|
while (cinfo.output_scanline < cinfo.output_height) {
|
||||||
|
num_scanlines = jpeg12_read_scanlines(&cinfo, dest_mgr->buffer12,
|
||||||
|
dest_mgr->buffer_height);
|
||||||
|
(*dest_mgr->put_pixel_rows) (&cinfo, dest_mgr, num_scanlines);
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
/* Process data */
|
||||||
|
while (cinfo.output_scanline < skip_start) {
|
||||||
|
num_scanlines = jpeg_read_scanlines(&cinfo, dest_mgr->buffer,
|
||||||
|
dest_mgr->buffer_height);
|
||||||
|
(*dest_mgr->put_pixel_rows) (&cinfo, dest_mgr, num_scanlines);
|
||||||
|
}
|
||||||
|
if ((tmp = jpeg_skip_scanlines(&cinfo, skip_end - skip_start + 1)) !=
|
||||||
|
skip_end - skip_start + 1) {
|
||||||
|
fprintf(stderr, "%s: jpeg_skip_scanlines() returned %u rather than %u\n",
|
||||||
|
progname, tmp, skip_end - skip_start + 1);
|
||||||
|
exit(EXIT_FAILURE);
|
||||||
|
}
|
||||||
|
while (cinfo.output_scanline < cinfo.output_height) {
|
||||||
|
num_scanlines = jpeg_read_scanlines(&cinfo, dest_mgr->buffer,
|
||||||
|
dest_mgr->buffer_height);
|
||||||
|
(*dest_mgr->put_pixel_rows) (&cinfo, dest_mgr, num_scanlines);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Decompress a subregion */
|
/* Decompress a subregion */
|
||||||
@@ -753,7 +780,12 @@ main(int argc, char **argv)
|
|||||||
exit(EXIT_FAILURE);
|
exit(EXIT_FAILURE);
|
||||||
}
|
}
|
||||||
|
|
||||||
jpeg_crop_scanline(&cinfo, &crop_x, &crop_width);
|
if (cinfo.data_precision == 16)
|
||||||
|
ERREXIT(&cinfo, JERR_NOTIMPL);
|
||||||
|
else if (cinfo.data_precision == 12)
|
||||||
|
jpeg12_crop_scanline(&cinfo, &crop_x, &crop_width);
|
||||||
|
else
|
||||||
|
jpeg_crop_scanline(&cinfo, &crop_x, &crop_width);
|
||||||
if (dest_mgr->calc_buffer_dimensions)
|
if (dest_mgr->calc_buffer_dimensions)
|
||||||
(*dest_mgr->calc_buffer_dimensions) (&cinfo, dest_mgr);
|
(*dest_mgr->calc_buffer_dimensions) (&cinfo, dest_mgr);
|
||||||
else
|
else
|
||||||
@@ -767,24 +799,48 @@ main(int argc, char **argv)
|
|||||||
(*dest_mgr->start_output) (&cinfo, dest_mgr);
|
(*dest_mgr->start_output) (&cinfo, dest_mgr);
|
||||||
cinfo.output_height = tmp;
|
cinfo.output_height = tmp;
|
||||||
|
|
||||||
/* Process data */
|
if (cinfo.data_precision == 16)
|
||||||
if ((tmp = jpeg_skip_scanlines(&cinfo, crop_y)) != crop_y) {
|
ERREXIT(&cinfo, JERR_NOTIMPL);
|
||||||
fprintf(stderr, "%s: jpeg_skip_scanlines() returned %u rather than %u\n",
|
else if (cinfo.data_precision == 12) {
|
||||||
progname, tmp, crop_y);
|
/* Process data */
|
||||||
exit(EXIT_FAILURE);
|
if ((tmp = jpeg12_skip_scanlines(&cinfo, crop_y)) != crop_y) {
|
||||||
}
|
fprintf(stderr, "%s: jpeg12_skip_scanlines() returned %u rather than %u\n",
|
||||||
while (cinfo.output_scanline < crop_y + crop_height) {
|
progname, tmp, crop_y);
|
||||||
num_scanlines = jpeg_read_scanlines(&cinfo, dest_mgr->buffer,
|
exit(EXIT_FAILURE);
|
||||||
dest_mgr->buffer_height);
|
}
|
||||||
(*dest_mgr->put_pixel_rows) (&cinfo, dest_mgr, num_scanlines);
|
while (cinfo.output_scanline < crop_y + crop_height) {
|
||||||
}
|
num_scanlines = jpeg12_read_scanlines(&cinfo, dest_mgr->buffer12,
|
||||||
if ((tmp =
|
dest_mgr->buffer_height);
|
||||||
jpeg_skip_scanlines(&cinfo,
|
(*dest_mgr->put_pixel_rows) (&cinfo, dest_mgr, num_scanlines);
|
||||||
cinfo.output_height - crop_y - crop_height)) !=
|
}
|
||||||
cinfo.output_height - crop_y - crop_height) {
|
if ((tmp =
|
||||||
fprintf(stderr, "%s: jpeg_skip_scanlines() returned %u rather than %u\n",
|
jpeg12_skip_scanlines(&cinfo, cinfo.output_height - crop_y -
|
||||||
progname, tmp, cinfo.output_height - crop_y - crop_height);
|
crop_height)) !=
|
||||||
exit(EXIT_FAILURE);
|
cinfo.output_height - crop_y - crop_height) {
|
||||||
|
fprintf(stderr, "%s: jpeg12_skip_scanlines() returned %u rather than %u\n",
|
||||||
|
progname, tmp, cinfo.output_height - crop_y - crop_height);
|
||||||
|
exit(EXIT_FAILURE);
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
/* Process data */
|
||||||
|
if ((tmp = jpeg_skip_scanlines(&cinfo, crop_y)) != crop_y) {
|
||||||
|
fprintf(stderr, "%s: jpeg_skip_scanlines() returned %u rather than %u\n",
|
||||||
|
progname, tmp, crop_y);
|
||||||
|
exit(EXIT_FAILURE);
|
||||||
|
}
|
||||||
|
while (cinfo.output_scanline < crop_y + crop_height) {
|
||||||
|
num_scanlines = jpeg_read_scanlines(&cinfo, dest_mgr->buffer,
|
||||||
|
dest_mgr->buffer_height);
|
||||||
|
(*dest_mgr->put_pixel_rows) (&cinfo, dest_mgr, num_scanlines);
|
||||||
|
}
|
||||||
|
if ((tmp =
|
||||||
|
jpeg_skip_scanlines(&cinfo,
|
||||||
|
cinfo.output_height - crop_y - crop_height)) !=
|
||||||
|
cinfo.output_height - crop_y - crop_height) {
|
||||||
|
fprintf(stderr, "%s: jpeg_skip_scanlines() returned %u rather than %u\n",
|
||||||
|
progname, tmp, cinfo.output_height - crop_y - crop_height);
|
||||||
|
exit(EXIT_FAILURE);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Normal full-image decompress */
|
/* Normal full-image decompress */
|
||||||
@@ -792,11 +848,31 @@ main(int argc, char **argv)
|
|||||||
/* Write output file header */
|
/* Write output file header */
|
||||||
(*dest_mgr->start_output) (&cinfo, dest_mgr);
|
(*dest_mgr->start_output) (&cinfo, dest_mgr);
|
||||||
|
|
||||||
/* Process data */
|
if (cinfo.data_precision == 16) {
|
||||||
while (cinfo.output_scanline < cinfo.output_height) {
|
#ifdef D_LOSSLESS_SUPPORTED
|
||||||
num_scanlines = jpeg_read_scanlines(&cinfo, dest_mgr->buffer,
|
/* Process data */
|
||||||
dest_mgr->buffer_height);
|
while (cinfo.output_scanline < cinfo.output_height) {
|
||||||
(*dest_mgr->put_pixel_rows) (&cinfo, dest_mgr, num_scanlines);
|
num_scanlines = jpeg16_read_scanlines(&cinfo, dest_mgr->buffer16,
|
||||||
|
dest_mgr->buffer_height);
|
||||||
|
(*dest_mgr->put_pixel_rows) (&cinfo, dest_mgr, num_scanlines);
|
||||||
|
}
|
||||||
|
#else
|
||||||
|
ERREXIT1(&cinfo, JERR_BAD_PRECISION, cinfo.data_precision);
|
||||||
|
#endif
|
||||||
|
} else if (cinfo.data_precision == 12) {
|
||||||
|
/* Process data */
|
||||||
|
while (cinfo.output_scanline < cinfo.output_height) {
|
||||||
|
num_scanlines = jpeg12_read_scanlines(&cinfo, dest_mgr->buffer12,
|
||||||
|
dest_mgr->buffer_height);
|
||||||
|
(*dest_mgr->put_pixel_rows) (&cinfo, dest_mgr, num_scanlines);
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
/* Process data */
|
||||||
|
while (cinfo.output_scanline < cinfo.output_height) {
|
||||||
|
num_scanlines = jpeg_read_scanlines(&cinfo, dest_mgr->buffer,
|
||||||
|
dest_mgr->buffer_height);
|
||||||
|
(*dest_mgr->put_pixel_rows) (&cinfo, dest_mgr, num_scanlines);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -23,7 +23,7 @@
|
|||||||
<tr style="height: 56px;">
|
<tr style="height: 56px;">
|
||||||
<td id="projectalign" style="padding-left: 0.5em;">
|
<td id="projectalign" style="padding-left: 0.5em;">
|
||||||
<div id="projectname">TurboJPEG
|
<div id="projectname">TurboJPEG
|
||||||
 <span id="projectnumber">2.1.4</span>
|
 <span id="projectnumber">3</span>
|
||||||
</div>
|
</div>
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
|
|||||||
@@ -23,7 +23,7 @@
|
|||||||
<tr style="height: 56px;">
|
<tr style="height: 56px;">
|
||||||
<td id="projectalign" style="padding-left: 0.5em;">
|
<td id="projectalign" style="padding-left: 0.5em;">
|
||||||
<div id="projectname">TurboJPEG
|
<div id="projectname">TurboJPEG
|
||||||
 <span id="projectnumber">2.1.4</span>
|
 <span id="projectnumber">3</span>
|
||||||
</div>
|
</div>
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
|
|||||||
@@ -23,7 +23,7 @@
|
|||||||
<tr style="height: 56px;">
|
<tr style="height: 56px;">
|
||||||
<td id="projectalign" style="padding-left: 0.5em;">
|
<td id="projectalign" style="padding-left: 0.5em;">
|
||||||
<div id="projectname">TurboJPEG
|
<div id="projectname">TurboJPEG
|
||||||
 <span id="projectnumber">2.1.4</span>
|
 <span id="projectnumber">3</span>
|
||||||
</div>
|
</div>
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
|
|||||||
@@ -23,7 +23,7 @@
|
|||||||
<tr style="height: 56px;">
|
<tr style="height: 56px;">
|
||||||
<td id="projectalign" style="padding-left: 0.5em;">
|
<td id="projectalign" style="padding-left: 0.5em;">
|
||||||
<div id="projectname">TurboJPEG
|
<div id="projectname">TurboJPEG
|
||||||
 <span id="projectnumber">2.1.4</span>
|
 <span id="projectnumber">3</span>
|
||||||
</div>
|
</div>
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
|
|||||||
File diff suppressed because it is too large
Load Diff
@@ -23,7 +23,7 @@
|
|||||||
<tr style="height: 56px;">
|
<tr style="height: 56px;">
|
||||||
<td id="projectalign" style="padding-left: 0.5em;">
|
<td id="projectalign" style="padding-left: 0.5em;">
|
||||||
<div id="projectname">TurboJPEG
|
<div id="projectname">TurboJPEG
|
||||||
 <span id="projectnumber">2.1.4</span>
|
 <span id="projectnumber">3</span>
|
||||||
</div>
|
</div>
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
|
|||||||
@@ -23,7 +23,7 @@
|
|||||||
<tr style="height: 56px;">
|
<tr style="height: 56px;">
|
||||||
<td id="projectalign" style="padding-left: 0.5em;">
|
<td id="projectalign" style="padding-left: 0.5em;">
|
||||||
<div id="projectname">TurboJPEG
|
<div id="projectname">TurboJPEG
|
||||||
 <span id="projectnumber">2.1.4</span>
|
 <span id="projectnumber">3</span>
|
||||||
</div>
|
</div>
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
|
|||||||
@@ -1,103 +1,141 @@
|
|||||||
var searchData=
|
var searchData=
|
||||||
[
|
[
|
||||||
['tj_5fnumcs_8',['TJ_NUMCS',['../group___turbo_j_p_e_g.html#ga39f57a6fb02d9cf32e7b6890099b5a71',1,'turbojpeg.h']]],
|
['tj3alloc_8',['tj3Alloc',['../group___turbo_j_p_e_g.html#gab40a0b231122f536e503e3394569a68d',1,'turbojpeg.h']]],
|
||||||
['tj_5fnumerr_9',['TJ_NUMERR',['../group___turbo_j_p_e_g.html#ga79bde1b4a3e2351e00887e47781b966e',1,'turbojpeg.h']]],
|
['tj3compress12_9',['tj3Compress12',['../group___turbo_j_p_e_g.html#ga9a1968c384ec7abb6122830253ebf570',1,'turbojpeg.h']]],
|
||||||
['tj_5fnumpf_10',['TJ_NUMPF',['../group___turbo_j_p_e_g.html#ga7010a4402f54a45ba822ad8675a4655e',1,'turbojpeg.h']]],
|
['tj3compress16_10',['tj3Compress16',['../group___turbo_j_p_e_g.html#ga77901b71d0471784f318ada31ff4e7bd',1,'turbojpeg.h']]],
|
||||||
['tj_5fnumsamp_11',['TJ_NUMSAMP',['../group___turbo_j_p_e_g.html#ga5ef3d169162ce77ce348e292a0b7477c',1,'turbojpeg.h']]],
|
['tj3compress8_11',['tj3Compress8',['../group___turbo_j_p_e_g.html#ga2cc418a2dab709ad7f30f5b25905f138',1,'turbojpeg.h']]],
|
||||||
['tj_5fnumxop_12',['TJ_NUMXOP',['../group___turbo_j_p_e_g.html#ga0f6dbd18adf38b7d46ac547f0f4d562c',1,'turbojpeg.h']]],
|
['tj3compressfromyuv8_12',['tj3CompressFromYUV8',['../group___turbo_j_p_e_g.html#ga041c870d9c669eb3f385c78f4346c43f',1,'turbojpeg.h']]],
|
||||||
['tjalloc_13',['tjAlloc',['../group___turbo_j_p_e_g.html#gaec627dd4c5f30b7a775a7aea3bec5d83',1,'turbojpeg.h']]],
|
['tj3compressfromyuvplanes8_13',['tj3CompressFromYUVPlanes8',['../group___turbo_j_p_e_g.html#gac9f5ace3e73805b476c95dda9f8d0cd0',1,'turbojpeg.h']]],
|
||||||
['tjalphaoffset_14',['tjAlphaOffset',['../group___turbo_j_p_e_g.html#ga5af0ab065feefd526debf1e20c43e837',1,'turbojpeg.h']]],
|
['tj3decodeyuv8_14',['tj3DecodeYUV8',['../group___turbo_j_p_e_g.html#gaa1eb574f38b1c1de43a6c7aafcf68d8c',1,'turbojpeg.h']]],
|
||||||
['tjblueoffset_15',['tjBlueOffset',['../group___turbo_j_p_e_g.html#ga84e2e35d3f08025f976ec1ec53693dea',1,'turbojpeg.h']]],
|
['tj3decodeyuvplanes8_15',['tj3DecodeYUVPlanes8',['../group___turbo_j_p_e_g.html#gad366f1915f82c1ad4e7e37ebe073ca89',1,'turbojpeg.h']]],
|
||||||
['tjbufsize_16',['tjBufSize',['../group___turbo_j_p_e_g.html#ga67ac12fee79073242cb216e07c9f1f90',1,'turbojpeg.h']]],
|
['tj3decompress12_16',['tj3Decompress12',['../group___turbo_j_p_e_g.html#ga39b848f01781ad74a5b3941c012b6199',1,'turbojpeg.h']]],
|
||||||
['tjbufsizeyuv2_17',['tjBufSizeYUV2',['../group___turbo_j_p_e_g.html#ga5e5aac9e8bcf17049279301e2466474c',1,'turbojpeg.h']]],
|
['tj3decompress16_17',['tj3Decompress16',['../group___turbo_j_p_e_g.html#gaa074e63f9beb0b3ff42b833a4049df6e',1,'turbojpeg.h']]],
|
||||||
['tjcompress2_18',['tjCompress2',['../group___turbo_j_p_e_g.html#gafbdce0112fd78fd38efae841443a9bcf',1,'turbojpeg.h']]],
|
['tj3decompress8_18',['tj3Decompress8',['../group___turbo_j_p_e_g.html#ga1169c7c1a26ec18c9e6122cb8ae64013',1,'turbojpeg.h']]],
|
||||||
['tjcompressfromyuv_19',['tjCompressFromYUV',['../group___turbo_j_p_e_g.html#gab40f5096a72fd7e5bda9d6b58fa37e2e',1,'turbojpeg.h']]],
|
['tj3decompressheader_19',['tj3DecompressHeader',['../group___turbo_j_p_e_g.html#ga96d2c4b3432f9d88ad14758ae240b8d1',1,'turbojpeg.h']]],
|
||||||
['tjcompressfromyuvplanes_20',['tjCompressFromYUVPlanes',['../group___turbo_j_p_e_g.html#ga29ec5dfbd2d84b8724e951d6fa0d5d9e',1,'turbojpeg.h']]],
|
['tj3decompresstoyuv8_20',['tj3DecompressToYUV8',['../group___turbo_j_p_e_g.html#ga1e6bf6a19fec3f9fa7534348879d8320',1,'turbojpeg.h']]],
|
||||||
['tjcs_21',['TJCS',['../group___turbo_j_p_e_g.html#ga4f83ad3368e0e29d1957be0efa7c3720',1,'turbojpeg.h']]],
|
['tj3decompresstoyuvplanes8_21',['tj3DecompressToYUVPlanes8',['../group___turbo_j_p_e_g.html#ga934373482dbbf257f2280505b6ff4fb5',1,'turbojpeg.h']]],
|
||||||
['tjcs_5fcmyk_22',['TJCS_CMYK',['../group___turbo_j_p_e_g.html#gga4f83ad3368e0e29d1957be0efa7c3720a6c8b636152ac8195b869587db315ee53',1,'turbojpeg.h']]],
|
['tj3destroy_22',['tj3Destroy',['../group___turbo_j_p_e_g.html#ga53fbadf4560e95a65b8f5ab81703fe82',1,'turbojpeg.h']]],
|
||||||
['tjcs_5fgray_23',['TJCS_GRAY',['../group___turbo_j_p_e_g.html#gga4f83ad3368e0e29d1957be0efa7c3720ab3e7d6a87f695e45b81c1b5262b5a50a',1,'turbojpeg.h']]],
|
['tj3encodeyuv8_23',['tj3EncodeYUV8',['../group___turbo_j_p_e_g.html#ga2a8d50f130bde10f0a04030f8cc59936',1,'turbojpeg.h']]],
|
||||||
['tjcs_5frgb_24',['TJCS_RGB',['../group___turbo_j_p_e_g.html#gga4f83ad3368e0e29d1957be0efa7c3720a677cb7ccb85c4038ac41964a2e09e555',1,'turbojpeg.h']]],
|
['tj3encodeyuvplanes8_24',['tj3EncodeYUVPlanes8',['../group___turbo_j_p_e_g.html#gae2e9df38790e9bddc249d04cb158a4cf',1,'turbojpeg.h']]],
|
||||||
['tjcs_5fycbcr_25',['TJCS_YCbCr',['../group___turbo_j_p_e_g.html#gga4f83ad3368e0e29d1957be0efa7c3720a7389b8f65bb387ffedce3efd0d78ec75',1,'turbojpeg.h']]],
|
['tj3free_25',['tj3Free',['../group___turbo_j_p_e_g.html#gaddb84fb6c81769e9faa0f5a63b296606',1,'turbojpeg.h']]],
|
||||||
['tjcs_5fycck_26',['TJCS_YCCK',['../group___turbo_j_p_e_g.html#gga4f83ad3368e0e29d1957be0efa7c3720a53839e0fe867b76b58d16b0a1a7c598e',1,'turbojpeg.h']]],
|
['tj3get_26',['tj3Get',['../group___turbo_j_p_e_g.html#ga34af9ba3183bdf0ec7c8f47bb9a4c84f',1,'turbojpeg.h']]],
|
||||||
['tjdecodeyuv_27',['tjDecodeYUV',['../group___turbo_j_p_e_g.html#ga97c2cedc1e2bade15a84164c94e503c1',1,'turbojpeg.h']]],
|
['tj3geterrorcode_27',['tj3GetErrorCode',['../group___turbo_j_p_e_g.html#gab8c8279f1415fe425ff30dbbc56013bd',1,'turbojpeg.h']]],
|
||||||
['tjdecodeyuvplanes_28',['tjDecodeYUVPlanes',['../group___turbo_j_p_e_g.html#ga10e837c07fa9d25770565b237d3898d9',1,'turbojpeg.h']]],
|
['tj3geterrorstr_28',['tj3GetErrorStr',['../group___turbo_j_p_e_g.html#gaf2aab0e6dbb3edc57646b0fec25e8bb2',1,'turbojpeg.h']]],
|
||||||
['tjdecompress2_29',['tjDecompress2',['../group___turbo_j_p_e_g.html#gae9eccef8b682a48f43a9117c231ed013',1,'turbojpeg.h']]],
|
['tj3getscalingfactors_29',['tj3GetScalingFactors',['../group___turbo_j_p_e_g.html#ga74397f8e0587d4233182c72f085aaf04',1,'turbojpeg.h']]],
|
||||||
['tjdecompressheader3_30',['tjDecompressHeader3',['../group___turbo_j_p_e_g.html#ga0595681096bba7199cc6f3533cb25f77',1,'turbojpeg.h']]],
|
['tj3init_30',['tj3Init',['../group___turbo_j_p_e_g.html#ga69c09d39f97ec30250ad3605ace7e5df',1,'turbojpeg.h']]],
|
||||||
['tjdecompresstoyuv2_31',['tjDecompressToYUV2',['../group___turbo_j_p_e_g.html#ga5a3093e325598c17a9f004323af6fafa',1,'turbojpeg.h']]],
|
['tj3jpegbufsize_31',['tj3JPEGBufSize',['../group___turbo_j_p_e_g.html#gac6285e58e35a35d871d7162ec5a929c4',1,'turbojpeg.h']]],
|
||||||
['tjdecompresstoyuvplanes_32',['tjDecompressToYUVPlanes',['../group___turbo_j_p_e_g.html#gaa59f901a5258ada5bd0185ad59368540',1,'turbojpeg.h']]],
|
['tj3loadimage12_32',['tj3LoadImage12',['../group___turbo_j_p_e_g.html#ga1f03c26892a26d4ce077ed6a4ac40e8f',1,'turbojpeg.h']]],
|
||||||
['tjdestroy_33',['tjDestroy',['../group___turbo_j_p_e_g.html#ga75f355fa27225ba1a4ee392c852394d2',1,'turbojpeg.h']]],
|
['tj3loadimage16_33',['tj3LoadImage16',['../group___turbo_j_p_e_g.html#ga638aeba63e0ccb89d472fdbf34224cfc',1,'turbojpeg.h']]],
|
||||||
['tjencodeyuv3_34',['tjEncodeYUV3',['../group___turbo_j_p_e_g.html#ga5d619e0a02b71e05a8dffb764f6d7a64',1,'turbojpeg.h']]],
|
['tj3loadimage8_34',['tj3LoadImage8',['../group___turbo_j_p_e_g.html#ga565aaae7be3f8ca9099b56655c893251',1,'turbojpeg.h']]],
|
||||||
['tjencodeyuvplanes_35',['tjEncodeYUVPlanes',['../group___turbo_j_p_e_g.html#gae2d04c72457fe7f4d60cf78ab1b1feb1',1,'turbojpeg.h']]],
|
['tj3saveimage12_35',['tj3SaveImage12',['../group___turbo_j_p_e_g.html#ga7c64b5106d04267a46aad85f9714ad90',1,'turbojpeg.h']]],
|
||||||
['tjerr_36',['TJERR',['../group___turbo_j_p_e_g.html#gafbc17cfa57d0d5d11fea35ac025950fe',1,'turbojpeg.h']]],
|
['tj3saveimage16_36',['tj3SaveImage16',['../group___turbo_j_p_e_g.html#ga0fd87851f4266aca24bf4594dd0c0e71',1,'turbojpeg.h']]],
|
||||||
['tjerr_5ffatal_37',['TJERR_FATAL',['../group___turbo_j_p_e_g.html#ggafbc17cfa57d0d5d11fea35ac025950feafc9cceeada13122b09e4851e3788039a',1,'turbojpeg.h']]],
|
['tj3saveimage8_37',['tj3SaveImage8',['../group___turbo_j_p_e_g.html#gaa4ec838988e469cc15618e4690cc8722',1,'turbojpeg.h']]],
|
||||||
['tjerr_5fwarning_38',['TJERR_WARNING',['../group___turbo_j_p_e_g.html#ggafbc17cfa57d0d5d11fea35ac025950fea342dd6e2aedb47bb257b4e7568329b59',1,'turbojpeg.h']]],
|
['tj3set_38',['tj3Set',['../group___turbo_j_p_e_g.html#gaddf92640bfee3e8622218c713e77e7db',1,'turbojpeg.h']]],
|
||||||
['tjflag_5faccuratedct_39',['TJFLAG_ACCURATEDCT',['../group___turbo_j_p_e_g.html#gacb233cfd722d66d1ccbf48a7de81f0e0',1,'turbojpeg.h']]],
|
['tj3setcroppingregion_39',['tj3SetCroppingRegion',['../group___turbo_j_p_e_g.html#gaa49c7bd4c9431667a043cfc93388ba1c',1,'turbojpeg.h']]],
|
||||||
['tjflag_5fbottomup_40',['TJFLAG_BOTTOMUP',['../group___turbo_j_p_e_g.html#ga72ecf4ebe6eb702d3c6f5ca27455e1ec',1,'turbojpeg.h']]],
|
['tj3setscalingfactor_40',['tj3SetScalingFactor',['../group___turbo_j_p_e_g.html#ga89da17ee1e43ff423382cbc145803c75',1,'turbojpeg.h']]],
|
||||||
['tjflag_5ffastdct_41',['TJFLAG_FASTDCT',['../group___turbo_j_p_e_g.html#gaabce235db80d3f698b27f36cbd453da2',1,'turbojpeg.h']]],
|
['tj3transform_41',['tj3Transform',['../group___turbo_j_p_e_g.html#gaff23ba1dcabed456794b844791613920',1,'turbojpeg.h']]],
|
||||||
['tjflag_5ffastupsample_42',['TJFLAG_FASTUPSAMPLE',['../group___turbo_j_p_e_g.html#ga4ee4506c81177a06f77e2504a22efd2d',1,'turbojpeg.h']]],
|
['tj3yuvbufsize_42',['tj3YUVBufSize',['../group___turbo_j_p_e_g.html#gaaebaa16973a0f550a66eca5765ed0546',1,'turbojpeg.h']]],
|
||||||
['tjflag_5flimitscans_43',['TJFLAG_LIMITSCANS',['../group___turbo_j_p_e_g.html#ga163e6482dc5096831feef9c79ff3f805',1,'turbojpeg.h']]],
|
['tj3yuvplaneheight_43',['tj3YUVPlaneHeight',['../group___turbo_j_p_e_g.html#ga969767ec8180cc3edd99cf507f87299b',1,'turbojpeg.h']]],
|
||||||
['tjflag_5fnorealloc_44',['TJFLAG_NOREALLOC',['../group___turbo_j_p_e_g.html#ga8808d403c68b62aaa58a4c1e58e98963',1,'turbojpeg.h']]],
|
['tj3yuvplanesize_44',['tj3YUVPlaneSize',['../group___turbo_j_p_e_g.html#gacc19d265edce76b46146f59579f9438d',1,'turbojpeg.h']]],
|
||||||
['tjflag_5fprogressive_45',['TJFLAG_PROGRESSIVE',['../group___turbo_j_p_e_g.html#ga43b426750b46190a25d34a67ef76df1b',1,'turbojpeg.h']]],
|
['tj3yuvplanewidth_45',['tj3YUVPlaneWidth',['../group___turbo_j_p_e_g.html#gac99d1933ede1d59fcada9a826e88eb2d',1,'turbojpeg.h']]],
|
||||||
['tjflag_5fstoponwarning_46',['TJFLAG_STOPONWARNING',['../group___turbo_j_p_e_g.html#ga519cfa4ef6c18d9e5b455fdf59306a3a',1,'turbojpeg.h']]],
|
['tj_5fnumcs_46',['TJ_NUMCS',['../group___turbo_j_p_e_g.html#ga39f57a6fb02d9cf32e7b6890099b5a71',1,'turbojpeg.h']]],
|
||||||
['tjfree_47',['tjFree',['../group___turbo_j_p_e_g.html#gaea863d2da0cdb609563aabdf9196514b',1,'turbojpeg.h']]],
|
['tj_5fnumerr_47',['TJ_NUMERR',['../group___turbo_j_p_e_g.html#ga79bde1b4a3e2351e00887e47781b966e',1,'turbojpeg.h']]],
|
||||||
['tjgeterrorcode_48',['tjGetErrorCode',['../group___turbo_j_p_e_g.html#ga414feeffbf860ebd31c745df203de410',1,'turbojpeg.h']]],
|
['tj_5fnuminit_48',['TJ_NUMINIT',['../group___turbo_j_p_e_g.html#ga5e0e8c784295c636f0bf8dab93c4bddf',1,'turbojpeg.h']]],
|
||||||
['tjgeterrorstr2_49',['tjGetErrorStr2',['../group___turbo_j_p_e_g.html#ga1ead8574f9f39fbafc6b497124e7aafa',1,'turbojpeg.h']]],
|
['tj_5fnumparam_49',['TJ_NUMPARAM',['../group___turbo_j_p_e_g.html#gaa628be5db276fc3676dfba205d45d780',1,'turbojpeg.h']]],
|
||||||
['tjgetscalingfactors_50',['tjGetScalingFactors',['../group___turbo_j_p_e_g.html#ga193d0977b3b9966d53a6c402e90899b1',1,'turbojpeg.h']]],
|
['tj_5fnumpf_50',['TJ_NUMPF',['../group___turbo_j_p_e_g.html#ga7010a4402f54a45ba822ad8675a4655e',1,'turbojpeg.h']]],
|
||||||
['tjgreenoffset_51',['tjGreenOffset',['../group___turbo_j_p_e_g.html#ga82d6e35da441112a411da41923c0ba2f',1,'turbojpeg.h']]],
|
['tj_5fnumsamp_51',['TJ_NUMSAMP',['../group___turbo_j_p_e_g.html#ga5ef3d169162ce77ce348e292a0b7477c',1,'turbojpeg.h']]],
|
||||||
['tjhandle_52',['tjhandle',['../group___turbo_j_p_e_g.html#ga758d2634ecb4949de7815cba621f5763',1,'turbojpeg.h']]],
|
['tj_5fnumxop_52',['TJ_NUMXOP',['../group___turbo_j_p_e_g.html#ga0f6dbd18adf38b7d46ac547f0f4d562c',1,'turbojpeg.h']]],
|
||||||
['tjinitcompress_53',['tjInitCompress',['../group___turbo_j_p_e_g.html#ga9d63a05fc6d813f4aae06107041a37e8',1,'turbojpeg.h']]],
|
['tjalphaoffset_53',['tjAlphaOffset',['../group___turbo_j_p_e_g.html#ga5af0ab065feefd526debf1e20c43e837',1,'turbojpeg.h']]],
|
||||||
['tjinitdecompress_54',['tjInitDecompress',['../group___turbo_j_p_e_g.html#ga52300eac3f3d9ef4bab303bc244f62d3',1,'turbojpeg.h']]],
|
['tjblueoffset_54',['tjBlueOffset',['../group___turbo_j_p_e_g.html#ga84e2e35d3f08025f976ec1ec53693dea',1,'turbojpeg.h']]],
|
||||||
['tjinittransform_55',['tjInitTransform',['../group___turbo_j_p_e_g.html#ga928beff6ac248ceadf01089fc6b41957',1,'turbojpeg.h']]],
|
['tjcs_55',['TJCS',['../group___turbo_j_p_e_g.html#ga4f83ad3368e0e29d1957be0efa7c3720',1,'turbojpeg.h']]],
|
||||||
['tjloadimage_56',['tjLoadImage',['../group___turbo_j_p_e_g.html#gaffbd83c375e79f5db4b5c5d8ad4466e7',1,'turbojpeg.h']]],
|
['tjcs_5fcmyk_56',['TJCS_CMYK',['../group___turbo_j_p_e_g.html#gga4f83ad3368e0e29d1957be0efa7c3720a6c8b636152ac8195b869587db315ee53',1,'turbojpeg.h']]],
|
||||||
['tjmcuheight_57',['tjMCUHeight',['../group___turbo_j_p_e_g.html#gabd247bb9fecb393eca57366feb8327bf',1,'turbojpeg.h']]],
|
['tjcs_5fgray_57',['TJCS_GRAY',['../group___turbo_j_p_e_g.html#gga4f83ad3368e0e29d1957be0efa7c3720ab3e7d6a87f695e45b81c1b5262b5a50a',1,'turbojpeg.h']]],
|
||||||
['tjmcuwidth_58',['tjMCUWidth',['../group___turbo_j_p_e_g.html#ga9e61e7cd47a15a173283ba94e781308c',1,'turbojpeg.h']]],
|
['tjcs_5frgb_58',['TJCS_RGB',['../group___turbo_j_p_e_g.html#gga4f83ad3368e0e29d1957be0efa7c3720a677cb7ccb85c4038ac41964a2e09e555',1,'turbojpeg.h']]],
|
||||||
['tjpad_59',['TJPAD',['../group___turbo_j_p_e_g.html#ga0aba955473315e405295d978f0c16511',1,'turbojpeg.h']]],
|
['tjcs_5fycbcr_59',['TJCS_YCbCr',['../group___turbo_j_p_e_g.html#gga4f83ad3368e0e29d1957be0efa7c3720a7389b8f65bb387ffedce3efd0d78ec75',1,'turbojpeg.h']]],
|
||||||
['tjpf_60',['TJPF',['../group___turbo_j_p_e_g.html#gac916144e26c3817ac514e64ae5d12e2a',1,'turbojpeg.h']]],
|
['tjcs_5fycck_60',['TJCS_YCCK',['../group___turbo_j_p_e_g.html#gga4f83ad3368e0e29d1957be0efa7c3720a53839e0fe867b76b58d16b0a1a7c598e',1,'turbojpeg.h']]],
|
||||||
['tjpf_5fabgr_61',['TJPF_ABGR',['../group___turbo_j_p_e_g.html#ggac916144e26c3817ac514e64ae5d12e2aa1ba1a7f1631dbeaa49a0a85fc4a40081',1,'turbojpeg.h']]],
|
['tjerr_61',['TJERR',['../group___turbo_j_p_e_g.html#gafbc17cfa57d0d5d11fea35ac025950fe',1,'turbojpeg.h']]],
|
||||||
['tjpf_5fargb_62',['TJPF_ARGB',['../group___turbo_j_p_e_g.html#ggac916144e26c3817ac514e64ae5d12e2aae8f846ed9d9de99b6e1dfe448848765c',1,'turbojpeg.h']]],
|
['tjerr_5ffatal_62',['TJERR_FATAL',['../group___turbo_j_p_e_g.html#ggafbc17cfa57d0d5d11fea35ac025950feafc9cceeada13122b09e4851e3788039a',1,'turbojpeg.h']]],
|
||||||
['tjpf_5fbgr_63',['TJPF_BGR',['../group___turbo_j_p_e_g.html#ggac916144e26c3817ac514e64ae5d12e2aab10624437fb8ef495a0b153e65749839',1,'turbojpeg.h']]],
|
['tjerr_5fwarning_63',['TJERR_WARNING',['../group___turbo_j_p_e_g.html#ggafbc17cfa57d0d5d11fea35ac025950fea342dd6e2aedb47bb257b4e7568329b59',1,'turbojpeg.h']]],
|
||||||
['tjpf_5fbgra_64',['TJPF_BGRA',['../group___turbo_j_p_e_g.html#ggac916144e26c3817ac514e64ae5d12e2aac037ff1845cf9b74bb81a3659c2b9fb4',1,'turbojpeg.h']]],
|
['tjgreenoffset_64',['tjGreenOffset',['../group___turbo_j_p_e_g.html#ga82d6e35da441112a411da41923c0ba2f',1,'turbojpeg.h']]],
|
||||||
['tjpf_5fbgrx_65',['TJPF_BGRX',['../group___turbo_j_p_e_g.html#ggac916144e26c3817ac514e64ae5d12e2aa2a1fbf569ca79897eae886e3376ca4c8',1,'turbojpeg.h']]],
|
['tjhandle_65',['tjhandle',['../group___turbo_j_p_e_g.html#ga758d2634ecb4949de7815cba621f5763',1,'turbojpeg.h']]],
|
||||||
['tjpf_5fcmyk_66',['TJPF_CMYK',['../group___turbo_j_p_e_g.html#ggac916144e26c3817ac514e64ae5d12e2aa7f5100ec44c91994e243f1cf55553f8b',1,'turbojpeg.h']]],
|
['tjinit_66',['TJINIT',['../group___turbo_j_p_e_g.html#ga3850bbee1313e752e667b4eb08b1e086',1,'turbojpeg.h']]],
|
||||||
['tjpf_5fgray_67',['TJPF_GRAY',['../group___turbo_j_p_e_g.html#ggac916144e26c3817ac514e64ae5d12e2aa5431b54b015337705f13118073711a1a',1,'turbojpeg.h']]],
|
['tjinit_5fcompress_67',['TJINIT_COMPRESS',['../group___turbo_j_p_e_g.html#gga3850bbee1313e752e667b4eb08b1e086aa45ac279e3dc6ffabc4b0f45864da796',1,'turbojpeg.h']]],
|
||||||
['tjpf_5frgb_68',['TJPF_RGB',['../group___turbo_j_p_e_g.html#ggac916144e26c3817ac514e64ae5d12e2aa7ce93230bff449518ce387c17e6ed37c',1,'turbojpeg.h']]],
|
['tjinit_5fdecompress_68',['TJINIT_DECOMPRESS',['../group___turbo_j_p_e_g.html#gga3850bbee1313e752e667b4eb08b1e086a4b8ca1ef700699b71350700bf95c2167',1,'turbojpeg.h']]],
|
||||||
['tjpf_5frgba_69',['TJPF_RGBA',['../group___turbo_j_p_e_g.html#ggac916144e26c3817ac514e64ae5d12e2aa88d2e88fab67f6503cf972e14851cc12',1,'turbojpeg.h']]],
|
['tjinit_5ftransform_69',['TJINIT_TRANSFORM',['../group___turbo_j_p_e_g.html#gga3850bbee1313e752e667b4eb08b1e086a8d58a2a4c45b3e0cd349746544a6e0c2',1,'turbojpeg.h']]],
|
||||||
['tjpf_5frgbx_70',['TJPF_RGBX',['../group___turbo_j_p_e_g.html#ggac916144e26c3817ac514e64ae5d12e2aa83973bebb7e2dc6fa8bae89ff3f42e01',1,'turbojpeg.h']]],
|
['tjmcuheight_70',['tjMCUHeight',['../group___turbo_j_p_e_g.html#gabd247bb9fecb393eca57366feb8327bf',1,'turbojpeg.h']]],
|
||||||
['tjpf_5funknown_71',['TJPF_UNKNOWN',['../group___turbo_j_p_e_g.html#ggac916144e26c3817ac514e64ae5d12e2aa84c1a6cead7952998e2fb895844a21ed',1,'turbojpeg.h']]],
|
['tjmcuwidth_71',['tjMCUWidth',['../group___turbo_j_p_e_g.html#ga9e61e7cd47a15a173283ba94e781308c',1,'turbojpeg.h']]],
|
||||||
['tjpf_5fxbgr_72',['TJPF_XBGR',['../group___turbo_j_p_e_g.html#ggac916144e26c3817ac514e64ae5d12e2aaf6603b27147de47e212e75dac027b2af',1,'turbojpeg.h']]],
|
['tjparam_72',['TJPARAM',['../group___turbo_j_p_e_g.html#gaa0f6be63ba78278299c9f5c12031fe82',1,'turbojpeg.h']]],
|
||||||
['tjpf_5fxrgb_73',['TJPF_XRGB',['../group___turbo_j_p_e_g.html#ggac916144e26c3817ac514e64ae5d12e2aadae996905efcfa3b42a0bb3bea7f9d84',1,'turbojpeg.h']]],
|
['tjparam_5farithmetic_73',['TJPARAM_ARITHMETIC',['../group___turbo_j_p_e_g.html#ggaa0f6be63ba78278299c9f5c12031fe82a1c756757384308145602c040524aebf7',1,'turbojpeg.h']]],
|
||||||
['tjpixelsize_74',['tjPixelSize',['../group___turbo_j_p_e_g.html#gad77cf8fe5b2bfd3cb3f53098146abb4c',1,'turbojpeg.h']]],
|
['tjparam_5fbottomup_74',['TJPARAM_BOTTOMUP',['../group___turbo_j_p_e_g.html#ggaa0f6be63ba78278299c9f5c12031fe82a924657172695ed6cb0b128219546fcce',1,'turbojpeg.h']]],
|
||||||
['tjplaneheight_75',['tjPlaneHeight',['../group___turbo_j_p_e_g.html#ga1a209696c6a80748f20e134b3c64789f',1,'turbojpeg.h']]],
|
['tjparam_5fcolorspace_75',['TJPARAM_COLORSPACE',['../group___turbo_j_p_e_g.html#ggaa0f6be63ba78278299c9f5c12031fe82a46a10d46309514907d0c39fcd86c324c',1,'turbojpeg.h']]],
|
||||||
['tjplanesizeyuv_76',['tjPlaneSizeYUV',['../group___turbo_j_p_e_g.html#gab4ab7b24f6e797d79abaaa670373961d',1,'turbojpeg.h']]],
|
['tjparam_5fdensityunits_76',['TJPARAM_DENSITYUNITS',['../group___turbo_j_p_e_g.html#ggaa0f6be63ba78278299c9f5c12031fe82a4c045981bd8a303521a401dbbe1df208',1,'turbojpeg.h']]],
|
||||||
['tjplanewidth_77',['tjPlaneWidth',['../group___turbo_j_p_e_g.html#ga63fb66bb1e36c74008c4634360becbb1',1,'turbojpeg.h']]],
|
['tjparam_5ffastdct_77',['TJPARAM_FASTDCT',['../group___turbo_j_p_e_g.html#ggaa0f6be63ba78278299c9f5c12031fe82a6914692ac6ec5567787d592b7563f627',1,'turbojpeg.h']]],
|
||||||
['tjredoffset_78',['tjRedOffset',['../group___turbo_j_p_e_g.html#gadd9b446742ac8a3923f7992c7988fea8',1,'turbojpeg.h']]],
|
['tjparam_5ffastupsample_78',['TJPARAM_FASTUPSAMPLE',['../group___turbo_j_p_e_g.html#ggaa0f6be63ba78278299c9f5c12031fe82a0e051ac106f7b7402b690a5daf4869c0',1,'turbojpeg.h']]],
|
||||||
['tjregion_79',['tjregion',['../structtjregion.html',1,'']]],
|
['tjparam_5fjpegheight_79',['TJPARAM_JPEGHEIGHT',['../group___turbo_j_p_e_g.html#ggaa0f6be63ba78278299c9f5c12031fe82a8f76673be73f2b659440a9572a65a95f',1,'turbojpeg.h']]],
|
||||||
['tjsamp_80',['TJSAMP',['../group___turbo_j_p_e_g.html#ga1d047060ea80bb9820d540bb928e9074',1,'turbojpeg.h']]],
|
['tjparam_5fjpegwidth_80',['TJPARAM_JPEGWIDTH',['../group___turbo_j_p_e_g.html#ggaa0f6be63ba78278299c9f5c12031fe82a02ab77fb294a0c9061a78cd424c82dd8',1,'turbojpeg.h']]],
|
||||||
['tjsamp_5f411_81',['TJSAMP_411',['../group___turbo_j_p_e_g.html#gga1d047060ea80bb9820d540bb928e9074a28ec62575e5ea295c3fde3001dc628e2',1,'turbojpeg.h']]],
|
['tjparam_5flossless_81',['TJPARAM_LOSSLESS',['../group___turbo_j_p_e_g.html#ggaa0f6be63ba78278299c9f5c12031fe82a249f35f0770792b19f995e603bb17c6f',1,'turbojpeg.h']]],
|
||||||
['tjsamp_5f420_82',['TJSAMP_420',['../group___turbo_j_p_e_g.html#gga1d047060ea80bb9820d540bb928e9074a63085dbf683cfe39e513cdb6343e3737',1,'turbojpeg.h']]],
|
['tjparam_5flosslesspsv_82',['TJPARAM_LOSSLESSPSV',['../group___turbo_j_p_e_g.html#ggaa0f6be63ba78278299c9f5c12031fe82abcc997d40e5bec84817c12b76ef84159',1,'turbojpeg.h']]],
|
||||||
['tjsamp_5f422_83',['TJSAMP_422',['../group___turbo_j_p_e_g.html#gga1d047060ea80bb9820d540bb928e9074a136130902cc578f11f32429b59368404',1,'turbojpeg.h']]],
|
['tjparam_5flosslesspt_83',['TJPARAM_LOSSLESSPT',['../group___turbo_j_p_e_g.html#ggaa0f6be63ba78278299c9f5c12031fe82a4a6c6f25764ecaf4231a36bff844e46a',1,'turbojpeg.h']]],
|
||||||
['tjsamp_5f440_84',['TJSAMP_440',['../group___turbo_j_p_e_g.html#gga1d047060ea80bb9820d540bb928e9074accf740e6f3aa6ba20ba922cad13cb974',1,'turbojpeg.h']]],
|
['tjparam_5fnorealloc_84',['TJPARAM_NOREALLOC',['../group___turbo_j_p_e_g.html#ggaa0f6be63ba78278299c9f5c12031fe82ae64ffb358bc7b194fd48e0f27750b29b',1,'turbojpeg.h']]],
|
||||||
['tjsamp_5f444_85',['TJSAMP_444',['../group___turbo_j_p_e_g.html#gga1d047060ea80bb9820d540bb928e9074afb8da4f44197837bdec0a4f593dacae3',1,'turbojpeg.h']]],
|
['tjparam_5foptimize_85',['TJPARAM_OPTIMIZE',['../group___turbo_j_p_e_g.html#ggaa0f6be63ba78278299c9f5c12031fe82a8f0af9afc0b36443751f9ee82b760aa6',1,'turbojpeg.h']]],
|
||||||
['tjsamp_5fgray_86',['TJSAMP_GRAY',['../group___turbo_j_p_e_g.html#gga1d047060ea80bb9820d540bb928e9074a3f1c9504842ddc7a48d0f690754b6248',1,'turbojpeg.h']]],
|
['tjparam_5fprecision_86',['TJPARAM_PRECISION',['../group___turbo_j_p_e_g.html#ggaa0f6be63ba78278299c9f5c12031fe82a781db82741934e8cd008d308597c59d8',1,'turbojpeg.h']]],
|
||||||
['tjsaveimage_87',['tjSaveImage',['../group___turbo_j_p_e_g.html#ga6f445b22d8933ae4815b3370a538d879',1,'turbojpeg.h']]],
|
['tjparam_5fprogressive_87',['TJPARAM_PROGRESSIVE',['../group___turbo_j_p_e_g.html#ggaa0f6be63ba78278299c9f5c12031fe82a1716f242b3859905b4a317dae8cfb75f',1,'turbojpeg.h']]],
|
||||||
['tjscaled_88',['TJSCALED',['../group___turbo_j_p_e_g.html#ga84878bb65404204743aa18cac02781df',1,'turbojpeg.h']]],
|
['tjparam_5fquality_88',['TJPARAM_QUALITY',['../group___turbo_j_p_e_g.html#ggaa0f6be63ba78278299c9f5c12031fe82a0467e8792621f2d817dc2af563d3186c',1,'turbojpeg.h']]],
|
||||||
['tjscalingfactor_89',['tjscalingfactor',['../structtjscalingfactor.html',1,'']]],
|
['tjparam_5frestartblocks_89',['TJPARAM_RESTARTBLOCKS',['../group___turbo_j_p_e_g.html#ggaa0f6be63ba78278299c9f5c12031fe82a343c72883b7160f23f3ef46fc548a0ec',1,'turbojpeg.h']]],
|
||||||
['tjtransform_90',['tjtransform',['../structtjtransform.html',1,'tjtransform'],['../group___turbo_j_p_e_g.html#ga9cb8abf4cc91881e04a0329b2270be25',1,'tjTransform(tjhandle handle, const unsigned char *jpegBuf, unsigned long jpegSize, int n, unsigned char **dstBufs, unsigned long *dstSizes, tjtransform *transforms, int flags): turbojpeg.h'],['../group___turbo_j_p_e_g.html#ga504805ec0161f1b505397ca0118bf8fd',1,'tjtransform(): turbojpeg.h']]],
|
['tjparam_5frestartrows_90',['TJPARAM_RESTARTROWS',['../group___turbo_j_p_e_g.html#ggaa0f6be63ba78278299c9f5c12031fe82a714367585952fe5c863f0dba5bd37e5c',1,'turbojpeg.h']]],
|
||||||
['tjxop_91',['TJXOP',['../group___turbo_j_p_e_g.html#ga2de531af4e7e6c4f124908376b354866',1,'turbojpeg.h']]],
|
['tjparam_5fscanlimit_91',['TJPARAM_SCANLIMIT',['../group___turbo_j_p_e_g.html#ggaa0f6be63ba78278299c9f5c12031fe82ac478910e20ecf61b914f9824d80f8167',1,'turbojpeg.h']]],
|
||||||
['tjxop_5fhflip_92',['TJXOP_HFLIP',['../group___turbo_j_p_e_g.html#gga2de531af4e7e6c4f124908376b354866aa0df69776caa30f0fa28e26332d311ce',1,'turbojpeg.h']]],
|
['tjparam_5fstoponwarning_92',['TJPARAM_STOPONWARNING',['../group___turbo_j_p_e_g.html#ggaa0f6be63ba78278299c9f5c12031fe82a555e2212079fa49b30bcd2879c6c8ddb',1,'turbojpeg.h']]],
|
||||||
['tjxop_5fnone_93',['TJXOP_NONE',['../group___turbo_j_p_e_g.html#gga2de531af4e7e6c4f124908376b354866aad88c0366cd3f7d0eac9d7a3fa1c2c27',1,'turbojpeg.h']]],
|
['tjparam_5fsubsamp_93',['TJPARAM_SUBSAMP',['../group___turbo_j_p_e_g.html#ggaa0f6be63ba78278299c9f5c12031fe82a2a3494a8215d3de4fdbaeb2ba6f6b03a',1,'turbojpeg.h']]],
|
||||||
['tjxop_5frot180_94',['TJXOP_ROT180',['../group___turbo_j_p_e_g.html#gga2de531af4e7e6c4f124908376b354866a140952eb8dd0300accfcc22726d69692',1,'turbojpeg.h']]],
|
['tjparam_5fxdensity_94',['TJPARAM_XDENSITY',['../group___turbo_j_p_e_g.html#ggaa0f6be63ba78278299c9f5c12031fe82a4de5c9d7cab5be806143a43c3b0e0877',1,'turbojpeg.h']]],
|
||||||
['tjxop_5frot270_95',['TJXOP_ROT270',['../group___turbo_j_p_e_g.html#gga2de531af4e7e6c4f124908376b354866a3064ee5dfb7f032df332818587567a08',1,'turbojpeg.h']]],
|
['tjparam_5fydensity_95',['TJPARAM_YDENSITY',['../group___turbo_j_p_e_g.html#ggaa0f6be63ba78278299c9f5c12031fe82abda48f2df7eb9b88e2b7621efb017eba',1,'turbojpeg.h']]],
|
||||||
['tjxop_5frot90_96',['TJXOP_ROT90',['../group___turbo_j_p_e_g.html#gga2de531af4e7e6c4f124908376b354866a43b2bbb23bc4bd548422d43fbe9af128',1,'turbojpeg.h']]],
|
['tjpf_96',['TJPF',['../group___turbo_j_p_e_g.html#gac916144e26c3817ac514e64ae5d12e2a',1,'turbojpeg.h']]],
|
||||||
['tjxop_5ftranspose_97',['TJXOP_TRANSPOSE',['../group___turbo_j_p_e_g.html#gga2de531af4e7e6c4f124908376b354866a31060aed199f886afdd417f80499c32d',1,'turbojpeg.h']]],
|
['tjpf_5fabgr_97',['TJPF_ABGR',['../group___turbo_j_p_e_g.html#ggac916144e26c3817ac514e64ae5d12e2aa1ba1a7f1631dbeaa49a0a85fc4a40081',1,'turbojpeg.h']]],
|
||||||
['tjxop_5ftransverse_98',['TJXOP_TRANSVERSE',['../group___turbo_j_p_e_g.html#gga2de531af4e7e6c4f124908376b354866af3b14d488aea6ece9e5b3df73a74d6a4',1,'turbojpeg.h']]],
|
['tjpf_5fargb_98',['TJPF_ARGB',['../group___turbo_j_p_e_g.html#ggac916144e26c3817ac514e64ae5d12e2aae8f846ed9d9de99b6e1dfe448848765c',1,'turbojpeg.h']]],
|
||||||
['tjxop_5fvflip_99',['TJXOP_VFLIP',['../group___turbo_j_p_e_g.html#gga2de531af4e7e6c4f124908376b354866a324eddfbec53b7e691f61e56929d0d5d',1,'turbojpeg.h']]],
|
['tjpf_5fbgr_99',['TJPF_BGR',['../group___turbo_j_p_e_g.html#ggac916144e26c3817ac514e64ae5d12e2aab10624437fb8ef495a0b153e65749839',1,'turbojpeg.h']]],
|
||||||
['tjxopt_5fcopynone_100',['TJXOPT_COPYNONE',['../group___turbo_j_p_e_g.html#ga153b468cfb905d0de61706c838986fe8',1,'turbojpeg.h']]],
|
['tjpf_5fbgra_100',['TJPF_BGRA',['../group___turbo_j_p_e_g.html#ggac916144e26c3817ac514e64ae5d12e2aac037ff1845cf9b74bb81a3659c2b9fb4',1,'turbojpeg.h']]],
|
||||||
['tjxopt_5fcrop_101',['TJXOPT_CROP',['../group___turbo_j_p_e_g.html#ga9c771a757fc1294add611906b89ab2d2',1,'turbojpeg.h']]],
|
['tjpf_5fbgrx_101',['TJPF_BGRX',['../group___turbo_j_p_e_g.html#ggac916144e26c3817ac514e64ae5d12e2aa2a1fbf569ca79897eae886e3376ca4c8',1,'turbojpeg.h']]],
|
||||||
['tjxopt_5fgray_102',['TJXOPT_GRAY',['../group___turbo_j_p_e_g.html#ga3acee7b48ade1b99e5588736007c2589',1,'turbojpeg.h']]],
|
['tjpf_5fcmyk_102',['TJPF_CMYK',['../group___turbo_j_p_e_g.html#ggac916144e26c3817ac514e64ae5d12e2aa7f5100ec44c91994e243f1cf55553f8b',1,'turbojpeg.h']]],
|
||||||
['tjxopt_5fnooutput_103',['TJXOPT_NOOUTPUT',['../group___turbo_j_p_e_g.html#gafbf992bbf6e006705886333703ffab31',1,'turbojpeg.h']]],
|
['tjpf_5fgray_103',['TJPF_GRAY',['../group___turbo_j_p_e_g.html#ggac916144e26c3817ac514e64ae5d12e2aa5431b54b015337705f13118073711a1a',1,'turbojpeg.h']]],
|
||||||
['tjxopt_5fperfect_104',['TJXOPT_PERFECT',['../group___turbo_j_p_e_g.html#ga50e03cb5ed115330e212417429600b00',1,'turbojpeg.h']]],
|
['tjpf_5frgb_104',['TJPF_RGB',['../group___turbo_j_p_e_g.html#ggac916144e26c3817ac514e64ae5d12e2aa7ce93230bff449518ce387c17e6ed37c',1,'turbojpeg.h']]],
|
||||||
['tjxopt_5fprogressive_105',['TJXOPT_PROGRESSIVE',['../group___turbo_j_p_e_g.html#gad2371c80674584ecc1a7d75e564cf026',1,'turbojpeg.h']]],
|
['tjpf_5frgba_105',['TJPF_RGBA',['../group___turbo_j_p_e_g.html#ggac916144e26c3817ac514e64ae5d12e2aa88d2e88fab67f6503cf972e14851cc12',1,'turbojpeg.h']]],
|
||||||
['tjxopt_5ftrim_106',['TJXOPT_TRIM',['../group___turbo_j_p_e_g.html#ga319826b7eb1583c0595bbe7b95428709',1,'turbojpeg.h']]],
|
['tjpf_5frgbx_106',['TJPF_RGBX',['../group___turbo_j_p_e_g.html#ggac916144e26c3817ac514e64ae5d12e2aa83973bebb7e2dc6fa8bae89ff3f42e01',1,'turbojpeg.h']]],
|
||||||
['turbojpeg_107',['TurboJPEG',['../group___turbo_j_p_e_g.html',1,'']]]
|
['tjpf_5funknown_107',['TJPF_UNKNOWN',['../group___turbo_j_p_e_g.html#ggac916144e26c3817ac514e64ae5d12e2aa84c1a6cead7952998e2fb895844a21ed',1,'turbojpeg.h']]],
|
||||||
|
['tjpf_5fxbgr_108',['TJPF_XBGR',['../group___turbo_j_p_e_g.html#ggac916144e26c3817ac514e64ae5d12e2aaf6603b27147de47e212e75dac027b2af',1,'turbojpeg.h']]],
|
||||||
|
['tjpf_5fxrgb_109',['TJPF_XRGB',['../group___turbo_j_p_e_g.html#ggac916144e26c3817ac514e64ae5d12e2aadae996905efcfa3b42a0bb3bea7f9d84',1,'turbojpeg.h']]],
|
||||||
|
['tjpixelsize_110',['tjPixelSize',['../group___turbo_j_p_e_g.html#gad77cf8fe5b2bfd3cb3f53098146abb4c',1,'turbojpeg.h']]],
|
||||||
|
['tjredoffset_111',['tjRedOffset',['../group___turbo_j_p_e_g.html#gadd9b446742ac8a3923f7992c7988fea8',1,'turbojpeg.h']]],
|
||||||
|
['tjregion_112',['tjregion',['../structtjregion.html',1,'']]],
|
||||||
|
['tjsamp_113',['TJSAMP',['../group___turbo_j_p_e_g.html#ga1d047060ea80bb9820d540bb928e9074',1,'turbojpeg.h']]],
|
||||||
|
['tjsamp_5f411_114',['TJSAMP_411',['../group___turbo_j_p_e_g.html#gga1d047060ea80bb9820d540bb928e9074a28ec62575e5ea295c3fde3001dc628e2',1,'turbojpeg.h']]],
|
||||||
|
['tjsamp_5f420_115',['TJSAMP_420',['../group___turbo_j_p_e_g.html#gga1d047060ea80bb9820d540bb928e9074a63085dbf683cfe39e513cdb6343e3737',1,'turbojpeg.h']]],
|
||||||
|
['tjsamp_5f422_116',['TJSAMP_422',['../group___turbo_j_p_e_g.html#gga1d047060ea80bb9820d540bb928e9074a136130902cc578f11f32429b59368404',1,'turbojpeg.h']]],
|
||||||
|
['tjsamp_5f440_117',['TJSAMP_440',['../group___turbo_j_p_e_g.html#gga1d047060ea80bb9820d540bb928e9074accf740e6f3aa6ba20ba922cad13cb974',1,'turbojpeg.h']]],
|
||||||
|
['tjsamp_5f441_118',['TJSAMP_441',['../group___turbo_j_p_e_g.html#gga1d047060ea80bb9820d540bb928e9074a3351696e1dd34a083a35b6be8b90122d',1,'turbojpeg.h']]],
|
||||||
|
['tjsamp_5f444_119',['TJSAMP_444',['../group___turbo_j_p_e_g.html#gga1d047060ea80bb9820d540bb928e9074afb8da4f44197837bdec0a4f593dacae3',1,'turbojpeg.h']]],
|
||||||
|
['tjsamp_5fgray_120',['TJSAMP_GRAY',['../group___turbo_j_p_e_g.html#gga1d047060ea80bb9820d540bb928e9074a3f1c9504842ddc7a48d0f690754b6248',1,'turbojpeg.h']]],
|
||||||
|
['tjsamp_5funknown_121',['TJSAMP_UNKNOWN',['../group___turbo_j_p_e_g.html#gga1d047060ea80bb9820d540bb928e9074ac124fa8f6cb41147e3d670dfbdfb7173',1,'turbojpeg.h']]],
|
||||||
|
['tjscaled_122',['TJSCALED',['../group___turbo_j_p_e_g.html#ga84878bb65404204743aa18cac02781df',1,'turbojpeg.h']]],
|
||||||
|
['tjscalingfactor_123',['tjscalingfactor',['../structtjscalingfactor.html',1,'']]],
|
||||||
|
['tjtransform_124',['tjtransform',['../structtjtransform.html',1,'tjtransform'],['../group___turbo_j_p_e_g.html#ga504805ec0161f1b505397ca0118bf8fd',1,'tjtransform(): turbojpeg.h']]],
|
||||||
|
['tjuncropped_125',['TJUNCROPPED',['../group___turbo_j_p_e_g.html#ga6f192ad58a5a5802e145149d83c643bf',1,'turbojpeg.h']]],
|
||||||
|
['tjunscaled_126',['TJUNSCALED',['../group___turbo_j_p_e_g.html#ga7880644a0849161ad20933536169ee19',1,'turbojpeg.h']]],
|
||||||
|
['tjxop_127',['TJXOP',['../group___turbo_j_p_e_g.html#ga2de531af4e7e6c4f124908376b354866',1,'turbojpeg.h']]],
|
||||||
|
['tjxop_5fhflip_128',['TJXOP_HFLIP',['../group___turbo_j_p_e_g.html#gga2de531af4e7e6c4f124908376b354866aa0df69776caa30f0fa28e26332d311ce',1,'turbojpeg.h']]],
|
||||||
|
['tjxop_5fnone_129',['TJXOP_NONE',['../group___turbo_j_p_e_g.html#gga2de531af4e7e6c4f124908376b354866aad88c0366cd3f7d0eac9d7a3fa1c2c27',1,'turbojpeg.h']]],
|
||||||
|
['tjxop_5frot180_130',['TJXOP_ROT180',['../group___turbo_j_p_e_g.html#gga2de531af4e7e6c4f124908376b354866a140952eb8dd0300accfcc22726d69692',1,'turbojpeg.h']]],
|
||||||
|
['tjxop_5frot270_131',['TJXOP_ROT270',['../group___turbo_j_p_e_g.html#gga2de531af4e7e6c4f124908376b354866a3064ee5dfb7f032df332818587567a08',1,'turbojpeg.h']]],
|
||||||
|
['tjxop_5frot90_132',['TJXOP_ROT90',['../group___turbo_j_p_e_g.html#gga2de531af4e7e6c4f124908376b354866a43b2bbb23bc4bd548422d43fbe9af128',1,'turbojpeg.h']]],
|
||||||
|
['tjxop_5ftranspose_133',['TJXOP_TRANSPOSE',['../group___turbo_j_p_e_g.html#gga2de531af4e7e6c4f124908376b354866a31060aed199f886afdd417f80499c32d',1,'turbojpeg.h']]],
|
||||||
|
['tjxop_5ftransverse_134',['TJXOP_TRANSVERSE',['../group___turbo_j_p_e_g.html#gga2de531af4e7e6c4f124908376b354866af3b14d488aea6ece9e5b3df73a74d6a4',1,'turbojpeg.h']]],
|
||||||
|
['tjxop_5fvflip_135',['TJXOP_VFLIP',['../group___turbo_j_p_e_g.html#gga2de531af4e7e6c4f124908376b354866a324eddfbec53b7e691f61e56929d0d5d',1,'turbojpeg.h']]],
|
||||||
|
['tjxopt_5farithmetic_136',['TJXOPT_ARITHMETIC',['../group___turbo_j_p_e_g.html#gaecaaa3b7e2af812592c015d83207f010',1,'turbojpeg.h']]],
|
||||||
|
['tjxopt_5fcopynone_137',['TJXOPT_COPYNONE',['../group___turbo_j_p_e_g.html#ga153b468cfb905d0de61706c838986fe8',1,'turbojpeg.h']]],
|
||||||
|
['tjxopt_5fcrop_138',['TJXOPT_CROP',['../group___turbo_j_p_e_g.html#ga9c771a757fc1294add611906b89ab2d2',1,'turbojpeg.h']]],
|
||||||
|
['tjxopt_5fgray_139',['TJXOPT_GRAY',['../group___turbo_j_p_e_g.html#ga3acee7b48ade1b99e5588736007c2589',1,'turbojpeg.h']]],
|
||||||
|
['tjxopt_5fnooutput_140',['TJXOPT_NOOUTPUT',['../group___turbo_j_p_e_g.html#gafbf992bbf6e006705886333703ffab31',1,'turbojpeg.h']]],
|
||||||
|
['tjxopt_5foptimize_141',['TJXOPT_OPTIMIZE',['../group___turbo_j_p_e_g.html#ga6bedf37aa9e1122f3ec9f7302ca59117',1,'turbojpeg.h']]],
|
||||||
|
['tjxopt_5fperfect_142',['TJXOPT_PERFECT',['../group___turbo_j_p_e_g.html#ga50e03cb5ed115330e212417429600b00',1,'turbojpeg.h']]],
|
||||||
|
['tjxopt_5fprogressive_143',['TJXOPT_PROGRESSIVE',['../group___turbo_j_p_e_g.html#gad2371c80674584ecc1a7d75e564cf026',1,'turbojpeg.h']]],
|
||||||
|
['tjxopt_5ftrim_144',['TJXOPT_TRIM',['../group___turbo_j_p_e_g.html#ga319826b7eb1583c0595bbe7b95428709',1,'turbojpeg.h']]],
|
||||||
|
['turbojpeg_145',['TurboJPEG',['../group___turbo_j_p_e_g.html',1,'']]]
|
||||||
];
|
];
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
var searchData=
|
var searchData=
|
||||||
[
|
[
|
||||||
['w_108',['w',['../structtjregion.html#ab6eb73ceef584fc23c8c8097926dce42',1,'tjregion']]]
|
['w_146',['w',['../structtjregion.html#ab6eb73ceef584fc23c8c8097926dce42',1,'tjregion']]]
|
||||||
];
|
];
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
var searchData=
|
var searchData=
|
||||||
[
|
[
|
||||||
['x_109',['x',['../structtjregion.html#a4b6a37a93997091b26a75831fa291ad9',1,'tjregion']]]
|
['x_147',['x',['../structtjregion.html#a4b6a37a93997091b26a75831fa291ad9',1,'tjregion']]]
|
||||||
];
|
];
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
var searchData=
|
var searchData=
|
||||||
[
|
[
|
||||||
['y_110',['y',['../structtjregion.html#a7b3e0c24cfe87acc80e334cafdcf22c2',1,'tjregion']]]
|
['y_148',['y',['../structtjregion.html#a7b3e0c24cfe87acc80e334cafdcf22c2',1,'tjregion']]]
|
||||||
];
|
];
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
var searchData=
|
var searchData=
|
||||||
[
|
[
|
||||||
['tjregion_111',['tjregion',['../structtjregion.html',1,'']]],
|
['tjregion_149',['tjregion',['../structtjregion.html',1,'']]],
|
||||||
['tjscalingfactor_112',['tjscalingfactor',['../structtjscalingfactor.html',1,'']]],
|
['tjscalingfactor_150',['tjscalingfactor',['../structtjscalingfactor.html',1,'']]],
|
||||||
['tjtransform_113',['tjtransform',['../structtjtransform.html',1,'']]]
|
['tjtransform_151',['tjtransform',['../structtjtransform.html',1,'']]]
|
||||||
];
|
];
|
||||||
|
|||||||
@@ -1,8 +1,10 @@
|
|||||||
var searchData=
|
var searchData=
|
||||||
[
|
[
|
||||||
['tjcs_162',['TJCS',['../group___turbo_j_p_e_g.html#ga4f83ad3368e0e29d1957be0efa7c3720',1,'turbojpeg.h']]],
|
['tjcs_212',['TJCS',['../group___turbo_j_p_e_g.html#ga4f83ad3368e0e29d1957be0efa7c3720',1,'turbojpeg.h']]],
|
||||||
['tjerr_163',['TJERR',['../group___turbo_j_p_e_g.html#gafbc17cfa57d0d5d11fea35ac025950fe',1,'turbojpeg.h']]],
|
['tjerr_213',['TJERR',['../group___turbo_j_p_e_g.html#gafbc17cfa57d0d5d11fea35ac025950fe',1,'turbojpeg.h']]],
|
||||||
['tjpf_164',['TJPF',['../group___turbo_j_p_e_g.html#gac916144e26c3817ac514e64ae5d12e2a',1,'turbojpeg.h']]],
|
['tjinit_214',['TJINIT',['../group___turbo_j_p_e_g.html#ga3850bbee1313e752e667b4eb08b1e086',1,'turbojpeg.h']]],
|
||||||
['tjsamp_165',['TJSAMP',['../group___turbo_j_p_e_g.html#ga1d047060ea80bb9820d540bb928e9074',1,'turbojpeg.h']]],
|
['tjparam_215',['TJPARAM',['../group___turbo_j_p_e_g.html#gaa0f6be63ba78278299c9f5c12031fe82',1,'turbojpeg.h']]],
|
||||||
['tjxop_166',['TJXOP',['../group___turbo_j_p_e_g.html#ga2de531af4e7e6c4f124908376b354866',1,'turbojpeg.h']]]
|
['tjpf_216',['TJPF',['../group___turbo_j_p_e_g.html#gac916144e26c3817ac514e64ae5d12e2a',1,'turbojpeg.h']]],
|
||||||
|
['tjsamp_217',['TJSAMP',['../group___turbo_j_p_e_g.html#ga1d047060ea80bb9820d540bb928e9074',1,'turbojpeg.h']]],
|
||||||
|
['tjxop_218',['TJXOP',['../group___turbo_j_p_e_g.html#ga2de531af4e7e6c4f124908376b354866',1,'turbojpeg.h']]]
|
||||||
];
|
];
|
||||||
|
|||||||
@@ -1,37 +1,65 @@
|
|||||||
var searchData=
|
var searchData=
|
||||||
[
|
[
|
||||||
['tjcs_5fcmyk_167',['TJCS_CMYK',['../group___turbo_j_p_e_g.html#gga4f83ad3368e0e29d1957be0efa7c3720a6c8b636152ac8195b869587db315ee53',1,'turbojpeg.h']]],
|
['tjcs_5fcmyk_219',['TJCS_CMYK',['../group___turbo_j_p_e_g.html#gga4f83ad3368e0e29d1957be0efa7c3720a6c8b636152ac8195b869587db315ee53',1,'turbojpeg.h']]],
|
||||||
['tjcs_5fgray_168',['TJCS_GRAY',['../group___turbo_j_p_e_g.html#gga4f83ad3368e0e29d1957be0efa7c3720ab3e7d6a87f695e45b81c1b5262b5a50a',1,'turbojpeg.h']]],
|
['tjcs_5fgray_220',['TJCS_GRAY',['../group___turbo_j_p_e_g.html#gga4f83ad3368e0e29d1957be0efa7c3720ab3e7d6a87f695e45b81c1b5262b5a50a',1,'turbojpeg.h']]],
|
||||||
['tjcs_5frgb_169',['TJCS_RGB',['../group___turbo_j_p_e_g.html#gga4f83ad3368e0e29d1957be0efa7c3720a677cb7ccb85c4038ac41964a2e09e555',1,'turbojpeg.h']]],
|
['tjcs_5frgb_221',['TJCS_RGB',['../group___turbo_j_p_e_g.html#gga4f83ad3368e0e29d1957be0efa7c3720a677cb7ccb85c4038ac41964a2e09e555',1,'turbojpeg.h']]],
|
||||||
['tjcs_5fycbcr_170',['TJCS_YCbCr',['../group___turbo_j_p_e_g.html#gga4f83ad3368e0e29d1957be0efa7c3720a7389b8f65bb387ffedce3efd0d78ec75',1,'turbojpeg.h']]],
|
['tjcs_5fycbcr_222',['TJCS_YCbCr',['../group___turbo_j_p_e_g.html#gga4f83ad3368e0e29d1957be0efa7c3720a7389b8f65bb387ffedce3efd0d78ec75',1,'turbojpeg.h']]],
|
||||||
['tjcs_5fycck_171',['TJCS_YCCK',['../group___turbo_j_p_e_g.html#gga4f83ad3368e0e29d1957be0efa7c3720a53839e0fe867b76b58d16b0a1a7c598e',1,'turbojpeg.h']]],
|
['tjcs_5fycck_223',['TJCS_YCCK',['../group___turbo_j_p_e_g.html#gga4f83ad3368e0e29d1957be0efa7c3720a53839e0fe867b76b58d16b0a1a7c598e',1,'turbojpeg.h']]],
|
||||||
['tjerr_5ffatal_172',['TJERR_FATAL',['../group___turbo_j_p_e_g.html#ggafbc17cfa57d0d5d11fea35ac025950feafc9cceeada13122b09e4851e3788039a',1,'turbojpeg.h']]],
|
['tjerr_5ffatal_224',['TJERR_FATAL',['../group___turbo_j_p_e_g.html#ggafbc17cfa57d0d5d11fea35ac025950feafc9cceeada13122b09e4851e3788039a',1,'turbojpeg.h']]],
|
||||||
['tjerr_5fwarning_173',['TJERR_WARNING',['../group___turbo_j_p_e_g.html#ggafbc17cfa57d0d5d11fea35ac025950fea342dd6e2aedb47bb257b4e7568329b59',1,'turbojpeg.h']]],
|
['tjerr_5fwarning_225',['TJERR_WARNING',['../group___turbo_j_p_e_g.html#ggafbc17cfa57d0d5d11fea35ac025950fea342dd6e2aedb47bb257b4e7568329b59',1,'turbojpeg.h']]],
|
||||||
['tjpf_5fabgr_174',['TJPF_ABGR',['../group___turbo_j_p_e_g.html#ggac916144e26c3817ac514e64ae5d12e2aa1ba1a7f1631dbeaa49a0a85fc4a40081',1,'turbojpeg.h']]],
|
['tjinit_5fcompress_226',['TJINIT_COMPRESS',['../group___turbo_j_p_e_g.html#gga3850bbee1313e752e667b4eb08b1e086aa45ac279e3dc6ffabc4b0f45864da796',1,'turbojpeg.h']]],
|
||||||
['tjpf_5fargb_175',['TJPF_ARGB',['../group___turbo_j_p_e_g.html#ggac916144e26c3817ac514e64ae5d12e2aae8f846ed9d9de99b6e1dfe448848765c',1,'turbojpeg.h']]],
|
['tjinit_5fdecompress_227',['TJINIT_DECOMPRESS',['../group___turbo_j_p_e_g.html#gga3850bbee1313e752e667b4eb08b1e086a4b8ca1ef700699b71350700bf95c2167',1,'turbojpeg.h']]],
|
||||||
['tjpf_5fbgr_176',['TJPF_BGR',['../group___turbo_j_p_e_g.html#ggac916144e26c3817ac514e64ae5d12e2aab10624437fb8ef495a0b153e65749839',1,'turbojpeg.h']]],
|
['tjinit_5ftransform_228',['TJINIT_TRANSFORM',['../group___turbo_j_p_e_g.html#gga3850bbee1313e752e667b4eb08b1e086a8d58a2a4c45b3e0cd349746544a6e0c2',1,'turbojpeg.h']]],
|
||||||
['tjpf_5fbgra_177',['TJPF_BGRA',['../group___turbo_j_p_e_g.html#ggac916144e26c3817ac514e64ae5d12e2aac037ff1845cf9b74bb81a3659c2b9fb4',1,'turbojpeg.h']]],
|
['tjparam_5farithmetic_229',['TJPARAM_ARITHMETIC',['../group___turbo_j_p_e_g.html#ggaa0f6be63ba78278299c9f5c12031fe82a1c756757384308145602c040524aebf7',1,'turbojpeg.h']]],
|
||||||
['tjpf_5fbgrx_178',['TJPF_BGRX',['../group___turbo_j_p_e_g.html#ggac916144e26c3817ac514e64ae5d12e2aa2a1fbf569ca79897eae886e3376ca4c8',1,'turbojpeg.h']]],
|
['tjparam_5fbottomup_230',['TJPARAM_BOTTOMUP',['../group___turbo_j_p_e_g.html#ggaa0f6be63ba78278299c9f5c12031fe82a924657172695ed6cb0b128219546fcce',1,'turbojpeg.h']]],
|
||||||
['tjpf_5fcmyk_179',['TJPF_CMYK',['../group___turbo_j_p_e_g.html#ggac916144e26c3817ac514e64ae5d12e2aa7f5100ec44c91994e243f1cf55553f8b',1,'turbojpeg.h']]],
|
['tjparam_5fcolorspace_231',['TJPARAM_COLORSPACE',['../group___turbo_j_p_e_g.html#ggaa0f6be63ba78278299c9f5c12031fe82a46a10d46309514907d0c39fcd86c324c',1,'turbojpeg.h']]],
|
||||||
['tjpf_5fgray_180',['TJPF_GRAY',['../group___turbo_j_p_e_g.html#ggac916144e26c3817ac514e64ae5d12e2aa5431b54b015337705f13118073711a1a',1,'turbojpeg.h']]],
|
['tjparam_5fdensityunits_232',['TJPARAM_DENSITYUNITS',['../group___turbo_j_p_e_g.html#ggaa0f6be63ba78278299c9f5c12031fe82a4c045981bd8a303521a401dbbe1df208',1,'turbojpeg.h']]],
|
||||||
['tjpf_5frgb_181',['TJPF_RGB',['../group___turbo_j_p_e_g.html#ggac916144e26c3817ac514e64ae5d12e2aa7ce93230bff449518ce387c17e6ed37c',1,'turbojpeg.h']]],
|
['tjparam_5ffastdct_233',['TJPARAM_FASTDCT',['../group___turbo_j_p_e_g.html#ggaa0f6be63ba78278299c9f5c12031fe82a6914692ac6ec5567787d592b7563f627',1,'turbojpeg.h']]],
|
||||||
['tjpf_5frgba_182',['TJPF_RGBA',['../group___turbo_j_p_e_g.html#ggac916144e26c3817ac514e64ae5d12e2aa88d2e88fab67f6503cf972e14851cc12',1,'turbojpeg.h']]],
|
['tjparam_5ffastupsample_234',['TJPARAM_FASTUPSAMPLE',['../group___turbo_j_p_e_g.html#ggaa0f6be63ba78278299c9f5c12031fe82a0e051ac106f7b7402b690a5daf4869c0',1,'turbojpeg.h']]],
|
||||||
['tjpf_5frgbx_183',['TJPF_RGBX',['../group___turbo_j_p_e_g.html#ggac916144e26c3817ac514e64ae5d12e2aa83973bebb7e2dc6fa8bae89ff3f42e01',1,'turbojpeg.h']]],
|
['tjparam_5fjpegheight_235',['TJPARAM_JPEGHEIGHT',['../group___turbo_j_p_e_g.html#ggaa0f6be63ba78278299c9f5c12031fe82a8f76673be73f2b659440a9572a65a95f',1,'turbojpeg.h']]],
|
||||||
['tjpf_5funknown_184',['TJPF_UNKNOWN',['../group___turbo_j_p_e_g.html#ggac916144e26c3817ac514e64ae5d12e2aa84c1a6cead7952998e2fb895844a21ed',1,'turbojpeg.h']]],
|
['tjparam_5fjpegwidth_236',['TJPARAM_JPEGWIDTH',['../group___turbo_j_p_e_g.html#ggaa0f6be63ba78278299c9f5c12031fe82a02ab77fb294a0c9061a78cd424c82dd8',1,'turbojpeg.h']]],
|
||||||
['tjpf_5fxbgr_185',['TJPF_XBGR',['../group___turbo_j_p_e_g.html#ggac916144e26c3817ac514e64ae5d12e2aaf6603b27147de47e212e75dac027b2af',1,'turbojpeg.h']]],
|
['tjparam_5flossless_237',['TJPARAM_LOSSLESS',['../group___turbo_j_p_e_g.html#ggaa0f6be63ba78278299c9f5c12031fe82a249f35f0770792b19f995e603bb17c6f',1,'turbojpeg.h']]],
|
||||||
['tjpf_5fxrgb_186',['TJPF_XRGB',['../group___turbo_j_p_e_g.html#ggac916144e26c3817ac514e64ae5d12e2aadae996905efcfa3b42a0bb3bea7f9d84',1,'turbojpeg.h']]],
|
['tjparam_5flosslesspsv_238',['TJPARAM_LOSSLESSPSV',['../group___turbo_j_p_e_g.html#ggaa0f6be63ba78278299c9f5c12031fe82abcc997d40e5bec84817c12b76ef84159',1,'turbojpeg.h']]],
|
||||||
['tjsamp_5f411_187',['TJSAMP_411',['../group___turbo_j_p_e_g.html#gga1d047060ea80bb9820d540bb928e9074a28ec62575e5ea295c3fde3001dc628e2',1,'turbojpeg.h']]],
|
['tjparam_5flosslesspt_239',['TJPARAM_LOSSLESSPT',['../group___turbo_j_p_e_g.html#ggaa0f6be63ba78278299c9f5c12031fe82a4a6c6f25764ecaf4231a36bff844e46a',1,'turbojpeg.h']]],
|
||||||
['tjsamp_5f420_188',['TJSAMP_420',['../group___turbo_j_p_e_g.html#gga1d047060ea80bb9820d540bb928e9074a63085dbf683cfe39e513cdb6343e3737',1,'turbojpeg.h']]],
|
['tjparam_5fnorealloc_240',['TJPARAM_NOREALLOC',['../group___turbo_j_p_e_g.html#ggaa0f6be63ba78278299c9f5c12031fe82ae64ffb358bc7b194fd48e0f27750b29b',1,'turbojpeg.h']]],
|
||||||
['tjsamp_5f422_189',['TJSAMP_422',['../group___turbo_j_p_e_g.html#gga1d047060ea80bb9820d540bb928e9074a136130902cc578f11f32429b59368404',1,'turbojpeg.h']]],
|
['tjparam_5foptimize_241',['TJPARAM_OPTIMIZE',['../group___turbo_j_p_e_g.html#ggaa0f6be63ba78278299c9f5c12031fe82a8f0af9afc0b36443751f9ee82b760aa6',1,'turbojpeg.h']]],
|
||||||
['tjsamp_5f440_190',['TJSAMP_440',['../group___turbo_j_p_e_g.html#gga1d047060ea80bb9820d540bb928e9074accf740e6f3aa6ba20ba922cad13cb974',1,'turbojpeg.h']]],
|
['tjparam_5fprecision_242',['TJPARAM_PRECISION',['../group___turbo_j_p_e_g.html#ggaa0f6be63ba78278299c9f5c12031fe82a781db82741934e8cd008d308597c59d8',1,'turbojpeg.h']]],
|
||||||
['tjsamp_5f444_191',['TJSAMP_444',['../group___turbo_j_p_e_g.html#gga1d047060ea80bb9820d540bb928e9074afb8da4f44197837bdec0a4f593dacae3',1,'turbojpeg.h']]],
|
['tjparam_5fprogressive_243',['TJPARAM_PROGRESSIVE',['../group___turbo_j_p_e_g.html#ggaa0f6be63ba78278299c9f5c12031fe82a1716f242b3859905b4a317dae8cfb75f',1,'turbojpeg.h']]],
|
||||||
['tjsamp_5fgray_192',['TJSAMP_GRAY',['../group___turbo_j_p_e_g.html#gga1d047060ea80bb9820d540bb928e9074a3f1c9504842ddc7a48d0f690754b6248',1,'turbojpeg.h']]],
|
['tjparam_5fquality_244',['TJPARAM_QUALITY',['../group___turbo_j_p_e_g.html#ggaa0f6be63ba78278299c9f5c12031fe82a0467e8792621f2d817dc2af563d3186c',1,'turbojpeg.h']]],
|
||||||
['tjxop_5fhflip_193',['TJXOP_HFLIP',['../group___turbo_j_p_e_g.html#gga2de531af4e7e6c4f124908376b354866aa0df69776caa30f0fa28e26332d311ce',1,'turbojpeg.h']]],
|
['tjparam_5frestartblocks_245',['TJPARAM_RESTARTBLOCKS',['../group___turbo_j_p_e_g.html#ggaa0f6be63ba78278299c9f5c12031fe82a343c72883b7160f23f3ef46fc548a0ec',1,'turbojpeg.h']]],
|
||||||
['tjxop_5fnone_194',['TJXOP_NONE',['../group___turbo_j_p_e_g.html#gga2de531af4e7e6c4f124908376b354866aad88c0366cd3f7d0eac9d7a3fa1c2c27',1,'turbojpeg.h']]],
|
['tjparam_5frestartrows_246',['TJPARAM_RESTARTROWS',['../group___turbo_j_p_e_g.html#ggaa0f6be63ba78278299c9f5c12031fe82a714367585952fe5c863f0dba5bd37e5c',1,'turbojpeg.h']]],
|
||||||
['tjxop_5frot180_195',['TJXOP_ROT180',['../group___turbo_j_p_e_g.html#gga2de531af4e7e6c4f124908376b354866a140952eb8dd0300accfcc22726d69692',1,'turbojpeg.h']]],
|
['tjparam_5fscanlimit_247',['TJPARAM_SCANLIMIT',['../group___turbo_j_p_e_g.html#ggaa0f6be63ba78278299c9f5c12031fe82ac478910e20ecf61b914f9824d80f8167',1,'turbojpeg.h']]],
|
||||||
['tjxop_5frot270_196',['TJXOP_ROT270',['../group___turbo_j_p_e_g.html#gga2de531af4e7e6c4f124908376b354866a3064ee5dfb7f032df332818587567a08',1,'turbojpeg.h']]],
|
['tjparam_5fstoponwarning_248',['TJPARAM_STOPONWARNING',['../group___turbo_j_p_e_g.html#ggaa0f6be63ba78278299c9f5c12031fe82a555e2212079fa49b30bcd2879c6c8ddb',1,'turbojpeg.h']]],
|
||||||
['tjxop_5frot90_197',['TJXOP_ROT90',['../group___turbo_j_p_e_g.html#gga2de531af4e7e6c4f124908376b354866a43b2bbb23bc4bd548422d43fbe9af128',1,'turbojpeg.h']]],
|
['tjparam_5fsubsamp_249',['TJPARAM_SUBSAMP',['../group___turbo_j_p_e_g.html#ggaa0f6be63ba78278299c9f5c12031fe82a2a3494a8215d3de4fdbaeb2ba6f6b03a',1,'turbojpeg.h']]],
|
||||||
['tjxop_5ftranspose_198',['TJXOP_TRANSPOSE',['../group___turbo_j_p_e_g.html#gga2de531af4e7e6c4f124908376b354866a31060aed199f886afdd417f80499c32d',1,'turbojpeg.h']]],
|
['tjparam_5fxdensity_250',['TJPARAM_XDENSITY',['../group___turbo_j_p_e_g.html#ggaa0f6be63ba78278299c9f5c12031fe82a4de5c9d7cab5be806143a43c3b0e0877',1,'turbojpeg.h']]],
|
||||||
['tjxop_5ftransverse_199',['TJXOP_TRANSVERSE',['../group___turbo_j_p_e_g.html#gga2de531af4e7e6c4f124908376b354866af3b14d488aea6ece9e5b3df73a74d6a4',1,'turbojpeg.h']]],
|
['tjparam_5fydensity_251',['TJPARAM_YDENSITY',['../group___turbo_j_p_e_g.html#ggaa0f6be63ba78278299c9f5c12031fe82abda48f2df7eb9b88e2b7621efb017eba',1,'turbojpeg.h']]],
|
||||||
['tjxop_5fvflip_200',['TJXOP_VFLIP',['../group___turbo_j_p_e_g.html#gga2de531af4e7e6c4f124908376b354866a324eddfbec53b7e691f61e56929d0d5d',1,'turbojpeg.h']]]
|
['tjpf_5fabgr_252',['TJPF_ABGR',['../group___turbo_j_p_e_g.html#ggac916144e26c3817ac514e64ae5d12e2aa1ba1a7f1631dbeaa49a0a85fc4a40081',1,'turbojpeg.h']]],
|
||||||
|
['tjpf_5fargb_253',['TJPF_ARGB',['../group___turbo_j_p_e_g.html#ggac916144e26c3817ac514e64ae5d12e2aae8f846ed9d9de99b6e1dfe448848765c',1,'turbojpeg.h']]],
|
||||||
|
['tjpf_5fbgr_254',['TJPF_BGR',['../group___turbo_j_p_e_g.html#ggac916144e26c3817ac514e64ae5d12e2aab10624437fb8ef495a0b153e65749839',1,'turbojpeg.h']]],
|
||||||
|
['tjpf_5fbgra_255',['TJPF_BGRA',['../group___turbo_j_p_e_g.html#ggac916144e26c3817ac514e64ae5d12e2aac037ff1845cf9b74bb81a3659c2b9fb4',1,'turbojpeg.h']]],
|
||||||
|
['tjpf_5fbgrx_256',['TJPF_BGRX',['../group___turbo_j_p_e_g.html#ggac916144e26c3817ac514e64ae5d12e2aa2a1fbf569ca79897eae886e3376ca4c8',1,'turbojpeg.h']]],
|
||||||
|
['tjpf_5fcmyk_257',['TJPF_CMYK',['../group___turbo_j_p_e_g.html#ggac916144e26c3817ac514e64ae5d12e2aa7f5100ec44c91994e243f1cf55553f8b',1,'turbojpeg.h']]],
|
||||||
|
['tjpf_5fgray_258',['TJPF_GRAY',['../group___turbo_j_p_e_g.html#ggac916144e26c3817ac514e64ae5d12e2aa5431b54b015337705f13118073711a1a',1,'turbojpeg.h']]],
|
||||||
|
['tjpf_5frgb_259',['TJPF_RGB',['../group___turbo_j_p_e_g.html#ggac916144e26c3817ac514e64ae5d12e2aa7ce93230bff449518ce387c17e6ed37c',1,'turbojpeg.h']]],
|
||||||
|
['tjpf_5frgba_260',['TJPF_RGBA',['../group___turbo_j_p_e_g.html#ggac916144e26c3817ac514e64ae5d12e2aa88d2e88fab67f6503cf972e14851cc12',1,'turbojpeg.h']]],
|
||||||
|
['tjpf_5frgbx_261',['TJPF_RGBX',['../group___turbo_j_p_e_g.html#ggac916144e26c3817ac514e64ae5d12e2aa83973bebb7e2dc6fa8bae89ff3f42e01',1,'turbojpeg.h']]],
|
||||||
|
['tjpf_5funknown_262',['TJPF_UNKNOWN',['../group___turbo_j_p_e_g.html#ggac916144e26c3817ac514e64ae5d12e2aa84c1a6cead7952998e2fb895844a21ed',1,'turbojpeg.h']]],
|
||||||
|
['tjpf_5fxbgr_263',['TJPF_XBGR',['../group___turbo_j_p_e_g.html#ggac916144e26c3817ac514e64ae5d12e2aaf6603b27147de47e212e75dac027b2af',1,'turbojpeg.h']]],
|
||||||
|
['tjpf_5fxrgb_264',['TJPF_XRGB',['../group___turbo_j_p_e_g.html#ggac916144e26c3817ac514e64ae5d12e2aadae996905efcfa3b42a0bb3bea7f9d84',1,'turbojpeg.h']]],
|
||||||
|
['tjsamp_5f411_265',['TJSAMP_411',['../group___turbo_j_p_e_g.html#gga1d047060ea80bb9820d540bb928e9074a28ec62575e5ea295c3fde3001dc628e2',1,'turbojpeg.h']]],
|
||||||
|
['tjsamp_5f420_266',['TJSAMP_420',['../group___turbo_j_p_e_g.html#gga1d047060ea80bb9820d540bb928e9074a63085dbf683cfe39e513cdb6343e3737',1,'turbojpeg.h']]],
|
||||||
|
['tjsamp_5f422_267',['TJSAMP_422',['../group___turbo_j_p_e_g.html#gga1d047060ea80bb9820d540bb928e9074a136130902cc578f11f32429b59368404',1,'turbojpeg.h']]],
|
||||||
|
['tjsamp_5f440_268',['TJSAMP_440',['../group___turbo_j_p_e_g.html#gga1d047060ea80bb9820d540bb928e9074accf740e6f3aa6ba20ba922cad13cb974',1,'turbojpeg.h']]],
|
||||||
|
['tjsamp_5f441_269',['TJSAMP_441',['../group___turbo_j_p_e_g.html#gga1d047060ea80bb9820d540bb928e9074a3351696e1dd34a083a35b6be8b90122d',1,'turbojpeg.h']]],
|
||||||
|
['tjsamp_5f444_270',['TJSAMP_444',['../group___turbo_j_p_e_g.html#gga1d047060ea80bb9820d540bb928e9074afb8da4f44197837bdec0a4f593dacae3',1,'turbojpeg.h']]],
|
||||||
|
['tjsamp_5fgray_271',['TJSAMP_GRAY',['../group___turbo_j_p_e_g.html#gga1d047060ea80bb9820d540bb928e9074a3f1c9504842ddc7a48d0f690754b6248',1,'turbojpeg.h']]],
|
||||||
|
['tjsamp_5funknown_272',['TJSAMP_UNKNOWN',['../group___turbo_j_p_e_g.html#gga1d047060ea80bb9820d540bb928e9074ac124fa8f6cb41147e3d670dfbdfb7173',1,'turbojpeg.h']]],
|
||||||
|
['tjxop_5fhflip_273',['TJXOP_HFLIP',['../group___turbo_j_p_e_g.html#gga2de531af4e7e6c4f124908376b354866aa0df69776caa30f0fa28e26332d311ce',1,'turbojpeg.h']]],
|
||||||
|
['tjxop_5fnone_274',['TJXOP_NONE',['../group___turbo_j_p_e_g.html#gga2de531af4e7e6c4f124908376b354866aad88c0366cd3f7d0eac9d7a3fa1c2c27',1,'turbojpeg.h']]],
|
||||||
|
['tjxop_5frot180_275',['TJXOP_ROT180',['../group___turbo_j_p_e_g.html#gga2de531af4e7e6c4f124908376b354866a140952eb8dd0300accfcc22726d69692',1,'turbojpeg.h']]],
|
||||||
|
['tjxop_5frot270_276',['TJXOP_ROT270',['../group___turbo_j_p_e_g.html#gga2de531af4e7e6c4f124908376b354866a3064ee5dfb7f032df332818587567a08',1,'turbojpeg.h']]],
|
||||||
|
['tjxop_5frot90_277',['TJXOP_ROT90',['../group___turbo_j_p_e_g.html#gga2de531af4e7e6c4f124908376b354866a43b2bbb23bc4bd548422d43fbe9af128',1,'turbojpeg.h']]],
|
||||||
|
['tjxop_5ftranspose_278',['TJXOP_TRANSPOSE',['../group___turbo_j_p_e_g.html#gga2de531af4e7e6c4f124908376b354866a31060aed199f886afdd417f80499c32d',1,'turbojpeg.h']]],
|
||||||
|
['tjxop_5ftransverse_279',['TJXOP_TRANSVERSE',['../group___turbo_j_p_e_g.html#gga2de531af4e7e6c4f124908376b354866af3b14d488aea6ece9e5b3df73a74d6a4',1,'turbojpeg.h']]],
|
||||||
|
['tjxop_5fvflip_280',['TJXOP_VFLIP',['../group___turbo_j_p_e_g.html#gga2de531af4e7e6c4f124908376b354866a324eddfbec53b7e691f61e56929d0d5d',1,'turbojpeg.h']]]
|
||||||
];
|
];
|
||||||
|
|||||||
@@ -1,31 +1,41 @@
|
|||||||
var searchData=
|
var searchData=
|
||||||
[
|
[
|
||||||
['tjalloc_114',['tjAlloc',['../group___turbo_j_p_e_g.html#gaec627dd4c5f30b7a775a7aea3bec5d83',1,'turbojpeg.h']]],
|
['tj3alloc_152',['tj3Alloc',['../group___turbo_j_p_e_g.html#gab40a0b231122f536e503e3394569a68d',1,'turbojpeg.h']]],
|
||||||
['tjbufsize_115',['tjBufSize',['../group___turbo_j_p_e_g.html#ga67ac12fee79073242cb216e07c9f1f90',1,'turbojpeg.h']]],
|
['tj3compress12_153',['tj3Compress12',['../group___turbo_j_p_e_g.html#ga9a1968c384ec7abb6122830253ebf570',1,'turbojpeg.h']]],
|
||||||
['tjbufsizeyuv2_116',['tjBufSizeYUV2',['../group___turbo_j_p_e_g.html#ga5e5aac9e8bcf17049279301e2466474c',1,'turbojpeg.h']]],
|
['tj3compress16_154',['tj3Compress16',['../group___turbo_j_p_e_g.html#ga77901b71d0471784f318ada31ff4e7bd',1,'turbojpeg.h']]],
|
||||||
['tjcompress2_117',['tjCompress2',['../group___turbo_j_p_e_g.html#gafbdce0112fd78fd38efae841443a9bcf',1,'turbojpeg.h']]],
|
['tj3compress8_155',['tj3Compress8',['../group___turbo_j_p_e_g.html#ga2cc418a2dab709ad7f30f5b25905f138',1,'turbojpeg.h']]],
|
||||||
['tjcompressfromyuv_118',['tjCompressFromYUV',['../group___turbo_j_p_e_g.html#gab40f5096a72fd7e5bda9d6b58fa37e2e',1,'turbojpeg.h']]],
|
['tj3compressfromyuv8_156',['tj3CompressFromYUV8',['../group___turbo_j_p_e_g.html#ga041c870d9c669eb3f385c78f4346c43f',1,'turbojpeg.h']]],
|
||||||
['tjcompressfromyuvplanes_119',['tjCompressFromYUVPlanes',['../group___turbo_j_p_e_g.html#ga29ec5dfbd2d84b8724e951d6fa0d5d9e',1,'turbojpeg.h']]],
|
['tj3compressfromyuvplanes8_157',['tj3CompressFromYUVPlanes8',['../group___turbo_j_p_e_g.html#gac9f5ace3e73805b476c95dda9f8d0cd0',1,'turbojpeg.h']]],
|
||||||
['tjdecodeyuv_120',['tjDecodeYUV',['../group___turbo_j_p_e_g.html#ga97c2cedc1e2bade15a84164c94e503c1',1,'turbojpeg.h']]],
|
['tj3decodeyuv8_158',['tj3DecodeYUV8',['../group___turbo_j_p_e_g.html#gaa1eb574f38b1c1de43a6c7aafcf68d8c',1,'turbojpeg.h']]],
|
||||||
['tjdecodeyuvplanes_121',['tjDecodeYUVPlanes',['../group___turbo_j_p_e_g.html#ga10e837c07fa9d25770565b237d3898d9',1,'turbojpeg.h']]],
|
['tj3decodeyuvplanes8_159',['tj3DecodeYUVPlanes8',['../group___turbo_j_p_e_g.html#gad366f1915f82c1ad4e7e37ebe073ca89',1,'turbojpeg.h']]],
|
||||||
['tjdecompress2_122',['tjDecompress2',['../group___turbo_j_p_e_g.html#gae9eccef8b682a48f43a9117c231ed013',1,'turbojpeg.h']]],
|
['tj3decompress12_160',['tj3Decompress12',['../group___turbo_j_p_e_g.html#ga39b848f01781ad74a5b3941c012b6199',1,'turbojpeg.h']]],
|
||||||
['tjdecompressheader3_123',['tjDecompressHeader3',['../group___turbo_j_p_e_g.html#ga0595681096bba7199cc6f3533cb25f77',1,'turbojpeg.h']]],
|
['tj3decompress16_161',['tj3Decompress16',['../group___turbo_j_p_e_g.html#gaa074e63f9beb0b3ff42b833a4049df6e',1,'turbojpeg.h']]],
|
||||||
['tjdecompresstoyuv2_124',['tjDecompressToYUV2',['../group___turbo_j_p_e_g.html#ga5a3093e325598c17a9f004323af6fafa',1,'turbojpeg.h']]],
|
['tj3decompress8_162',['tj3Decompress8',['../group___turbo_j_p_e_g.html#ga1169c7c1a26ec18c9e6122cb8ae64013',1,'turbojpeg.h']]],
|
||||||
['tjdecompresstoyuvplanes_125',['tjDecompressToYUVPlanes',['../group___turbo_j_p_e_g.html#gaa59f901a5258ada5bd0185ad59368540',1,'turbojpeg.h']]],
|
['tj3decompressheader_163',['tj3DecompressHeader',['../group___turbo_j_p_e_g.html#ga96d2c4b3432f9d88ad14758ae240b8d1',1,'turbojpeg.h']]],
|
||||||
['tjdestroy_126',['tjDestroy',['../group___turbo_j_p_e_g.html#ga75f355fa27225ba1a4ee392c852394d2',1,'turbojpeg.h']]],
|
['tj3decompresstoyuv8_164',['tj3DecompressToYUV8',['../group___turbo_j_p_e_g.html#ga1e6bf6a19fec3f9fa7534348879d8320',1,'turbojpeg.h']]],
|
||||||
['tjencodeyuv3_127',['tjEncodeYUV3',['../group___turbo_j_p_e_g.html#ga5d619e0a02b71e05a8dffb764f6d7a64',1,'turbojpeg.h']]],
|
['tj3decompresstoyuvplanes8_165',['tj3DecompressToYUVPlanes8',['../group___turbo_j_p_e_g.html#ga934373482dbbf257f2280505b6ff4fb5',1,'turbojpeg.h']]],
|
||||||
['tjencodeyuvplanes_128',['tjEncodeYUVPlanes',['../group___turbo_j_p_e_g.html#gae2d04c72457fe7f4d60cf78ab1b1feb1',1,'turbojpeg.h']]],
|
['tj3destroy_166',['tj3Destroy',['../group___turbo_j_p_e_g.html#ga53fbadf4560e95a65b8f5ab81703fe82',1,'turbojpeg.h']]],
|
||||||
['tjfree_129',['tjFree',['../group___turbo_j_p_e_g.html#gaea863d2da0cdb609563aabdf9196514b',1,'turbojpeg.h']]],
|
['tj3encodeyuv8_167',['tj3EncodeYUV8',['../group___turbo_j_p_e_g.html#ga2a8d50f130bde10f0a04030f8cc59936',1,'turbojpeg.h']]],
|
||||||
['tjgeterrorcode_130',['tjGetErrorCode',['../group___turbo_j_p_e_g.html#ga414feeffbf860ebd31c745df203de410',1,'turbojpeg.h']]],
|
['tj3encodeyuvplanes8_168',['tj3EncodeYUVPlanes8',['../group___turbo_j_p_e_g.html#gae2e9df38790e9bddc249d04cb158a4cf',1,'turbojpeg.h']]],
|
||||||
['tjgeterrorstr2_131',['tjGetErrorStr2',['../group___turbo_j_p_e_g.html#ga1ead8574f9f39fbafc6b497124e7aafa',1,'turbojpeg.h']]],
|
['tj3free_169',['tj3Free',['../group___turbo_j_p_e_g.html#gaddb84fb6c81769e9faa0f5a63b296606',1,'turbojpeg.h']]],
|
||||||
['tjgetscalingfactors_132',['tjGetScalingFactors',['../group___turbo_j_p_e_g.html#ga193d0977b3b9966d53a6c402e90899b1',1,'turbojpeg.h']]],
|
['tj3get_170',['tj3Get',['../group___turbo_j_p_e_g.html#ga34af9ba3183bdf0ec7c8f47bb9a4c84f',1,'turbojpeg.h']]],
|
||||||
['tjinitcompress_133',['tjInitCompress',['../group___turbo_j_p_e_g.html#ga9d63a05fc6d813f4aae06107041a37e8',1,'turbojpeg.h']]],
|
['tj3geterrorcode_171',['tj3GetErrorCode',['../group___turbo_j_p_e_g.html#gab8c8279f1415fe425ff30dbbc56013bd',1,'turbojpeg.h']]],
|
||||||
['tjinitdecompress_134',['tjInitDecompress',['../group___turbo_j_p_e_g.html#ga52300eac3f3d9ef4bab303bc244f62d3',1,'turbojpeg.h']]],
|
['tj3geterrorstr_172',['tj3GetErrorStr',['../group___turbo_j_p_e_g.html#gaf2aab0e6dbb3edc57646b0fec25e8bb2',1,'turbojpeg.h']]],
|
||||||
['tjinittransform_135',['tjInitTransform',['../group___turbo_j_p_e_g.html#ga928beff6ac248ceadf01089fc6b41957',1,'turbojpeg.h']]],
|
['tj3getscalingfactors_173',['tj3GetScalingFactors',['../group___turbo_j_p_e_g.html#ga74397f8e0587d4233182c72f085aaf04',1,'turbojpeg.h']]],
|
||||||
['tjloadimage_136',['tjLoadImage',['../group___turbo_j_p_e_g.html#gaffbd83c375e79f5db4b5c5d8ad4466e7',1,'turbojpeg.h']]],
|
['tj3init_174',['tj3Init',['../group___turbo_j_p_e_g.html#ga69c09d39f97ec30250ad3605ace7e5df',1,'turbojpeg.h']]],
|
||||||
['tjplaneheight_137',['tjPlaneHeight',['../group___turbo_j_p_e_g.html#ga1a209696c6a80748f20e134b3c64789f',1,'turbojpeg.h']]],
|
['tj3jpegbufsize_175',['tj3JPEGBufSize',['../group___turbo_j_p_e_g.html#gac6285e58e35a35d871d7162ec5a929c4',1,'turbojpeg.h']]],
|
||||||
['tjplanesizeyuv_138',['tjPlaneSizeYUV',['../group___turbo_j_p_e_g.html#gab4ab7b24f6e797d79abaaa670373961d',1,'turbojpeg.h']]],
|
['tj3loadimage12_176',['tj3LoadImage12',['../group___turbo_j_p_e_g.html#ga1f03c26892a26d4ce077ed6a4ac40e8f',1,'turbojpeg.h']]],
|
||||||
['tjplanewidth_139',['tjPlaneWidth',['../group___turbo_j_p_e_g.html#ga63fb66bb1e36c74008c4634360becbb1',1,'turbojpeg.h']]],
|
['tj3loadimage16_177',['tj3LoadImage16',['../group___turbo_j_p_e_g.html#ga638aeba63e0ccb89d472fdbf34224cfc',1,'turbojpeg.h']]],
|
||||||
['tjsaveimage_140',['tjSaveImage',['../group___turbo_j_p_e_g.html#ga6f445b22d8933ae4815b3370a538d879',1,'turbojpeg.h']]],
|
['tj3loadimage8_178',['tj3LoadImage8',['../group___turbo_j_p_e_g.html#ga565aaae7be3f8ca9099b56655c893251',1,'turbojpeg.h']]],
|
||||||
['tjtransform_141',['tjTransform',['../group___turbo_j_p_e_g.html#ga9cb8abf4cc91881e04a0329b2270be25',1,'turbojpeg.h']]]
|
['tj3saveimage12_179',['tj3SaveImage12',['../group___turbo_j_p_e_g.html#ga7c64b5106d04267a46aad85f9714ad90',1,'turbojpeg.h']]],
|
||||||
|
['tj3saveimage16_180',['tj3SaveImage16',['../group___turbo_j_p_e_g.html#ga0fd87851f4266aca24bf4594dd0c0e71',1,'turbojpeg.h']]],
|
||||||
|
['tj3saveimage8_181',['tj3SaveImage8',['../group___turbo_j_p_e_g.html#gaa4ec838988e469cc15618e4690cc8722',1,'turbojpeg.h']]],
|
||||||
|
['tj3set_182',['tj3Set',['../group___turbo_j_p_e_g.html#gaddf92640bfee3e8622218c713e77e7db',1,'turbojpeg.h']]],
|
||||||
|
['tj3setcroppingregion_183',['tj3SetCroppingRegion',['../group___turbo_j_p_e_g.html#gaa49c7bd4c9431667a043cfc93388ba1c',1,'turbojpeg.h']]],
|
||||||
|
['tj3setscalingfactor_184',['tj3SetScalingFactor',['../group___turbo_j_p_e_g.html#ga89da17ee1e43ff423382cbc145803c75',1,'turbojpeg.h']]],
|
||||||
|
['tj3transform_185',['tj3Transform',['../group___turbo_j_p_e_g.html#gaff23ba1dcabed456794b844791613920',1,'turbojpeg.h']]],
|
||||||
|
['tj3yuvbufsize_186',['tj3YUVBufSize',['../group___turbo_j_p_e_g.html#gaaebaa16973a0f550a66eca5765ed0546',1,'turbojpeg.h']]],
|
||||||
|
['tj3yuvplaneheight_187',['tj3YUVPlaneHeight',['../group___turbo_j_p_e_g.html#ga969767ec8180cc3edd99cf507f87299b',1,'turbojpeg.h']]],
|
||||||
|
['tj3yuvplanesize_188',['tj3YUVPlaneSize',['../group___turbo_j_p_e_g.html#gacc19d265edce76b46146f59579f9438d',1,'turbojpeg.h']]],
|
||||||
|
['tj3yuvplanewidth_189',['tj3YUVPlaneWidth',['../group___turbo_j_p_e_g.html#gac99d1933ede1d59fcada9a826e88eb2d',1,'turbojpeg.h']]]
|
||||||
];
|
];
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
var searchData=
|
var searchData=
|
||||||
[
|
[
|
||||||
['turbojpeg_201',['TurboJPEG',['../group___turbo_j_p_e_g.html',1,'']]]
|
['turbojpeg_281',['TurboJPEG',['../group___turbo_j_p_e_g.html',1,'']]]
|
||||||
];
|
];
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
var searchData=
|
var searchData=
|
||||||
[
|
[
|
||||||
['tjhandle_160',['tjhandle',['../group___turbo_j_p_e_g.html#ga758d2634ecb4949de7815cba621f5763',1,'turbojpeg.h']]],
|
['tjhandle_210',['tjhandle',['../group___turbo_j_p_e_g.html#ga758d2634ecb4949de7815cba621f5763',1,'turbojpeg.h']]],
|
||||||
['tjtransform_161',['tjtransform',['../group___turbo_j_p_e_g.html#ga504805ec0161f1b505397ca0118bf8fd',1,'turbojpeg.h']]]
|
['tjtransform_211',['tjtransform',['../group___turbo_j_p_e_g.html#ga504805ec0161f1b505397ca0118bf8fd',1,'turbojpeg.h']]]
|
||||||
];
|
];
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
var searchData=
|
var searchData=
|
||||||
[
|
[
|
||||||
['customfilter_142',['customFilter',['../structtjtransform.html#a0dc7697d59a7abe48afc629e96cbc1d2',1,'tjtransform']]]
|
['customfilter_190',['customFilter',['../structtjtransform.html#a0dc7697d59a7abe48afc629e96cbc1d2',1,'tjtransform']]]
|
||||||
];
|
];
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
var searchData=
|
var searchData=
|
||||||
[
|
[
|
||||||
['data_143',['data',['../structtjtransform.html#a688fe8f1a8ecc12a538d9e561cf338e3',1,'tjtransform']]],
|
['data_191',['data',['../structtjtransform.html#a688fe8f1a8ecc12a538d9e561cf338e3',1,'tjtransform']]],
|
||||||
['denom_144',['denom',['../structtjscalingfactor.html#aefbcdf3e9e62274b2d312c695f133ce3',1,'tjscalingfactor']]]
|
['denom_192',['denom',['../structtjscalingfactor.html#aefbcdf3e9e62274b2d312c695f133ce3',1,'tjscalingfactor']]]
|
||||||
];
|
];
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
var searchData=
|
var searchData=
|
||||||
[
|
[
|
||||||
['h_145',['h',['../structtjregion.html#aecefc45a26f4d8b60dd4d825c1710115',1,'tjregion']]]
|
['h_193',['h',['../structtjregion.html#aecefc45a26f4d8b60dd4d825c1710115',1,'tjregion']]]
|
||||||
];
|
];
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
var searchData=
|
var searchData=
|
||||||
[
|
[
|
||||||
['num_146',['num',['../structtjscalingfactor.html#a9b011e57f981ee23083e2c1aa5e640ec',1,'tjscalingfactor']]]
|
['num_194',['num',['../structtjscalingfactor.html#a9b011e57f981ee23083e2c1aa5e640ec',1,'tjscalingfactor']]]
|
||||||
];
|
];
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
var searchData=
|
var searchData=
|
||||||
[
|
[
|
||||||
['op_147',['op',['../structtjtransform.html#a2525aab4ba6978a1c273f74fef50e498',1,'tjtransform']]],
|
['op_195',['op',['../structtjtransform.html#a2525aab4ba6978a1c273f74fef50e498',1,'tjtransform']]],
|
||||||
['options_148',['options',['../structtjtransform.html#ac0e74655baa4402209a21e1ae481c8f6',1,'tjtransform']]]
|
['options_196',['options',['../structtjtransform.html#ac0e74655baa4402209a21e1ae481c8f6',1,'tjtransform']]]
|
||||||
];
|
];
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
var searchData=
|
var searchData=
|
||||||
[
|
[
|
||||||
['r_149',['r',['../structtjtransform.html#ac324e5e442abec8a961e5bf219db12cf',1,'tjtransform']]]
|
['r_197',['r',['../structtjtransform.html#ac324e5e442abec8a961e5bf219db12cf',1,'tjtransform']]]
|
||||||
];
|
];
|
||||||
|
|||||||
@@ -1,10 +1,12 @@
|
|||||||
var searchData=
|
var searchData=
|
||||||
[
|
[
|
||||||
['tjalphaoffset_150',['tjAlphaOffset',['../group___turbo_j_p_e_g.html#ga5af0ab065feefd526debf1e20c43e837',1,'turbojpeg.h']]],
|
['tjalphaoffset_198',['tjAlphaOffset',['../group___turbo_j_p_e_g.html#ga5af0ab065feefd526debf1e20c43e837',1,'turbojpeg.h']]],
|
||||||
['tjblueoffset_151',['tjBlueOffset',['../group___turbo_j_p_e_g.html#ga84e2e35d3f08025f976ec1ec53693dea',1,'turbojpeg.h']]],
|
['tjblueoffset_199',['tjBlueOffset',['../group___turbo_j_p_e_g.html#ga84e2e35d3f08025f976ec1ec53693dea',1,'turbojpeg.h']]],
|
||||||
['tjgreenoffset_152',['tjGreenOffset',['../group___turbo_j_p_e_g.html#ga82d6e35da441112a411da41923c0ba2f',1,'turbojpeg.h']]],
|
['tjgreenoffset_200',['tjGreenOffset',['../group___turbo_j_p_e_g.html#ga82d6e35da441112a411da41923c0ba2f',1,'turbojpeg.h']]],
|
||||||
['tjmcuheight_153',['tjMCUHeight',['../group___turbo_j_p_e_g.html#gabd247bb9fecb393eca57366feb8327bf',1,'turbojpeg.h']]],
|
['tjmcuheight_201',['tjMCUHeight',['../group___turbo_j_p_e_g.html#gabd247bb9fecb393eca57366feb8327bf',1,'turbojpeg.h']]],
|
||||||
['tjmcuwidth_154',['tjMCUWidth',['../group___turbo_j_p_e_g.html#ga9e61e7cd47a15a173283ba94e781308c',1,'turbojpeg.h']]],
|
['tjmcuwidth_202',['tjMCUWidth',['../group___turbo_j_p_e_g.html#ga9e61e7cd47a15a173283ba94e781308c',1,'turbojpeg.h']]],
|
||||||
['tjpixelsize_155',['tjPixelSize',['../group___turbo_j_p_e_g.html#gad77cf8fe5b2bfd3cb3f53098146abb4c',1,'turbojpeg.h']]],
|
['tjpixelsize_203',['tjPixelSize',['../group___turbo_j_p_e_g.html#gad77cf8fe5b2bfd3cb3f53098146abb4c',1,'turbojpeg.h']]],
|
||||||
['tjredoffset_156',['tjRedOffset',['../group___turbo_j_p_e_g.html#gadd9b446742ac8a3923f7992c7988fea8',1,'turbojpeg.h']]]
|
['tjredoffset_204',['tjRedOffset',['../group___turbo_j_p_e_g.html#gadd9b446742ac8a3923f7992c7988fea8',1,'turbojpeg.h']]],
|
||||||
|
['tjuncropped_205',['TJUNCROPPED',['../group___turbo_j_p_e_g.html#ga6f192ad58a5a5802e145149d83c643bf',1,'turbojpeg.h']]],
|
||||||
|
['tjunscaled_206',['TJUNSCALED',['../group___turbo_j_p_e_g.html#ga7880644a0849161ad20933536169ee19',1,'turbojpeg.h']]]
|
||||||
];
|
];
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
var searchData=
|
var searchData=
|
||||||
[
|
[
|
||||||
['w_157',['w',['../structtjregion.html#ab6eb73ceef584fc23c8c8097926dce42',1,'tjregion']]]
|
['w_207',['w',['../structtjregion.html#ab6eb73ceef584fc23c8c8097926dce42',1,'tjregion']]]
|
||||||
];
|
];
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
var searchData=
|
var searchData=
|
||||||
[
|
[
|
||||||
['x_158',['x',['../structtjregion.html#a4b6a37a93997091b26a75831fa291ad9',1,'tjregion']]]
|
['x_208',['x',['../structtjregion.html#a4b6a37a93997091b26a75831fa291ad9',1,'tjregion']]]
|
||||||
];
|
];
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
var searchData=
|
var searchData=
|
||||||
[
|
[
|
||||||
['y_159',['y',['../structtjregion.html#a7b3e0c24cfe87acc80e334cafdcf22c2',1,'tjregion']]]
|
['y_209',['y',['../structtjregion.html#a7b3e0c24cfe87acc80e334cafdcf22c2',1,'tjregion']]]
|
||||||
];
|
];
|
||||||
|
|||||||
@@ -23,7 +23,7 @@
|
|||||||
<tr style="height: 56px;">
|
<tr style="height: 56px;">
|
||||||
<td id="projectalign" style="padding-left: 0.5em;">
|
<td id="projectalign" style="padding-left: 0.5em;">
|
||||||
<div id="projectname">TurboJPEG
|
<div id="projectname">TurboJPEG
|
||||||
 <span id="projectnumber">2.1.4</span>
|
 <span id="projectnumber">3</span>
|
||||||
</div>
|
</div>
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
@@ -157,7 +157,7 @@ Data Fields</h2></td></tr>
|
|||||||
</div><div class="memdoc">
|
</div><div class="memdoc">
|
||||||
|
|
||||||
<p>The upper boundary of the cropping region. </p>
|
<p>The upper boundary of the cropping region. </p>
|
||||||
<p>This must be evenly divisible by the MCU block height (see <a class="el" href="group___turbo_j_p_e_g.html#gabd247bb9fecb393eca57366feb8327bf" title="MCU block height (in pixels) for a given level of chrominance subsampling.">tjMCUHeight</a>.) </p>
|
<p>For lossless transformation, this must be evenly divisible by the MCU block height (see <a class="el" href="group___turbo_j_p_e_g.html#gabd247bb9fecb393eca57366feb8327bf" title="MCU block height (in pixels) for a given level of chrominance subsampling.">tjMCUHeight</a>.) </p>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -23,7 +23,7 @@
|
|||||||
<tr style="height: 56px;">
|
<tr style="height: 56px;">
|
||||||
<td id="projectalign" style="padding-left: 0.5em;">
|
<td id="projectalign" style="padding-left: 0.5em;">
|
||||||
<div id="projectname">TurboJPEG
|
<div id="projectname">TurboJPEG
|
||||||
 <span id="projectnumber">2.1.4</span>
|
 <span id="projectnumber">3</span>
|
||||||
</div>
|
</div>
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
|
|||||||
@@ -23,7 +23,7 @@
|
|||||||
<tr style="height: 56px;">
|
<tr style="height: 56px;">
|
||||||
<td id="projectalign" style="padding-left: 0.5em;">
|
<td id="projectalign" style="padding-left: 0.5em;">
|
||||||
<div id="projectname">TurboJPEG
|
<div id="projectname">TurboJPEG
|
||||||
 <span id="projectnumber">2.1.4</span>
|
 <span id="projectnumber">3</span>
|
||||||
</div>
|
</div>
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
@@ -84,7 +84,7 @@ Data Fields</h2></td></tr>
|
|||||||
<tr class="memdesc:a2525aab4ba6978a1c273f74fef50e498"><td class="mdescLeft"> </td><td class="mdescRight">One of the <a class="el" href="group___turbo_j_p_e_g.html#ga2de531af4e7e6c4f124908376b354866">transform operations</a>. <a href="structtjtransform.html#a2525aab4ba6978a1c273f74fef50e498">More...</a><br /></td></tr>
|
<tr class="memdesc:a2525aab4ba6978a1c273f74fef50e498"><td class="mdescLeft"> </td><td class="mdescRight">One of the <a class="el" href="group___turbo_j_p_e_g.html#ga2de531af4e7e6c4f124908376b354866">transform operations</a>. <a href="structtjtransform.html#a2525aab4ba6978a1c273f74fef50e498">More...</a><br /></td></tr>
|
||||||
<tr class="separator:a2525aab4ba6978a1c273f74fef50e498"><td class="memSeparator" colspan="2"> </td></tr>
|
<tr class="separator:a2525aab4ba6978a1c273f74fef50e498"><td class="memSeparator" colspan="2"> </td></tr>
|
||||||
<tr class="memitem:ac0e74655baa4402209a21e1ae481c8f6"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="structtjtransform.html#ac0e74655baa4402209a21e1ae481c8f6">options</a></td></tr>
|
<tr class="memitem:ac0e74655baa4402209a21e1ae481c8f6"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="structtjtransform.html#ac0e74655baa4402209a21e1ae481c8f6">options</a></td></tr>
|
||||||
<tr class="memdesc:ac0e74655baa4402209a21e1ae481c8f6"><td class="mdescLeft"> </td><td class="mdescRight">The bitwise OR of one of more of the <a class="el" href="group___turbo_j_p_e_g.html#ga153b468cfb905d0de61706c838986fe8">transform options</a>. <a href="structtjtransform.html#ac0e74655baa4402209a21e1ae481c8f6">More...</a><br /></td></tr>
|
<tr class="memdesc:ac0e74655baa4402209a21e1ae481c8f6"><td class="mdescLeft"> </td><td class="mdescRight">The bitwise OR of one of more of the <a class="el" href="group___turbo_j_p_e_g.html#gaecaaa3b7e2af812592c015d83207f010">transform options</a>. <a href="structtjtransform.html#ac0e74655baa4402209a21e1ae481c8f6">More...</a><br /></td></tr>
|
||||||
<tr class="separator:ac0e74655baa4402209a21e1ae481c8f6"><td class="memSeparator" colspan="2"> </td></tr>
|
<tr class="separator:ac0e74655baa4402209a21e1ae481c8f6"><td class="memSeparator" colspan="2"> </td></tr>
|
||||||
<tr class="memitem:a688fe8f1a8ecc12a538d9e561cf338e3"><td class="memItemLeft" align="right" valign="top">void * </td><td class="memItemRight" valign="bottom"><a class="el" href="structtjtransform.html#a688fe8f1a8ecc12a538d9e561cf338e3">data</a></td></tr>
|
<tr class="memitem:a688fe8f1a8ecc12a538d9e561cf338e3"><td class="memItemLeft" align="right" valign="top">void * </td><td class="memItemRight" valign="bottom"><a class="el" href="structtjtransform.html#a688fe8f1a8ecc12a538d9e561cf338e3">data</a></td></tr>
|
||||||
<tr class="memdesc:a688fe8f1a8ecc12a538d9e561cf338e3"><td class="mdescLeft"> </td><td class="mdescRight">Arbitrary data that can be accessed within the body of the callback function. <a href="structtjtransform.html#a688fe8f1a8ecc12a538d9e561cf338e3">More...</a><br /></td></tr>
|
<tr class="memdesc:a688fe8f1a8ecc12a538d9e561cf338e3"><td class="mdescLeft"> </td><td class="mdescRight">Arbitrary data that can be accessed within the body of the callback function. <a href="structtjtransform.html#a688fe8f1a8ecc12a538d9e561cf338e3">More...</a><br /></td></tr>
|
||||||
@@ -116,7 +116,7 @@ Data Fields</h2></td></tr>
|
|||||||
<tr><td class="paramname">arrayRegion</td><td><a class="el" href="structtjregion.html" title="Cropping region.">tjregion</a> structure containing the width and height of the array pointed to by <code>coeffs</code> as well as its offset relative to the component plane. TurboJPEG implementations may choose to split each component plane into multiple DCT coefficient arrays and call the callback function once for each array.</td></tr>
|
<tr><td class="paramname">arrayRegion</td><td><a class="el" href="structtjregion.html" title="Cropping region.">tjregion</a> structure containing the width and height of the array pointed to by <code>coeffs</code> as well as its offset relative to the component plane. TurboJPEG implementations may choose to split each component plane into multiple DCT coefficient arrays and call the callback function once for each array.</td></tr>
|
||||||
<tr><td class="paramname">planeRegion</td><td><a class="el" href="structtjregion.html" title="Cropping region.">tjregion</a> structure containing the width and height of the component plane to which <code>coeffs</code> belongs</td></tr>
|
<tr><td class="paramname">planeRegion</td><td><a class="el" href="structtjregion.html" title="Cropping region.">tjregion</a> structure containing the width and height of the component plane to which <code>coeffs</code> belongs</td></tr>
|
||||||
<tr><td class="paramname">componentID</td><td>ID number of the component plane to which <code>coeffs</code> belongs. (Y, Cb, and Cr have, respectively, ID's of 0, 1, and 2 in typical JPEG images.)</td></tr>
|
<tr><td class="paramname">componentID</td><td>ID number of the component plane to which <code>coeffs</code> belongs. (Y, Cb, and Cr have, respectively, ID's of 0, 1, and 2 in typical JPEG images.)</td></tr>
|
||||||
<tr><td class="paramname">transformID</td><td>ID number of the transformed image to which <code>coeffs</code> belongs. This is the same as the index of the transform in the <code>transforms</code> array that was passed to <a class="el" href="group___turbo_j_p_e_g.html#ga9cb8abf4cc91881e04a0329b2270be25" title="Losslessly transform a JPEG image into another JPEG image.">tjTransform()</a>.</td></tr>
|
<tr><td class="paramname">transformID</td><td>ID number of the transformed image to which <code>coeffs</code> belongs. This is the same as the index of the transform in the <code>transforms</code> array that was passed to <a class="el" href="group___turbo_j_p_e_g.html#gaff23ba1dcabed456794b844791613920" title="Losslessly transform a JPEG image into another JPEG image.">tj3Transform()</a>.</td></tr>
|
||||||
<tr><td class="paramname">transform</td><td>a pointer to a <a class="el" href="structtjtransform.html" title="Lossless transform.">tjtransform</a> structure that specifies the parameters and/or cropping region for this transform</td></tr>
|
<tr><td class="paramname">transform</td><td>a pointer to a <a class="el" href="structtjtransform.html" title="Lossless transform.">tjtransform</a> structure that specifies the parameters and/or cropping region for this transform</td></tr>
|
||||||
</table>
|
</table>
|
||||||
</dd>
|
</dd>
|
||||||
@@ -169,7 +169,7 @@ Data Fields</h2></td></tr>
|
|||||||
</table>
|
</table>
|
||||||
</div><div class="memdoc">
|
</div><div class="memdoc">
|
||||||
|
|
||||||
<p>The bitwise OR of one of more of the <a class="el" href="group___turbo_j_p_e_g.html#ga153b468cfb905d0de61706c838986fe8">transform options</a>. </p>
|
<p>The bitwise OR of one of more of the <a class="el" href="group___turbo_j_p_e_g.html#gaecaaa3b7e2af812592c015d83207f010">transform options</a>. </p>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
PROJECT_NAME = TurboJPEG
|
PROJECT_NAME = TurboJPEG
|
||||||
PROJECT_NUMBER = 2.1.4
|
PROJECT_NUMBER = 3
|
||||||
OUTPUT_DIRECTORY = doc/
|
OUTPUT_DIRECTORY = doc/
|
||||||
USE_WINDOWS_ENCODING = NO
|
USE_WINDOWS_ENCODING = NO
|
||||||
OPTIMIZE_OUTPUT_FOR_C = YES
|
OPTIMIZE_OUTPUT_FOR_C = YES
|
||||||
|
|||||||
@@ -1,33 +1,41 @@
|
|||||||
/*
|
/*
|
||||||
* example.txt
|
* example.c
|
||||||
|
*
|
||||||
|
* This file was part of the Independent JPEG Group's software.
|
||||||
|
* Copyright (C) 1992-1996, Thomas G. Lane.
|
||||||
|
* libjpeg-turbo Modifications:
|
||||||
|
* Copyright (C) 2017, 2019, 2022, D. R. Commander.
|
||||||
|
* For conditions of distribution and use, see the accompanying README.ijg
|
||||||
|
* file.
|
||||||
*
|
*
|
||||||
* This file illustrates how to use the IJG code as a subroutine library
|
* This file illustrates how to use the IJG code as a subroutine library
|
||||||
* to read or write JPEG image files. You should look at this code in
|
* to read or write JPEG image files with 8-bit or 12-bit data precision. You
|
||||||
* conjunction with the documentation file libjpeg.txt.
|
* should look at this code in conjunction with the documentation file
|
||||||
*
|
* libjpeg.txt.
|
||||||
* This code will not do anything useful as-is, but it may be helpful as a
|
|
||||||
* skeleton for constructing routines that call the JPEG library.
|
|
||||||
*
|
*
|
||||||
* We present these routines in the same coding style used in the JPEG code
|
* We present these routines in the same coding style used in the JPEG code
|
||||||
* (ANSI function definitions, etc); but you are of course free to code your
|
* (ANSI function definitions, etc); but you are of course free to code your
|
||||||
* routines in a different style if you prefer.
|
* routines in a different style if you prefer.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/* This example was part of the original libjpeg documentation and has been
|
/* First-time users of libjpeg-turbo might be better served by looking at
|
||||||
* unchanged since 1994. It is, as described in libjpeg.txt, "heavily
|
* tjexample.c, which uses the more straightforward TurboJPEG API. Note that
|
||||||
* commented skeleton code for calling the JPEG library." It is not meant to
|
* this example, like cjpeg and djpeg, interleaves disk I/O with JPEG
|
||||||
* be compiled as a standalone program, since it has no main() function and
|
* compression/decompression, so it is not suitable for benchmarking purposes.
|
||||||
* does not compress from/decompress to a real image buffer (corollary:
|
|
||||||
* put_scanline_someplace() is not a real function.) First-time users of
|
|
||||||
* libjpeg-turbo would be better served by looking at tjexample.c, which uses
|
|
||||||
* the more straightforward TurboJPEG API, or at cjpeg.c and djpeg.c, which are
|
|
||||||
* examples of libjpeg API usage that can be (and are) compiled into standalone
|
|
||||||
* programs. Note that this example, as well as the examples in cjpeg.c and
|
|
||||||
* djpeg.c, interleave disk I/O with JPEG compression/decompression, so none of
|
|
||||||
* these examples is suitable for benchmarking purposes.
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
#ifdef _MSC_VER
|
||||||
|
#define _CRT_SECURE_NO_DEPRECATE
|
||||||
|
#endif
|
||||||
|
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
|
#include <stdlib.h>
|
||||||
|
#include <string.h>
|
||||||
|
|
||||||
|
#ifdef _WIN32
|
||||||
|
#define strcasecmp stricmp
|
||||||
|
#define strncasecmp strnicmp
|
||||||
|
#endif
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Include file for users of JPEG library.
|
* Include file for users of JPEG library.
|
||||||
@@ -38,6 +46,7 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
#include "jpeglib.h"
|
#include "jpeglib.h"
|
||||||
|
#include "jerror.h"
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* <setjmp.h> is used for the optional error recovery mechanism shown in
|
* <setjmp.h> is used for the optional error recovery mechanism shown in
|
||||||
@@ -61,10 +70,10 @@
|
|||||||
*
|
*
|
||||||
* The standard input image format is a rectangular array of pixels, with
|
* The standard input image format is a rectangular array of pixels, with
|
||||||
* each pixel having the same number of "component" values (color channels).
|
* each pixel having the same number of "component" values (color channels).
|
||||||
* Each pixel row is an array of JSAMPLEs (which typically are unsigned chars).
|
* Each pixel row is an array of JSAMPLEs (which typically are unsigned chars)
|
||||||
* If you are working with color data, then the color values for each pixel
|
* or J12SAMPLEs (which typically are shorts). If you are working with color
|
||||||
* must be adjacent in the row; for example, R,G,B,R,G,B,R,G,B,... for 24-bit
|
* data, then the color values for each pixel must be adjacent in the row; for
|
||||||
* RGB color.
|
* example, R,G,B,R,G,B,R,G,B,... for 24-bit RGB color.
|
||||||
*
|
*
|
||||||
* For this example, we'll assume that this data structure matches the way
|
* For this example, we'll assume that this data structure matches the way
|
||||||
* our application has stored the image in memory, so we can just pass a
|
* our application has stored the image in memory, so we can just pass a
|
||||||
@@ -72,18 +81,17 @@
|
|||||||
* RGB color and is described by:
|
* RGB color and is described by:
|
||||||
*/
|
*/
|
||||||
|
|
||||||
extern JSAMPLE *image_buffer; /* Points to large array of R,G,B-order data */
|
#define WIDTH 640 /* Number of columns in image */
|
||||||
extern int image_height; /* Number of rows in image */
|
#define HEIGHT 480 /* Number of rows in image */
|
||||||
extern int image_width; /* Number of columns in image */
|
|
||||||
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Sample routine for JPEG compression. We assume that the target file name
|
* Sample routine for JPEG compression. We assume that the target file name,
|
||||||
* and a compression quality factor are passed in.
|
* a compression quality factor, and a data precision are passed in.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
GLOBAL(void)
|
METHODDEF(void)
|
||||||
write_JPEG_file(char *filename, int quality)
|
write_JPEG_file(char *filename, int quality, int data_precision)
|
||||||
{
|
{
|
||||||
/* This struct contains the JPEG compression parameters and pointers to
|
/* This struct contains the JPEG compression parameters and pointers to
|
||||||
* working space (which is allocated as needed by the JPEG library).
|
* working space (which is allocated as needed by the JPEG library).
|
||||||
@@ -103,8 +111,15 @@ write_JPEG_file(char *filename, int quality)
|
|||||||
struct jpeg_error_mgr jerr;
|
struct jpeg_error_mgr jerr;
|
||||||
/* More stuff */
|
/* More stuff */
|
||||||
FILE *outfile; /* target file */
|
FILE *outfile; /* target file */
|
||||||
|
JSAMPARRAY image_buffer = NULL;
|
||||||
|
/* Points to large array of R,G,B-order data */
|
||||||
JSAMPROW row_pointer[1]; /* pointer to JSAMPLE row[s] */
|
JSAMPROW row_pointer[1]; /* pointer to JSAMPLE row[s] */
|
||||||
|
J12SAMPARRAY image_buffer12 = NULL;
|
||||||
|
/* Points to large array of R,G,B-order 12-bit
|
||||||
|
data */
|
||||||
|
J12SAMPROW row_pointer12[1]; /* pointer to J12SAMPLE row[s] */
|
||||||
int row_stride; /* physical row width in image buffer */
|
int row_stride; /* physical row width in image buffer */
|
||||||
|
int row, col;
|
||||||
|
|
||||||
/* Step 1: allocate and initialize JPEG compression object */
|
/* Step 1: allocate and initialize JPEG compression object */
|
||||||
|
|
||||||
@@ -125,10 +140,8 @@ write_JPEG_file(char *filename, int quality)
|
|||||||
* VERY IMPORTANT: use "b" option to fopen() if you are on a machine that
|
* VERY IMPORTANT: use "b" option to fopen() if you are on a machine that
|
||||||
* requires it in order to write binary files.
|
* requires it in order to write binary files.
|
||||||
*/
|
*/
|
||||||
if ((outfile = fopen(filename, "wb")) == NULL) {
|
if ((outfile = fopen(filename, "wb")) == NULL)
|
||||||
fprintf(stderr, "can't open %s\n", filename);
|
ERREXIT(&cinfo, JERR_FILE_WRITE);
|
||||||
exit(1);
|
|
||||||
}
|
|
||||||
jpeg_stdio_dest(&cinfo, outfile);
|
jpeg_stdio_dest(&cinfo, outfile);
|
||||||
|
|
||||||
/* Step 3: set parameters for compression */
|
/* Step 3: set parameters for compression */
|
||||||
@@ -136,10 +149,11 @@ write_JPEG_file(char *filename, int quality)
|
|||||||
/* First we supply a description of the input image.
|
/* First we supply a description of the input image.
|
||||||
* Four fields of the cinfo struct must be filled in:
|
* Four fields of the cinfo struct must be filled in:
|
||||||
*/
|
*/
|
||||||
cinfo.image_width = image_width; /* image width and height, in pixels */
|
cinfo.image_width = WIDTH; /* image width and height, in pixels */
|
||||||
cinfo.image_height = image_height;
|
cinfo.image_height = HEIGHT;
|
||||||
cinfo.input_components = 3; /* # of color components per pixel */
|
cinfo.input_components = 3; /* # of color components per pixel */
|
||||||
cinfo.in_color_space = JCS_RGB; /* colorspace of input image */
|
cinfo.in_color_space = JCS_RGB; /* colorspace of input image */
|
||||||
|
cinfo.data_precision = data_precision; /* data precision of input image */
|
||||||
/* Now use the library's routine to set default compression parameters.
|
/* Now use the library's routine to set default compression parameters.
|
||||||
* (You must set at least cinfo.in_color_space before calling this,
|
* (You must set at least cinfo.in_color_space before calling this,
|
||||||
* since the defaults depend on the source color space.)
|
* since the defaults depend on the source color space.)
|
||||||
@@ -149,6 +163,8 @@ write_JPEG_file(char *filename, int quality)
|
|||||||
* Here we just illustrate the use of quality (quantization table) scaling:
|
* Here we just illustrate the use of quality (quantization table) scaling:
|
||||||
*/
|
*/
|
||||||
jpeg_set_quality(&cinfo, quality, TRUE /* limit to baseline-JPEG values */);
|
jpeg_set_quality(&cinfo, quality, TRUE /* limit to baseline-JPEG values */);
|
||||||
|
/* Use 4:4:4 subsampling (default is 4:2:0) */
|
||||||
|
cinfo.comp_info[0].h_samp_factor = cinfo.comp_info[0].v_samp_factor = 1;
|
||||||
|
|
||||||
/* Step 4: Start compressor */
|
/* Step 4: Start compressor */
|
||||||
|
|
||||||
@@ -157,7 +173,48 @@ write_JPEG_file(char *filename, int quality)
|
|||||||
*/
|
*/
|
||||||
jpeg_start_compress(&cinfo, TRUE);
|
jpeg_start_compress(&cinfo, TRUE);
|
||||||
|
|
||||||
/* Step 5: while (scan lines remain to be written) */
|
/* Step 5: allocate and initialize image buffer */
|
||||||
|
|
||||||
|
row_stride = WIDTH * 3; /* J[12]SAMPLEs per row in image_buffer */
|
||||||
|
/* Make a sample array that will go away when done with image. Note that,
|
||||||
|
* for the purposes of this example, we could also create a one-row-high
|
||||||
|
* sample array and initialize it for each successive scanline written in the
|
||||||
|
* scanline loop below.
|
||||||
|
*/
|
||||||
|
if (cinfo.data_precision == 12) {
|
||||||
|
image_buffer12 = (J12SAMPARRAY)(*cinfo.mem->alloc_sarray)
|
||||||
|
((j_common_ptr)&cinfo, JPOOL_IMAGE, row_stride, HEIGHT);
|
||||||
|
|
||||||
|
/* Initialize image buffer with a repeating pattern */
|
||||||
|
for (row = 0; row < HEIGHT; row++) {
|
||||||
|
for (col = 0; col < WIDTH; col++) {
|
||||||
|
image_buffer12[row][col * 3] =
|
||||||
|
(col * (MAXJ12SAMPLE + 1) / WIDTH) % (MAXJ12SAMPLE + 1);
|
||||||
|
image_buffer12[row][col * 3 + 1] =
|
||||||
|
(row * (MAXJ12SAMPLE + 1) / HEIGHT) % (MAXJ12SAMPLE + 1);
|
||||||
|
image_buffer12[row][col * 3 + 2] =
|
||||||
|
(row * (MAXJ12SAMPLE + 1) / HEIGHT +
|
||||||
|
col * (MAXJ12SAMPLE + 1) / WIDTH) % (MAXJ12SAMPLE + 1);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
image_buffer = (*cinfo.mem->alloc_sarray)
|
||||||
|
((j_common_ptr)&cinfo, JPOOL_IMAGE, row_stride, HEIGHT);
|
||||||
|
|
||||||
|
for (row = 0; row < HEIGHT; row++) {
|
||||||
|
for (col = 0; col < WIDTH; col++) {
|
||||||
|
image_buffer[row][col * 3] =
|
||||||
|
(col * (MAXJSAMPLE + 1) / WIDTH) % (MAXJSAMPLE + 1);
|
||||||
|
image_buffer[row][col * 3 + 1] =
|
||||||
|
(row * (MAXJSAMPLE + 1) / HEIGHT) % (MAXJSAMPLE + 1);
|
||||||
|
image_buffer[row][col * 3 + 2] =
|
||||||
|
(row * (MAXJSAMPLE + 1) / HEIGHT + col * (MAXJSAMPLE + 1) / WIDTH) %
|
||||||
|
(MAXJSAMPLE + 1);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Step 6: while (scan lines remain to be written) */
|
||||||
/* jpeg_write_scanlines(...); */
|
/* jpeg_write_scanlines(...); */
|
||||||
|
|
||||||
/* Here we use the library's state variable cinfo.next_scanline as the
|
/* Here we use the library's state variable cinfo.next_scanline as the
|
||||||
@@ -165,24 +222,33 @@ write_JPEG_file(char *filename, int quality)
|
|||||||
* To keep things simple, we pass one scanline per call; you can pass
|
* To keep things simple, we pass one scanline per call; you can pass
|
||||||
* more if you wish, though.
|
* more if you wish, though.
|
||||||
*/
|
*/
|
||||||
row_stride = image_width * 3; /* JSAMPLEs per row in image_buffer */
|
if (cinfo.data_precision == 12) {
|
||||||
|
while (cinfo.next_scanline < cinfo.image_height) {
|
||||||
while (cinfo.next_scanline < cinfo.image_height) {
|
/* jpeg12_write_scanlines expects an array of pointers to scanlines.
|
||||||
/* jpeg_write_scanlines expects an array of pointers to scanlines.
|
* Here the array is only one element long, but you could pass
|
||||||
* Here the array is only one element long, but you could pass
|
* more than one scanline at a time if that's more convenient.
|
||||||
* more than one scanline at a time if that's more convenient.
|
*/
|
||||||
*/
|
row_pointer12[0] = image_buffer12[cinfo.next_scanline];
|
||||||
row_pointer[0] = &image_buffer[cinfo.next_scanline * row_stride];
|
(void)jpeg12_write_scanlines(&cinfo, row_pointer12, 1);
|
||||||
(void)jpeg_write_scanlines(&cinfo, row_pointer, 1);
|
}
|
||||||
|
} else {
|
||||||
|
while (cinfo.next_scanline < cinfo.image_height) {
|
||||||
|
/* jpeg_write_scanlines expects an array of pointers to scanlines.
|
||||||
|
* Here the array is only one element long, but you could pass
|
||||||
|
* more than one scanline at a time if that's more convenient.
|
||||||
|
*/
|
||||||
|
row_pointer[0] = image_buffer[cinfo.next_scanline];
|
||||||
|
(void)jpeg_write_scanlines(&cinfo, row_pointer, 1);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Step 6: Finish compression */
|
/* Step 7: Finish compression */
|
||||||
|
|
||||||
jpeg_finish_compress(&cinfo);
|
jpeg_finish_compress(&cinfo);
|
||||||
/* After finish_compress, we can close the output file. */
|
/* After finish_compress, we can close the output file. */
|
||||||
fclose(outfile);
|
fclose(outfile);
|
||||||
|
|
||||||
/* Step 7: release JPEG compression object */
|
/* Step 8: release JPEG compression object */
|
||||||
|
|
||||||
/* This is an important step since it will release a good deal of memory. */
|
/* This is an important step since it will release a good deal of memory. */
|
||||||
jpeg_destroy_compress(&cinfo);
|
jpeg_destroy_compress(&cinfo);
|
||||||
@@ -231,10 +297,11 @@ write_JPEG_file(char *filename, int quality)
|
|||||||
* Just to make this example a little different from the first one, we'll
|
* Just to make this example a little different from the first one, we'll
|
||||||
* assume that we do not intend to put the whole image into an in-memory
|
* assume that we do not intend to put the whole image into an in-memory
|
||||||
* buffer, but to send it line-by-line someplace else. We need a one-
|
* buffer, but to send it line-by-line someplace else. We need a one-
|
||||||
* scanline-high JSAMPLE array as a work buffer, and we will let the JPEG
|
* scanline-high JSAMPLE or J12SAMPLE array as a work buffer, and we will let
|
||||||
* memory manager allocate it for us. This approach is actually quite useful
|
* the JPEG memory manager allocate it for us. This approach is actually quite
|
||||||
* because we don't need to remember to deallocate the buffer separately: it
|
* useful because we don't need to remember to deallocate the buffer
|
||||||
* will go away automatically when the JPEG object is cleaned up.
|
* separately: it will go away automatically when the JPEG object is cleaned
|
||||||
|
* up.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
|
||||||
@@ -289,22 +356,22 @@ my_error_exit(j_common_ptr cinfo)
|
|||||||
|
|
||||||
|
|
||||||
METHODDEF(int) do_read_JPEG_file(struct jpeg_decompress_struct *cinfo,
|
METHODDEF(int) do_read_JPEG_file(struct jpeg_decompress_struct *cinfo,
|
||||||
char *filename);
|
char *infilename, char *outfilename);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Sample routine for JPEG decompression. We assume that the source file name
|
* Sample routine for JPEG decompression. We assume that the source file name
|
||||||
* is passed in. We want to return 1 on success, 0 on error.
|
* is passed in. We want to return 1 on success, 0 on error.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
GLOBAL(int)
|
METHODDEF(int)
|
||||||
read_JPEG_file(char *filename)
|
read_JPEG_file(char *infilename, char *outfilename)
|
||||||
{
|
{
|
||||||
/* This struct contains the JPEG decompression parameters and pointers to
|
/* This struct contains the JPEG decompression parameters and pointers to
|
||||||
* working space (which is allocated as needed by the JPEG library).
|
* working space (which is allocated as needed by the JPEG library).
|
||||||
*/
|
*/
|
||||||
struct jpeg_decompress_struct cinfo;
|
struct jpeg_decompress_struct cinfo;
|
||||||
|
|
||||||
return do_read_JPEG_file(&cinfo, filename);
|
return do_read_JPEG_file(&cinfo, infilename, outfilename);
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@@ -316,7 +383,8 @@ read_JPEG_file(char *filename)
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
METHODDEF(int)
|
METHODDEF(int)
|
||||||
do_read_JPEG_file(struct jpeg_decompress_struct *cinfo, char *filename)
|
do_read_JPEG_file(struct jpeg_decompress_struct *cinfo, char *infilename,
|
||||||
|
char *outfilename)
|
||||||
{
|
{
|
||||||
/* We use our private extension JPEG error handler.
|
/* We use our private extension JPEG error handler.
|
||||||
* Note that this struct must live as long as the main JPEG parameter
|
* Note that this struct must live as long as the main JPEG parameter
|
||||||
@@ -325,17 +393,27 @@ do_read_JPEG_file(struct jpeg_decompress_struct *cinfo, char *filename)
|
|||||||
struct my_error_mgr jerr;
|
struct my_error_mgr jerr;
|
||||||
/* More stuff */
|
/* More stuff */
|
||||||
FILE *infile; /* source file */
|
FILE *infile; /* source file */
|
||||||
JSAMPARRAY buffer; /* Output row buffer */
|
FILE *outfile; /* output file */
|
||||||
|
JSAMPARRAY buffer = NULL; /* Output row buffer */
|
||||||
|
J12SAMPARRAY buffer12 = NULL; /* 12-bit output row buffer */
|
||||||
|
int col;
|
||||||
int row_stride; /* physical row width in output buffer */
|
int row_stride; /* physical row width in output buffer */
|
||||||
|
|
||||||
/* In this example we want to open the input file before doing anything else,
|
/* In this example we want to open the input and output files before doing
|
||||||
* so that the setjmp() error recovery below can assume the file is open.
|
* anything else, so that the setjmp() error recovery below can assume the
|
||||||
|
* files are open.
|
||||||
|
*
|
||||||
* VERY IMPORTANT: use "b" option to fopen() if you are on a machine that
|
* VERY IMPORTANT: use "b" option to fopen() if you are on a machine that
|
||||||
* requires it in order to read binary files.
|
* requires it in order to read/write binary files.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
if ((infile = fopen(filename, "rb")) == NULL) {
|
if ((infile = fopen(infilename, "rb")) == NULL) {
|
||||||
fprintf(stderr, "can't open %s\n", filename);
|
fprintf(stderr, "can't open %s\n", infilename);
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
if ((outfile = fopen(outfilename, "wb")) == NULL) {
|
||||||
|
fprintf(stderr, "can't open %s\n", outfilename);
|
||||||
|
fclose(infile);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -351,6 +429,7 @@ do_read_JPEG_file(struct jpeg_decompress_struct *cinfo, char *filename)
|
|||||||
*/
|
*/
|
||||||
jpeg_destroy_decompress(cinfo);
|
jpeg_destroy_decompress(cinfo);
|
||||||
fclose(infile);
|
fclose(infile);
|
||||||
|
fclose(outfile);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
/* Now we can initialize the JPEG decompression object. */
|
/* Now we can initialize the JPEG decompression object. */
|
||||||
@@ -369,6 +448,10 @@ do_read_JPEG_file(struct jpeg_decompress_struct *cinfo, char *filename)
|
|||||||
* See libjpeg.txt for more info.
|
* See libjpeg.txt for more info.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
/* emit header for raw PPM format */
|
||||||
|
fprintf(outfile, "P6\n%d %d\n%d\n", WIDTH, HEIGHT,
|
||||||
|
cinfo->data_precision == 12 ? MAXJ12SAMPLE : MAXJSAMPLE);
|
||||||
|
|
||||||
/* Step 4: set parameters for decompression */
|
/* Step 4: set parameters for decompression */
|
||||||
|
|
||||||
/* In this example, we don't need to change any of the defaults set by
|
/* In this example, we don't need to change any of the defaults set by
|
||||||
@@ -388,11 +471,15 @@ do_read_JPEG_file(struct jpeg_decompress_struct *cinfo, char *filename)
|
|||||||
* if we asked for color quantization.
|
* if we asked for color quantization.
|
||||||
* In this example, we need to make an output work buffer of the right size.
|
* In this example, we need to make an output work buffer of the right size.
|
||||||
*/
|
*/
|
||||||
/* JSAMPLEs per row in output buffer */
|
/* Samples per row in output buffer */
|
||||||
row_stride = cinfo->output_width * cinfo->output_components;
|
row_stride = cinfo->output_width * cinfo->output_components;
|
||||||
/* Make a one-row-high sample array that will go away when done with image */
|
/* Make a one-row-high sample array that will go away when done with image */
|
||||||
buffer = (*cinfo->mem->alloc_sarray)
|
if (cinfo->data_precision == 12)
|
||||||
((j_common_ptr)cinfo, JPOOL_IMAGE, row_stride, 1);
|
buffer12 = (J12SAMPARRAY)(*cinfo->mem->alloc_sarray)
|
||||||
|
((j_common_ptr)cinfo, JPOOL_IMAGE, row_stride, 1);
|
||||||
|
else
|
||||||
|
buffer = (*cinfo->mem->alloc_sarray)
|
||||||
|
((j_common_ptr)cinfo, JPOOL_IMAGE, row_stride, 1);
|
||||||
|
|
||||||
/* Step 6: while (scan lines remain to be read) */
|
/* Step 6: while (scan lines remain to be read) */
|
||||||
/* jpeg_read_scanlines(...); */
|
/* jpeg_read_scanlines(...); */
|
||||||
@@ -400,14 +487,28 @@ do_read_JPEG_file(struct jpeg_decompress_struct *cinfo, char *filename)
|
|||||||
/* Here we use the library's state variable cinfo->output_scanline as the
|
/* Here we use the library's state variable cinfo->output_scanline as the
|
||||||
* loop counter, so that we don't have to keep track ourselves.
|
* loop counter, so that we don't have to keep track ourselves.
|
||||||
*/
|
*/
|
||||||
while (cinfo->output_scanline < cinfo->output_height) {
|
if (cinfo->data_precision == 12) {
|
||||||
/* jpeg_read_scanlines expects an array of pointers to scanlines.
|
while (cinfo->output_scanline < cinfo->output_height) {
|
||||||
* Here the array is only one element long, but you could ask for
|
/* jpeg12_read_scanlines expects an array of pointers to scanlines.
|
||||||
* more than one scanline at a time if that's more convenient.
|
* Here the array is only one element long, but you could ask for
|
||||||
*/
|
* more than one scanline at a time if that's more convenient.
|
||||||
(void)jpeg_read_scanlines(cinfo, buffer, 1);
|
*/
|
||||||
/* Assume put_scanline_someplace wants a pointer and sample count. */
|
(void)jpeg12_read_scanlines(cinfo, buffer12, 1);
|
||||||
put_scanline_someplace(buffer[0], row_stride);
|
/* Swap MSB and LSB in each sample */
|
||||||
|
for (col = 0; col < row_stride; col++)
|
||||||
|
buffer12[0][col] = ((buffer12[0][col] & 0xFF) << 8) |
|
||||||
|
((buffer12[0][col] >> 8) & 0xFF);
|
||||||
|
fwrite(buffer12[0], 1, row_stride * sizeof(J12SAMPLE), outfile);
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
while (cinfo->output_scanline < cinfo->output_height) {
|
||||||
|
/* jpeg_read_scanlines expects an array of pointers to scanlines.
|
||||||
|
* Here the array is only one element long, but you could ask for
|
||||||
|
* more than one scanline at a time if that's more convenient.
|
||||||
|
*/
|
||||||
|
(void)jpeg_read_scanlines(cinfo, buffer, 1);
|
||||||
|
fwrite(buffer[0], 1, row_stride, outfile);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Step 7: Finish decompression */
|
/* Step 7: Finish decompression */
|
||||||
@@ -422,12 +523,13 @@ do_read_JPEG_file(struct jpeg_decompress_struct *cinfo, char *filename)
|
|||||||
/* This is an important step since it will release a good deal of memory. */
|
/* This is an important step since it will release a good deal of memory. */
|
||||||
jpeg_destroy_decompress(cinfo);
|
jpeg_destroy_decompress(cinfo);
|
||||||
|
|
||||||
/* After finish_decompress, we can close the input file.
|
/* After finish_decompress, we can close the input and output files.
|
||||||
* Here we postpone it until after no more JPEG errors are possible,
|
* Here we postpone it until after no more JPEG errors are possible,
|
||||||
* so as to simplify the setjmp error logic above. (Actually, I don't
|
* so as to simplify the setjmp error logic above. (Actually, I don't
|
||||||
* think that jpeg_destroy can do an error exit, but why assume anything...)
|
* think that jpeg_destroy can do an error exit, but why assume anything...)
|
||||||
*/
|
*/
|
||||||
fclose(infile);
|
fclose(infile);
|
||||||
|
fclose(outfile);
|
||||||
|
|
||||||
/* At this point you may want to check to see whether any corrupt-data
|
/* At this point you may want to check to see whether any corrupt-data
|
||||||
* warnings occurred (test whether jerr.pub.num_warnings is nonzero).
|
* warnings occurred (test whether jerr.pub.num_warnings is nonzero).
|
||||||
@@ -462,3 +564,88 @@ do_read_JPEG_file(struct jpeg_decompress_struct *cinfo, char *filename)
|
|||||||
* On some systems you may need to set up a signal handler to ensure that
|
* On some systems you may need to set up a signal handler to ensure that
|
||||||
* temporary files are deleted if the program is interrupted. See libjpeg.txt.
|
* temporary files are deleted if the program is interrupted. See libjpeg.txt.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
LOCAL(void)
|
||||||
|
usage(const char *progname)
|
||||||
|
{
|
||||||
|
fprintf(stderr, "usage: %s compress [switches] outputfile[.jpg]\n",
|
||||||
|
progname);
|
||||||
|
fprintf(stderr, " %s decompress inputfile[.jpg] outputfile[.ppm]\n",
|
||||||
|
progname);
|
||||||
|
fprintf(stderr, "Switches (names may be abbreviated):\n");
|
||||||
|
fprintf(stderr, " -precision N Create JPEG file with N-bit data precision\n");
|
||||||
|
fprintf(stderr, " (N is 8 or 12; default is 8)\n");
|
||||||
|
fprintf(stderr, " -quality N Compression quality (0..100; 5-95 is most useful range,\n");
|
||||||
|
fprintf(stderr, " default is 75)\n");
|
||||||
|
|
||||||
|
exit(EXIT_FAILURE);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
typedef enum {
|
||||||
|
COMPRESS,
|
||||||
|
DECOMPRESS
|
||||||
|
} EXAMPLE_MODE;
|
||||||
|
|
||||||
|
|
||||||
|
int
|
||||||
|
main(int argc, char **argv)
|
||||||
|
{
|
||||||
|
int argn, quality = 75;
|
||||||
|
int data_precision = 8;
|
||||||
|
EXAMPLE_MODE mode = -1;
|
||||||
|
char *arg, *filename = NULL;
|
||||||
|
|
||||||
|
if (argc < 3)
|
||||||
|
usage(argv[0]);
|
||||||
|
|
||||||
|
if (!strcasecmp(argv[1], "compress"))
|
||||||
|
mode = COMPRESS;
|
||||||
|
else if (!strcasecmp(argv[1], "decompress"))
|
||||||
|
mode = DECOMPRESS;
|
||||||
|
else
|
||||||
|
usage(argv[0]);
|
||||||
|
|
||||||
|
for (argn = 2; argn < argc; argn++) {
|
||||||
|
arg = argv[argn];
|
||||||
|
if (*arg != '-') {
|
||||||
|
filename = arg;
|
||||||
|
/* Not a switch, must be a file name argument */
|
||||||
|
break; /* done parsing switches */
|
||||||
|
}
|
||||||
|
arg++; /* advance past switch marker character */
|
||||||
|
|
||||||
|
if (!strncasecmp(arg, "p", 1)) {
|
||||||
|
/* Set data precision. */
|
||||||
|
if (++argn >= argc) /* advance to next argument */
|
||||||
|
usage(argv[0]);
|
||||||
|
if (sscanf(argv[argn], "%d", &data_precision) < 1 ||
|
||||||
|
(data_precision != 8 && data_precision != 12))
|
||||||
|
usage(argv[0]);
|
||||||
|
} else if (!strncasecmp(arg, "q", 1)) {
|
||||||
|
/* Quality rating (quantization table scaling factor). */
|
||||||
|
if (++argn >= argc) /* advance to next argument */
|
||||||
|
usage(argv[0]);
|
||||||
|
if (sscanf(argv[argn], "%d", &quality) < 1 || quality < 0 ||
|
||||||
|
quality > 100)
|
||||||
|
usage(argv[0]);
|
||||||
|
if (quality < 1)
|
||||||
|
quality = 1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!filename)
|
||||||
|
usage(argv[0]);
|
||||||
|
|
||||||
|
if (mode == COMPRESS)
|
||||||
|
write_JPEG_file(filename, quality, data_precision);
|
||||||
|
else if (mode == DECOMPRESS) {
|
||||||
|
if (argc - argn < 2)
|
||||||
|
usage(argv[0]);
|
||||||
|
|
||||||
|
read_JPEG_file(argv[argn], argv[argn + 1]);
|
||||||
|
}
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
@@ -45,6 +45,14 @@ add_fuzz_target(compress compress.cc)
|
|||||||
|
|
||||||
add_fuzz_target(compress_yuv compress_yuv.cc)
|
add_fuzz_target(compress_yuv compress_yuv.cc)
|
||||||
|
|
||||||
|
add_fuzz_target(compress_lossless compress_lossless.cc)
|
||||||
|
|
||||||
|
add_fuzz_target(compress12 compress12.cc)
|
||||||
|
|
||||||
|
add_fuzz_target(compress12_lossless compress12.cc)
|
||||||
|
|
||||||
|
add_fuzz_target(compress16_lossless compress16_lossless.cc)
|
||||||
|
|
||||||
# NOTE: This target is named libjpeg_turbo_fuzzer instead of decompress_fuzzer
|
# NOTE: This target is named libjpeg_turbo_fuzzer instead of decompress_fuzzer
|
||||||
# in order to preserve the corpora from Google's OSS-Fuzz target for
|
# in order to preserve the corpora from Google's OSS-Fuzz target for
|
||||||
# libjpeg-turbo, which this target replaces.
|
# libjpeg-turbo, which this target replaces.
|
||||||
|
|||||||
@@ -20,6 +20,10 @@ make install
|
|||||||
cp $SRC/compress_fuzzer_seed_corpus.zip $OUT/cjpeg_fuzzer${FUZZER_SUFFIX}_seed_corpus.zip
|
cp $SRC/compress_fuzzer_seed_corpus.zip $OUT/cjpeg_fuzzer${FUZZER_SUFFIX}_seed_corpus.zip
|
||||||
cp $SRC/compress_fuzzer_seed_corpus.zip $OUT/compress_fuzzer${FUZZER_SUFFIX}_seed_corpus.zip
|
cp $SRC/compress_fuzzer_seed_corpus.zip $OUT/compress_fuzzer${FUZZER_SUFFIX}_seed_corpus.zip
|
||||||
cp $SRC/compress_fuzzer_seed_corpus.zip $OUT/compress_yuv_fuzzer${FUZZER_SUFFIX}_seed_corpus.zip
|
cp $SRC/compress_fuzzer_seed_corpus.zip $OUT/compress_yuv_fuzzer${FUZZER_SUFFIX}_seed_corpus.zip
|
||||||
|
cp $SRC/compress_fuzzer_seed_corpus.zip $OUT/compress_lossless_fuzzer${FUZZER_SUFFIX}_seed_corpus.zip
|
||||||
|
cp $SRC/compress_fuzzer_seed_corpus.zip $OUT/compress12_fuzzer${FUZZER_SUFFIX}_seed_corpus.zip
|
||||||
|
cp $SRC/compress_fuzzer_seed_corpus.zip $OUT/compress12_lossless_fuzzer${FUZZER_SUFFIX}_seed_corpus.zip
|
||||||
|
cp $SRC/compress_fuzzer_seed_corpus.zip $OUT/compress16_lossless_fuzzer${FUZZER_SUFFIX}_seed_corpus.zip
|
||||||
cp $SRC/decompress_fuzzer_seed_corpus.zip $OUT/libjpeg_turbo_fuzzer${FUZZER_SUFFIX}_seed_corpus.zip
|
cp $SRC/decompress_fuzzer_seed_corpus.zip $OUT/libjpeg_turbo_fuzzer${FUZZER_SUFFIX}_seed_corpus.zip
|
||||||
cp $SRC/decompress_fuzzer_seed_corpus.zip $OUT/decompress_yuv_fuzzer${FUZZER_SUFFIX}_seed_corpus.zip
|
cp $SRC/decompress_fuzzer_seed_corpus.zip $OUT/decompress_yuv_fuzzer${FUZZER_SUFFIX}_seed_corpus.zip
|
||||||
cp $SRC/decompress_fuzzer_seed_corpus.zip $OUT/transform_fuzzer${FUZZER_SUFFIX}_seed_corpus.zip
|
cp $SRC/decompress_fuzzer_seed_corpus.zip $OUT/transform_fuzzer${FUZZER_SUFFIX}_seed_corpus.zip
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright (C)2021 D. R. Commander. All Rights Reserved.
|
* Copyright (C)2021, 2023 D. R. Commander. All Rights Reserved.
|
||||||
*
|
*
|
||||||
* Redistribution and use in source and binary forms, with or without
|
* Redistribution and use in source and binary forms, with or without
|
||||||
* modification, are permitted provided that the following conditions are met:
|
* modification, are permitted provided that the following conditions are met:
|
||||||
@@ -35,8 +35,6 @@
|
|||||||
|
|
||||||
|
|
||||||
#define NUMTESTS 7
|
#define NUMTESTS 7
|
||||||
/* Private flag that triggers different TurboJPEG API behavior when fuzzing */
|
|
||||||
#define TJFLAG_FUZZING (1 << 30)
|
|
||||||
|
|
||||||
|
|
||||||
struct test {
|
struct test {
|
||||||
@@ -73,37 +71,40 @@ extern "C" int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size)
|
|||||||
if ((fd = mkstemp(filename)) < 0 || write(fd, data, size) < 0)
|
if ((fd = mkstemp(filename)) < 0 || write(fd, data, size) < 0)
|
||||||
goto bailout;
|
goto bailout;
|
||||||
|
|
||||||
if ((handle = tjInitCompress()) == NULL)
|
if ((handle = tj3Init(TJINIT_COMPRESS)) == NULL)
|
||||||
goto bailout;
|
goto bailout;
|
||||||
|
|
||||||
for (ti = 0; ti < NUMTESTS; ti++) {
|
for (ti = 0; ti < NUMTESTS; ti++) {
|
||||||
int flags = TJFLAG_FUZZING, sum = 0, pf = tests[ti].pf;
|
int sum = 0, pf = tests[ti].pf;
|
||||||
unsigned long dstSize = 0, maxBufSize;
|
size_t dstSize = 0, maxBufSize;
|
||||||
|
|
||||||
/* Test non-default compression options on specific iterations. */
|
/* Test non-default compression options on specific iterations. */
|
||||||
if (ti == 0)
|
tj3Set(handle, TJPARAM_BOTTOMUP, ti == 0);
|
||||||
flags |= TJFLAG_BOTTOMUP | TJFLAG_ACCURATEDCT;
|
tj3Set(handle, TJPARAM_FASTDCT, ti == 1);
|
||||||
else if (ti == 1)
|
tj3Set(handle, TJPARAM_OPTIMIZE, ti == 6);
|
||||||
flags |= TJFLAG_PROGRESSIVE;
|
tj3Set(handle, TJPARAM_PROGRESSIVE, ti == 1 || ti == 3);
|
||||||
if (ti != 2)
|
tj3Set(handle, TJPARAM_ARITHMETIC, ti == 2 || ti == 3);
|
||||||
flags |= TJFLAG_NOREALLOC;
|
tj3Set(handle, TJPARAM_NOREALLOC, ti != 2);
|
||||||
|
tj3Set(handle, TJPARAM_RESTARTROWS, ti == 1 || ti == 2 ? 2 : 0);
|
||||||
|
|
||||||
/* tjLoadImage() refuses to load images larger than 1 Megapixel when
|
tj3Set(handle, TJPARAM_MAXPIXELS, 1048576);
|
||||||
FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION is defined (yes, that's a dirty
|
/* tj3LoadImage8() will refuse to load images larger than 1 Megapixel, so
|
||||||
hack), so we don't need to check the width and height here. */
|
we don't need to check the width and height here. */
|
||||||
if ((srcBuf = tjLoadImage(filename, &width, 1, &height, &pf,
|
if ((srcBuf = tj3LoadImage8(handle, filename, &width, 1, &height,
|
||||||
flags)) == NULL)
|
&pf)) == NULL)
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
maxBufSize = tjBufSize(width, height, tests[ti].subsamp);
|
maxBufSize = tj3JPEGBufSize(width, height, tests[ti].subsamp);
|
||||||
if (flags & TJFLAG_NOREALLOC) {
|
if (tj3Get(handle, TJPARAM_NOREALLOC)) {
|
||||||
if ((dstBuf = (unsigned char *)malloc(maxBufSize)) == NULL)
|
if ((dstBuf = (unsigned char *)malloc(maxBufSize)) == NULL)
|
||||||
goto bailout;
|
goto bailout;
|
||||||
} else
|
} else
|
||||||
dstBuf = NULL;
|
dstBuf = NULL;
|
||||||
|
|
||||||
if (tjCompress2(handle, srcBuf, width, 0, height, pf, &dstBuf, &dstSize,
|
tj3Set(handle, TJPARAM_SUBSAMP, tests[ti].subsamp);
|
||||||
tests[ti].subsamp, tests[ti].quality, flags) == 0) {
|
tj3Set(handle, TJPARAM_QUALITY, tests[ti].quality);
|
||||||
|
if (tj3Compress8(handle, srcBuf, width, 0, height, pf, &dstBuf,
|
||||||
|
&dstSize) == 0) {
|
||||||
/* Touch all of the output pixels in order to catch uninitialized reads
|
/* Touch all of the output pixels in order to catch uninitialized reads
|
||||||
when using MemorySanitizer. */
|
when using MemorySanitizer. */
|
||||||
for (i = 0; i < dstSize; i++)
|
for (i = 0; i < dstSize; i++)
|
||||||
@@ -112,7 +113,7 @@ extern "C" int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size)
|
|||||||
|
|
||||||
free(dstBuf);
|
free(dstBuf);
|
||||||
dstBuf = NULL;
|
dstBuf = NULL;
|
||||||
tjFree(srcBuf);
|
tj3Free(srcBuf);
|
||||||
srcBuf = NULL;
|
srcBuf = NULL;
|
||||||
|
|
||||||
/* Prevent the code above from being optimized out. This test should never
|
/* Prevent the code above from being optimized out. This test should never
|
||||||
@@ -123,11 +124,11 @@ extern "C" int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size)
|
|||||||
|
|
||||||
bailout:
|
bailout:
|
||||||
free(dstBuf);
|
free(dstBuf);
|
||||||
tjFree(srcBuf);
|
tj3Free(srcBuf);
|
||||||
if (fd >= 0) {
|
if (fd >= 0) {
|
||||||
close(fd);
|
close(fd);
|
||||||
if (strlen(filename) > 0) unlink(filename);
|
if (strlen(filename) > 0) unlink(filename);
|
||||||
}
|
}
|
||||||
if (handle) tjDestroy(handle);
|
tj3Destroy(handle);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|||||||
134
fuzz/compress12.cc
Normal file
134
fuzz/compress12.cc
Normal file
@@ -0,0 +1,134 @@
|
|||||||
|
/*
|
||||||
|
* Copyright (C)2021, 2023 D. R. Commander. All Rights Reserved.
|
||||||
|
*
|
||||||
|
* Redistribution and use in source and binary forms, with or without
|
||||||
|
* modification, are permitted provided that the following conditions are met:
|
||||||
|
*
|
||||||
|
* - Redistributions of source code must retain the above copyright notice,
|
||||||
|
* this list of conditions and the following disclaimer.
|
||||||
|
* - Redistributions in binary form must reproduce the above copyright notice,
|
||||||
|
* this list of conditions and the following disclaimer in the documentation
|
||||||
|
* and/or other materials provided with the distribution.
|
||||||
|
* - Neither the name of the libjpeg-turbo Project nor the names of its
|
||||||
|
* contributors may be used to endorse or promote products derived from this
|
||||||
|
* software without specific prior written permission.
|
||||||
|
*
|
||||||
|
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS",
|
||||||
|
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||||
|
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||||
|
* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDERS OR CONTRIBUTORS BE
|
||||||
|
* LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
||||||
|
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
||||||
|
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
||||||
|
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
||||||
|
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
||||||
|
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
||||||
|
* POSSIBILITY OF SUCH DAMAGE.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include <turbojpeg.h>
|
||||||
|
#include <stdio.h>
|
||||||
|
#include <stdlib.h>
|
||||||
|
#include <stdint.h>
|
||||||
|
#include <string.h>
|
||||||
|
#include <unistd.h>
|
||||||
|
|
||||||
|
|
||||||
|
#define NUMTESTS 7
|
||||||
|
|
||||||
|
|
||||||
|
struct test {
|
||||||
|
enum TJPF pf;
|
||||||
|
enum TJSAMP subsamp;
|
||||||
|
int quality;
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
extern "C" int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size)
|
||||||
|
{
|
||||||
|
tjhandle handle = NULL;
|
||||||
|
short *srcBuf = NULL;
|
||||||
|
unsigned char *dstBuf = NULL;
|
||||||
|
int width = 0, height = 0, fd = -1, i, ti;
|
||||||
|
char filename[FILENAME_MAX] = { 0 };
|
||||||
|
struct test tests[NUMTESTS] = {
|
||||||
|
{ TJPF_RGB, TJSAMP_444, 100 },
|
||||||
|
{ TJPF_BGR, TJSAMP_422, 90 },
|
||||||
|
{ TJPF_RGBX, TJSAMP_420, 80 },
|
||||||
|
{ TJPF_BGRA, TJSAMP_411, 70 },
|
||||||
|
{ TJPF_XRGB, TJSAMP_GRAY, 60 },
|
||||||
|
{ TJPF_GRAY, TJSAMP_GRAY, 50 },
|
||||||
|
{ TJPF_CMYK, TJSAMP_440, 40 }
|
||||||
|
};
|
||||||
|
#if defined(__has_feature) && __has_feature(memory_sanitizer)
|
||||||
|
char env[18] = "JSIMD_FORCENONE=1";
|
||||||
|
|
||||||
|
/* The libjpeg-turbo SIMD extensions produce false positives with
|
||||||
|
MemorySanitizer. */
|
||||||
|
putenv(env);
|
||||||
|
#endif
|
||||||
|
|
||||||
|
snprintf(filename, FILENAME_MAX, "/tmp/libjpeg-turbo_compress12_fuzz.XXXXXX");
|
||||||
|
if ((fd = mkstemp(filename)) < 0 || write(fd, data, size) < 0)
|
||||||
|
goto bailout;
|
||||||
|
|
||||||
|
if ((handle = tj3Init(TJINIT_COMPRESS)) == NULL)
|
||||||
|
goto bailout;
|
||||||
|
|
||||||
|
for (ti = 0; ti < NUMTESTS; ti++) {
|
||||||
|
int sum = 0, pf = tests[ti].pf;
|
||||||
|
size_t dstSize = 0, maxBufSize;
|
||||||
|
|
||||||
|
/* Test non-default compression options on specific iterations. */
|
||||||
|
tj3Set(handle, TJPARAM_BOTTOMUP, ti == 0);
|
||||||
|
tj3Set(handle, TJPARAM_FASTDCT, ti == 0);
|
||||||
|
tj3Set(handle, TJPARAM_PROGRESSIVE, ti == 1 || ti == 3);
|
||||||
|
tj3Set(handle, TJPARAM_ARITHMETIC, ti == 2 || ti == 3);
|
||||||
|
tj3Set(handle, TJPARAM_NOREALLOC, ti != 2);
|
||||||
|
tj3Set(handle, TJPARAM_RESTARTROWS, ti == 1 || ti == 2 ? 2 : 0);
|
||||||
|
|
||||||
|
tj3Set(handle, TJPARAM_MAXPIXELS, 1048576);
|
||||||
|
/* tj3LoadImage12() will refuse to load images larger than 1 Megapixel, so
|
||||||
|
we don't need to check the width and height here. */
|
||||||
|
if ((srcBuf = tj3LoadImage12(handle, filename, &width, 1, &height,
|
||||||
|
&pf)) == NULL)
|
||||||
|
continue;
|
||||||
|
|
||||||
|
maxBufSize = tj3JPEGBufSize(width, height, tests[ti].subsamp);
|
||||||
|
if (tj3Get(handle, TJPARAM_NOREALLOC)) {
|
||||||
|
if ((dstBuf = (unsigned char *)malloc(maxBufSize)) == NULL)
|
||||||
|
goto bailout;
|
||||||
|
} else
|
||||||
|
dstBuf = NULL;
|
||||||
|
|
||||||
|
tj3Set(handle, TJPARAM_SUBSAMP, tests[ti].subsamp);
|
||||||
|
tj3Set(handle, TJPARAM_QUALITY, tests[ti].quality);
|
||||||
|
if (tj3Compress12(handle, srcBuf, width, 0, height, pf, &dstBuf,
|
||||||
|
&dstSize) == 0) {
|
||||||
|
/* Touch all of the output pixels in order to catch uninitialized reads
|
||||||
|
when using MemorySanitizer. */
|
||||||
|
for (i = 0; i < dstSize; i++)
|
||||||
|
sum += dstBuf[i];
|
||||||
|
}
|
||||||
|
|
||||||
|
free(dstBuf);
|
||||||
|
dstBuf = NULL;
|
||||||
|
tj3Free(srcBuf);
|
||||||
|
srcBuf = NULL;
|
||||||
|
|
||||||
|
/* Prevent the code above from being optimized out. This test should never
|
||||||
|
be true, but the compiler doesn't know that. */
|
||||||
|
if (sum > 255 * maxBufSize)
|
||||||
|
goto bailout;
|
||||||
|
}
|
||||||
|
|
||||||
|
bailout:
|
||||||
|
free(dstBuf);
|
||||||
|
tj3Free(srcBuf);
|
||||||
|
if (fd >= 0) {
|
||||||
|
close(fd);
|
||||||
|
if (strlen(filename) > 0) unlink(filename);
|
||||||
|
}
|
||||||
|
tj3Destroy(handle);
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
131
fuzz/compress12_lossless.cc
Normal file
131
fuzz/compress12_lossless.cc
Normal file
@@ -0,0 +1,131 @@
|
|||||||
|
/*
|
||||||
|
* Copyright (C)2021-2023 D. R. Commander. All Rights Reserved.
|
||||||
|
*
|
||||||
|
* Redistribution and use in source and binary forms, with or without
|
||||||
|
* modification, are permitted provided that the following conditions are met:
|
||||||
|
*
|
||||||
|
* - Redistributions of source code must retain the above copyright notice,
|
||||||
|
* this list of conditions and the following disclaimer.
|
||||||
|
* - Redistributions in binary form must reproduce the above copyright notice,
|
||||||
|
* this list of conditions and the following disclaimer in the documentation
|
||||||
|
* and/or other materials provided with the distribution.
|
||||||
|
* - Neither the name of the libjpeg-turbo Project nor the names of its
|
||||||
|
* contributors may be used to endorse or promote products derived from this
|
||||||
|
* software without specific prior written permission.
|
||||||
|
*
|
||||||
|
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS",
|
||||||
|
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||||
|
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||||
|
* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDERS OR CONTRIBUTORS BE
|
||||||
|
* LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
||||||
|
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
||||||
|
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
||||||
|
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
||||||
|
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
||||||
|
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
||||||
|
* POSSIBILITY OF SUCH DAMAGE.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include <turbojpeg.h>
|
||||||
|
#include <stdio.h>
|
||||||
|
#include <stdlib.h>
|
||||||
|
#include <stdint.h>
|
||||||
|
#include <string.h>
|
||||||
|
#include <unistd.h>
|
||||||
|
|
||||||
|
|
||||||
|
#define NUMTESTS 7
|
||||||
|
|
||||||
|
|
||||||
|
struct test {
|
||||||
|
enum TJPF pf;
|
||||||
|
int psv, pt;
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
extern "C" int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size)
|
||||||
|
{
|
||||||
|
tjhandle handle = NULL;
|
||||||
|
short *srcBuf = NULL;
|
||||||
|
unsigned char *dstBuf = NULL;
|
||||||
|
int width = 0, height = 0, fd = -1, i, ti;
|
||||||
|
char filename[FILENAME_MAX] = { 0 };
|
||||||
|
struct test tests[NUMTESTS] = {
|
||||||
|
{ TJPF_RGB, 1, 0 },
|
||||||
|
{ TJPF_BGR, 2, 2 },
|
||||||
|
{ TJPF_RGBX, 3, 4 },
|
||||||
|
{ TJPF_BGRA, 4, 7 },
|
||||||
|
{ TJPF_XRGB, 5, 5 },
|
||||||
|
{ TJPF_GRAY, 6, 3 },
|
||||||
|
{ TJPF_CMYK, 7, 0 }
|
||||||
|
};
|
||||||
|
#if defined(__has_feature) && __has_feature(memory_sanitizer)
|
||||||
|
char env[18] = "JSIMD_FORCENONE=1";
|
||||||
|
|
||||||
|
/* The libjpeg-turbo SIMD extensions produce false positives with
|
||||||
|
MemorySanitizer. */
|
||||||
|
putenv(env);
|
||||||
|
#endif
|
||||||
|
|
||||||
|
snprintf(filename, FILENAME_MAX, "/tmp/libjpeg-turbo_compress_fuzz.XXXXXX");
|
||||||
|
if ((fd = mkstemp(filename)) < 0 || write(fd, data, size) < 0)
|
||||||
|
goto bailout;
|
||||||
|
|
||||||
|
if ((handle = tj3Init(TJINIT_COMPRESS)) == NULL)
|
||||||
|
goto bailout;
|
||||||
|
|
||||||
|
for (ti = 0; ti < NUMTESTS; ti++) {
|
||||||
|
int sum = 0, pf = tests[ti].pf;
|
||||||
|
size_t dstSize = 0, maxBufSize;
|
||||||
|
|
||||||
|
/* Test non-default compression options on specific iterations. */
|
||||||
|
tj3Set(handle, TJPARAM_BOTTOMUP, ti == 0);
|
||||||
|
tj3Set(handle, TJPARAM_NOREALLOC, ti != 2);
|
||||||
|
tj3Set(handle, TJPARAM_RESTARTROWS, ti == 0 || ti == 6 ? 1 : 0);
|
||||||
|
|
||||||
|
tj3Set(handle, TJPARAM_MAXPIXELS, 1048576);
|
||||||
|
/* tj3LoadImage12() will refuse to load images larger than 1 Megapixel, so
|
||||||
|
we don't need to check the width and height here. */
|
||||||
|
if ((srcBuf = tj3LoadImage12(handle, filename, &width, 1, &height,
|
||||||
|
&pf)) == NULL)
|
||||||
|
continue;
|
||||||
|
|
||||||
|
maxBufSize = tj3JPEGBufSize(width, height, TJSAMP_444);
|
||||||
|
if (tj3Get(handle, TJPARAM_NOREALLOC)) {
|
||||||
|
if ((dstBuf = (unsigned char *)malloc(maxBufSize)) == NULL)
|
||||||
|
goto bailout;
|
||||||
|
} else
|
||||||
|
dstBuf = NULL;
|
||||||
|
|
||||||
|
tj3Set(handle, TJPARAM_LOSSLESS, 1);
|
||||||
|
tj3Set(handle, TJPARAM_LOSSLESSPSV, tests[ti].psv);
|
||||||
|
tj3Set(handle, TJPARAM_LOSSLESSPT, tests[ti].pt);
|
||||||
|
if (tj3Compress12(handle, srcBuf, width, 0, height, pf, &dstBuf,
|
||||||
|
&dstSize) == 0) {
|
||||||
|
/* Touch all of the output pixels in order to catch uninitialized reads
|
||||||
|
when using MemorySanitizer. */
|
||||||
|
for (i = 0; i < dstSize; i++)
|
||||||
|
sum += dstBuf[i];
|
||||||
|
}
|
||||||
|
|
||||||
|
free(dstBuf);
|
||||||
|
dstBuf = NULL;
|
||||||
|
tj3Free(srcBuf);
|
||||||
|
srcBuf = NULL;
|
||||||
|
|
||||||
|
/* Prevent the code above from being optimized out. This test should never
|
||||||
|
be true, but the compiler doesn't know that. */
|
||||||
|
if (sum > 255 * maxBufSize)
|
||||||
|
goto bailout;
|
||||||
|
}
|
||||||
|
|
||||||
|
bailout:
|
||||||
|
free(dstBuf);
|
||||||
|
tj3Free(srcBuf);
|
||||||
|
if (fd >= 0) {
|
||||||
|
close(fd);
|
||||||
|
if (strlen(filename) > 0) unlink(filename);
|
||||||
|
}
|
||||||
|
tj3Destroy(handle);
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
131
fuzz/compress16_lossless.cc
Normal file
131
fuzz/compress16_lossless.cc
Normal file
@@ -0,0 +1,131 @@
|
|||||||
|
/*
|
||||||
|
* Copyright (C)2021-2023 D. R. Commander. All Rights Reserved.
|
||||||
|
*
|
||||||
|
* Redistribution and use in source and binary forms, with or without
|
||||||
|
* modification, are permitted provided that the following conditions are met:
|
||||||
|
*
|
||||||
|
* - Redistributions of source code must retain the above copyright notice,
|
||||||
|
* this list of conditions and the following disclaimer.
|
||||||
|
* - Redistributions in binary form must reproduce the above copyright notice,
|
||||||
|
* this list of conditions and the following disclaimer in the documentation
|
||||||
|
* and/or other materials provided with the distribution.
|
||||||
|
* - Neither the name of the libjpeg-turbo Project nor the names of its
|
||||||
|
* contributors may be used to endorse or promote products derived from this
|
||||||
|
* software without specific prior written permission.
|
||||||
|
*
|
||||||
|
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS",
|
||||||
|
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||||
|
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||||
|
* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDERS OR CONTRIBUTORS BE
|
||||||
|
* LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
||||||
|
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
||||||
|
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
||||||
|
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
||||||
|
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
||||||
|
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
||||||
|
* POSSIBILITY OF SUCH DAMAGE.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include <turbojpeg.h>
|
||||||
|
#include <stdio.h>
|
||||||
|
#include <stdlib.h>
|
||||||
|
#include <stdint.h>
|
||||||
|
#include <string.h>
|
||||||
|
#include <unistd.h>
|
||||||
|
|
||||||
|
|
||||||
|
#define NUMTESTS 7
|
||||||
|
|
||||||
|
|
||||||
|
struct test {
|
||||||
|
enum TJPF pf;
|
||||||
|
int psv, pt;
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
extern "C" int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size)
|
||||||
|
{
|
||||||
|
tjhandle handle = NULL;
|
||||||
|
unsigned short *srcBuf = NULL;
|
||||||
|
unsigned char *dstBuf = NULL;
|
||||||
|
int width = 0, height = 0, fd = -1, i, ti;
|
||||||
|
char filename[FILENAME_MAX] = { 0 };
|
||||||
|
struct test tests[NUMTESTS] = {
|
||||||
|
{ TJPF_RGB, 1, 0 },
|
||||||
|
{ TJPF_BGR, 2, 2 },
|
||||||
|
{ TJPF_RGBX, 3, 4 },
|
||||||
|
{ TJPF_BGRA, 4, 7 },
|
||||||
|
{ TJPF_XRGB, 5, 5 },
|
||||||
|
{ TJPF_GRAY, 6, 3 },
|
||||||
|
{ TJPF_CMYK, 7, 0 }
|
||||||
|
};
|
||||||
|
#if defined(__has_feature) && __has_feature(memory_sanitizer)
|
||||||
|
char env[18] = "JSIMD_FORCENONE=1";
|
||||||
|
|
||||||
|
/* The libjpeg-turbo SIMD extensions produce false positives with
|
||||||
|
MemorySanitizer. */
|
||||||
|
putenv(env);
|
||||||
|
#endif
|
||||||
|
|
||||||
|
snprintf(filename, FILENAME_MAX, "/tmp/libjpeg-turbo_compress_fuzz.XXXXXX");
|
||||||
|
if ((fd = mkstemp(filename)) < 0 || write(fd, data, size) < 0)
|
||||||
|
goto bailout;
|
||||||
|
|
||||||
|
if ((handle = tj3Init(TJINIT_COMPRESS)) == NULL)
|
||||||
|
goto bailout;
|
||||||
|
|
||||||
|
for (ti = 0; ti < NUMTESTS; ti++) {
|
||||||
|
int sum = 0, pf = tests[ti].pf;
|
||||||
|
size_t dstSize = 0, maxBufSize;
|
||||||
|
|
||||||
|
/* Test non-default compression options on specific iterations. */
|
||||||
|
tj3Set(handle, TJPARAM_BOTTOMUP, ti == 0);
|
||||||
|
tj3Set(handle, TJPARAM_NOREALLOC, ti != 2);
|
||||||
|
tj3Set(handle, TJPARAM_RESTARTROWS, ti == 0 || ti == 6 ? 1 : 0);
|
||||||
|
|
||||||
|
tj3Set(handle, TJPARAM_MAXPIXELS, 1048576);
|
||||||
|
/* tj3LoadImage16() will refuse to load images larger than 1 Megapixel, so
|
||||||
|
we don't need to check the width and height here. */
|
||||||
|
if ((srcBuf = tj3LoadImage16(handle, filename, &width, 1, &height,
|
||||||
|
&pf)) == NULL)
|
||||||
|
continue;
|
||||||
|
|
||||||
|
maxBufSize = tj3JPEGBufSize(width, height, TJSAMP_444);
|
||||||
|
if (tj3Get(handle, TJPARAM_NOREALLOC)) {
|
||||||
|
if ((dstBuf = (unsigned char *)malloc(maxBufSize)) == NULL)
|
||||||
|
goto bailout;
|
||||||
|
} else
|
||||||
|
dstBuf = NULL;
|
||||||
|
|
||||||
|
tj3Set(handle, TJPARAM_LOSSLESS, 1);
|
||||||
|
tj3Set(handle, TJPARAM_LOSSLESSPSV, tests[ti].psv);
|
||||||
|
tj3Set(handle, TJPARAM_LOSSLESSPT, tests[ti].pt);
|
||||||
|
if (tj3Compress16(handle, srcBuf, width, 0, height, pf, &dstBuf,
|
||||||
|
&dstSize) == 0) {
|
||||||
|
/* Touch all of the output pixels in order to catch uninitialized reads
|
||||||
|
when using MemorySanitizer. */
|
||||||
|
for (i = 0; i < dstSize; i++)
|
||||||
|
sum += dstBuf[i];
|
||||||
|
}
|
||||||
|
|
||||||
|
free(dstBuf);
|
||||||
|
dstBuf = NULL;
|
||||||
|
tj3Free(srcBuf);
|
||||||
|
srcBuf = NULL;
|
||||||
|
|
||||||
|
/* Prevent the code above from being optimized out. This test should never
|
||||||
|
be true, but the compiler doesn't know that. */
|
||||||
|
if (sum > 255 * maxBufSize)
|
||||||
|
goto bailout;
|
||||||
|
}
|
||||||
|
|
||||||
|
bailout:
|
||||||
|
free(dstBuf);
|
||||||
|
tj3Free(srcBuf);
|
||||||
|
if (fd >= 0) {
|
||||||
|
close(fd);
|
||||||
|
if (strlen(filename) > 0) unlink(filename);
|
||||||
|
}
|
||||||
|
tj3Destroy(handle);
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
130
fuzz/compress_lossless.cc
Normal file
130
fuzz/compress_lossless.cc
Normal file
@@ -0,0 +1,130 @@
|
|||||||
|
/*
|
||||||
|
* Copyright (C)2021-2023 D. R. Commander. All Rights Reserved.
|
||||||
|
*
|
||||||
|
* Redistribution and use in source and binary forms, with or without
|
||||||
|
* modification, are permitted provided that the following conditions are met:
|
||||||
|
*
|
||||||
|
* - Redistributions of source code must retain the above copyright notice,
|
||||||
|
* this list of conditions and the following disclaimer.
|
||||||
|
* - Redistributions in binary form must reproduce the above copyright notice,
|
||||||
|
* this list of conditions and the following disclaimer in the documentation
|
||||||
|
* and/or other materials provided with the distribution.
|
||||||
|
* - Neither the name of the libjpeg-turbo Project nor the names of its
|
||||||
|
* contributors may be used to endorse or promote products derived from this
|
||||||
|
* software without specific prior written permission.
|
||||||
|
*
|
||||||
|
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS",
|
||||||
|
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||||
|
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||||
|
* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDERS OR CONTRIBUTORS BE
|
||||||
|
* LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
||||||
|
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
||||||
|
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
||||||
|
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
||||||
|
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
||||||
|
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
||||||
|
* POSSIBILITY OF SUCH DAMAGE.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include <turbojpeg.h>
|
||||||
|
#include <stdio.h>
|
||||||
|
#include <stdlib.h>
|
||||||
|
#include <stdint.h>
|
||||||
|
#include <string.h>
|
||||||
|
#include <unistd.h>
|
||||||
|
|
||||||
|
|
||||||
|
#define NUMTESTS 7
|
||||||
|
|
||||||
|
|
||||||
|
struct test {
|
||||||
|
enum TJPF pf;
|
||||||
|
int psv, pt;
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
extern "C" int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size)
|
||||||
|
{
|
||||||
|
tjhandle handle = NULL;
|
||||||
|
unsigned char *srcBuf = NULL, *dstBuf = NULL;
|
||||||
|
int width = 0, height = 0, fd = -1, i, ti;
|
||||||
|
char filename[FILENAME_MAX] = { 0 };
|
||||||
|
struct test tests[NUMTESTS] = {
|
||||||
|
{ TJPF_RGB, 1, 0 },
|
||||||
|
{ TJPF_BGR, 2, 2 },
|
||||||
|
{ TJPF_RGBX, 3, 4 },
|
||||||
|
{ TJPF_BGRA, 4, 7 },
|
||||||
|
{ TJPF_XRGB, 5, 5 },
|
||||||
|
{ TJPF_GRAY, 6, 3 },
|
||||||
|
{ TJPF_CMYK, 7, 0 }
|
||||||
|
};
|
||||||
|
#if defined(__has_feature) && __has_feature(memory_sanitizer)
|
||||||
|
char env[18] = "JSIMD_FORCENONE=1";
|
||||||
|
|
||||||
|
/* The libjpeg-turbo SIMD extensions produce false positives with
|
||||||
|
MemorySanitizer. */
|
||||||
|
putenv(env);
|
||||||
|
#endif
|
||||||
|
|
||||||
|
snprintf(filename, FILENAME_MAX, "/tmp/libjpeg-turbo_compress_fuzz.XXXXXX");
|
||||||
|
if ((fd = mkstemp(filename)) < 0 || write(fd, data, size) < 0)
|
||||||
|
goto bailout;
|
||||||
|
|
||||||
|
if ((handle = tj3Init(TJINIT_COMPRESS)) == NULL)
|
||||||
|
goto bailout;
|
||||||
|
|
||||||
|
for (ti = 0; ti < NUMTESTS; ti++) {
|
||||||
|
int sum = 0, pf = tests[ti].pf;
|
||||||
|
size_t dstSize = 0, maxBufSize;
|
||||||
|
|
||||||
|
/* Test non-default compression options on specific iterations. */
|
||||||
|
tj3Set(handle, TJPARAM_BOTTOMUP, ti == 0);
|
||||||
|
tj3Set(handle, TJPARAM_NOREALLOC, ti != 2);
|
||||||
|
tj3Set(handle, TJPARAM_RESTARTROWS, ti == 0 || ti == 6 ? 1 : 0);
|
||||||
|
|
||||||
|
tj3Set(handle, TJPARAM_MAXPIXELS, 1048576);
|
||||||
|
/* tj3LoadImage8() will refuse to load images larger than 1 Megapixel, so
|
||||||
|
we don't need to check the width and height here. */
|
||||||
|
if ((srcBuf = tj3LoadImage8(handle, filename, &width, 1, &height,
|
||||||
|
&pf)) == NULL)
|
||||||
|
continue;
|
||||||
|
|
||||||
|
maxBufSize = tj3JPEGBufSize(width, height, TJSAMP_444);
|
||||||
|
if (tj3Get(handle, TJPARAM_NOREALLOC)) {
|
||||||
|
if ((dstBuf = (unsigned char *)malloc(maxBufSize)) == NULL)
|
||||||
|
goto bailout;
|
||||||
|
} else
|
||||||
|
dstBuf = NULL;
|
||||||
|
|
||||||
|
tj3Set(handle, TJPARAM_LOSSLESS, 1);
|
||||||
|
tj3Set(handle, TJPARAM_LOSSLESSPSV, tests[ti].psv);
|
||||||
|
tj3Set(handle, TJPARAM_LOSSLESSPT, tests[ti].pt);
|
||||||
|
if (tj3Compress8(handle, srcBuf, width, 0, height, pf, &dstBuf,
|
||||||
|
&dstSize) == 0) {
|
||||||
|
/* Touch all of the output pixels in order to catch uninitialized reads
|
||||||
|
when using MemorySanitizer. */
|
||||||
|
for (i = 0; i < dstSize; i++)
|
||||||
|
sum += dstBuf[i];
|
||||||
|
}
|
||||||
|
|
||||||
|
free(dstBuf);
|
||||||
|
dstBuf = NULL;
|
||||||
|
tj3Free(srcBuf);
|
||||||
|
srcBuf = NULL;
|
||||||
|
|
||||||
|
/* Prevent the code above from being optimized out. This test should never
|
||||||
|
be true, but the compiler doesn't know that. */
|
||||||
|
if (sum > 255 * maxBufSize)
|
||||||
|
goto bailout;
|
||||||
|
}
|
||||||
|
|
||||||
|
bailout:
|
||||||
|
free(dstBuf);
|
||||||
|
tj3Free(srcBuf);
|
||||||
|
if (fd >= 0) {
|
||||||
|
close(fd);
|
||||||
|
if (strlen(filename) > 0) unlink(filename);
|
||||||
|
}
|
||||||
|
tj3Destroy(handle);
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
@@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright (C)2021 D. R. Commander. All Rights Reserved.
|
* Copyright (C)2021-2023 D. R. Commander. All Rights Reserved.
|
||||||
*
|
*
|
||||||
* Redistribution and use in source and binary forms, with or without
|
* Redistribution and use in source and binary forms, with or without
|
||||||
* modification, are permitted provided that the following conditions are met:
|
* modification, are permitted provided that the following conditions are met:
|
||||||
@@ -35,8 +35,6 @@
|
|||||||
|
|
||||||
|
|
||||||
#define NUMTESTS 6
|
#define NUMTESTS 6
|
||||||
/* Private flag that triggers different TurboJPEG API behavior when fuzzing */
|
|
||||||
#define TJFLAG_FUZZING (1 << 30)
|
|
||||||
|
|
||||||
|
|
||||||
struct test {
|
struct test {
|
||||||
@@ -60,62 +58,54 @@ extern "C" int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size)
|
|||||||
{ TJPF_BGR, TJSAMP_GRAY, 60 },
|
{ TJPF_BGR, TJSAMP_GRAY, 60 },
|
||||||
{ TJPF_GRAY, TJSAMP_GRAY, 50 }
|
{ TJPF_GRAY, TJSAMP_GRAY, 50 }
|
||||||
};
|
};
|
||||||
char arithEnv[16] = "TJ_ARITHMETIC=0";
|
|
||||||
char restartEnv[13] = "TJ_RESTART=0";
|
|
||||||
#if defined(__has_feature) && __has_feature(memory_sanitizer)
|
#if defined(__has_feature) && __has_feature(memory_sanitizer)
|
||||||
char simdEnv[18] = "JSIMD_FORCENONE=1";
|
char env[18] = "JSIMD_FORCENONE=1";
|
||||||
|
|
||||||
/* The libjpeg-turbo SIMD extensions produce false positives with
|
/* The libjpeg-turbo SIMD extensions produce false positives with
|
||||||
MemorySanitizer. */
|
MemorySanitizer. */
|
||||||
putenv(simdEnv);
|
putenv(env);
|
||||||
#endif
|
#endif
|
||||||
putenv(arithEnv);
|
|
||||||
putenv(restartEnv);
|
|
||||||
|
|
||||||
snprintf(filename, FILENAME_MAX, "/tmp/libjpeg-turbo_compress_yuv_fuzz.XXXXXX");
|
snprintf(filename, FILENAME_MAX, "/tmp/libjpeg-turbo_compress_yuv_fuzz.XXXXXX");
|
||||||
if ((fd = mkstemp(filename)) < 0 || write(fd, data, size) < 0)
|
if ((fd = mkstemp(filename)) < 0 || write(fd, data, size) < 0)
|
||||||
goto bailout;
|
goto bailout;
|
||||||
|
|
||||||
if ((handle = tjInitCompress()) == NULL)
|
if ((handle = tj3Init(TJINIT_COMPRESS)) == NULL)
|
||||||
goto bailout;
|
goto bailout;
|
||||||
|
|
||||||
for (ti = 0; ti < NUMTESTS; ti++) {
|
for (ti = 0; ti < NUMTESTS; ti++) {
|
||||||
int flags = TJFLAG_FUZZING | TJFLAG_NOREALLOC, sum = 0, pf = tests[ti].pf;
|
int sum = 0, pf = tests[ti].pf;
|
||||||
unsigned long dstSize = 0, maxBufSize;
|
size_t dstSize = 0, maxBufSize;
|
||||||
|
|
||||||
/* Test non-default compression options on specific iterations. */
|
/* Test non-default compression options on specific iterations. */
|
||||||
if (ti == 0)
|
tj3Set(handle, TJPARAM_BOTTOMUP, ti == 0);
|
||||||
flags |= TJFLAG_BOTTOMUP | TJFLAG_ACCURATEDCT;
|
tj3Set(handle, TJPARAM_FASTDCT, ti == 1);
|
||||||
else if (ti == 1 || ti == 3)
|
tj3Set(handle, TJPARAM_OPTIMIZE, ti == 4);
|
||||||
flags |= TJFLAG_PROGRESSIVE;
|
tj3Set(handle, TJPARAM_PROGRESSIVE, ti == 1 || ti == 3);
|
||||||
if (ti == 2 || ti == 3)
|
tj3Set(handle, TJPARAM_ARITHMETIC, ti == 2 || ti == 3);
|
||||||
arithEnv[14] = '1';
|
tj3Set(handle, TJPARAM_NOREALLOC, 1);
|
||||||
else
|
tj3Set(handle, TJPARAM_RESTARTBLOCKS, ti == 3 || ti == 4 ? 4 : 0);
|
||||||
arithEnv[14] = '0';
|
|
||||||
if (ti == 1 || ti == 2)
|
|
||||||
restartEnv[11] = '2';
|
|
||||||
else
|
|
||||||
restartEnv[11] = '0';
|
|
||||||
|
|
||||||
/* tjLoadImage() refuses to load images larger than 1 Megapixel when
|
tj3Set(handle, TJPARAM_MAXPIXELS, 1048576);
|
||||||
FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION is defined (yes, that's a dirty
|
/* tj3LoadImage8() will refuse to load images larger than 1 Megapixel, so
|
||||||
hack), so we don't need to check the width and height here. */
|
we don't need to check the width and height here. */
|
||||||
if ((srcBuf = tjLoadImage(filename, &width, 1, &height, &pf,
|
if ((srcBuf = tj3LoadImage8(handle, filename, &width, 1, &height,
|
||||||
flags)) == NULL)
|
&pf)) == NULL)
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
maxBufSize = tjBufSize(width, height, tests[ti].subsamp);
|
maxBufSize = tj3JPEGBufSize(width, height, tests[ti].subsamp);
|
||||||
if ((dstBuf = (unsigned char *)malloc(maxBufSize)) == NULL)
|
if ((dstBuf = (unsigned char *)malloc(maxBufSize)) == NULL)
|
||||||
goto bailout;
|
goto bailout;
|
||||||
if ((yuvBuf =
|
if ((yuvBuf =
|
||||||
(unsigned char *)malloc(tjBufSizeYUV2(width, 1, height,
|
(unsigned char *)malloc(tj3YUVBufSize(width, 1, height,
|
||||||
tests[ti].subsamp))) == NULL)
|
tests[ti].subsamp))) == NULL)
|
||||||
goto bailout;
|
goto bailout;
|
||||||
|
|
||||||
if (tjEncodeYUV3(handle, srcBuf, width, 0, height, pf, yuvBuf, 1,
|
tj3Set(handle, TJPARAM_SUBSAMP, tests[ti].subsamp);
|
||||||
tests[ti].subsamp, flags) == 0 &&
|
tj3Set(handle, TJPARAM_QUALITY, tests[ti].quality);
|
||||||
tjCompressFromYUV(handle, yuvBuf, width, 1, height, tests[ti].subsamp,
|
if (tj3EncodeYUV8(handle, srcBuf, width, 0, height, pf, yuvBuf, 1) == 0 &&
|
||||||
&dstBuf, &dstSize, tests[ti].quality, flags) == 0) {
|
tj3CompressFromYUV8(handle, yuvBuf, width, 1, height, &dstBuf,
|
||||||
|
&dstSize) == 0) {
|
||||||
/* Touch all of the output pixels in order to catch uninitialized reads
|
/* Touch all of the output pixels in order to catch uninitialized reads
|
||||||
when using MemorySanitizer. */
|
when using MemorySanitizer. */
|
||||||
for (i = 0; i < dstSize; i++)
|
for (i = 0; i < dstSize; i++)
|
||||||
@@ -126,7 +116,7 @@ extern "C" int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size)
|
|||||||
dstBuf = NULL;
|
dstBuf = NULL;
|
||||||
free(yuvBuf);
|
free(yuvBuf);
|
||||||
yuvBuf = NULL;
|
yuvBuf = NULL;
|
||||||
tjFree(srcBuf);
|
tj3Free(srcBuf);
|
||||||
srcBuf = NULL;
|
srcBuf = NULL;
|
||||||
|
|
||||||
/* Prevent the code above from being optimized out. This test should never
|
/* Prevent the code above from being optimized out. This test should never
|
||||||
@@ -138,11 +128,11 @@ extern "C" int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size)
|
|||||||
bailout:
|
bailout:
|
||||||
free(dstBuf);
|
free(dstBuf);
|
||||||
free(yuvBuf);
|
free(yuvBuf);
|
||||||
tjFree(srcBuf);
|
tj3Free(srcBuf);
|
||||||
if (fd >= 0) {
|
if (fd >= 0) {
|
||||||
close(fd);
|
close(fd);
|
||||||
if (strlen(filename) > 0) unlink(filename);
|
if (strlen(filename) > 0) unlink(filename);
|
||||||
}
|
}
|
||||||
if (handle) tjDestroy(handle);
|
tj3Destroy(handle);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright (C)2021, 2023 D. R. Commander. All Rights Reserved.
|
* Copyright (C)2021-2023 D. R. Commander. All Rights Reserved.
|
||||||
*
|
*
|
||||||
* Redistribution and use in source and binary forms, with or without
|
* Redistribution and use in source and binary forms, with or without
|
||||||
* modification, are permitted provided that the following conditions are met:
|
* modification, are permitted provided that the following conditions are met:
|
||||||
@@ -37,8 +37,8 @@
|
|||||||
extern "C" int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size)
|
extern "C" int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size)
|
||||||
{
|
{
|
||||||
tjhandle handle = NULL;
|
tjhandle handle = NULL;
|
||||||
unsigned char *dstBuf = NULL;
|
void *dstBuf = NULL;
|
||||||
int width = 0, height = 0, jpegSubsamp, jpegColorspace, pfi;
|
int width = 0, height = 0, precision, sampleSize, pfi;
|
||||||
/* TJPF_RGB-TJPF_BGR share the same code paths, as do TJPF_RGBX-TJPF_XRGB and
|
/* TJPF_RGB-TJPF_BGR share the same code paths, as do TJPF_RGBX-TJPF_XRGB and
|
||||||
TJPF_RGBA-TJPF_ARGB. Thus, the pixel formats below should be the minimum
|
TJPF_RGBA-TJPF_ARGB. Thus, the pixel formats below should be the minimum
|
||||||
necessary to achieve full coverage. */
|
necessary to achieve full coverage. */
|
||||||
@@ -52,14 +52,15 @@ extern "C" int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size)
|
|||||||
putenv(env);
|
putenv(env);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
if ((handle = tjInitDecompress()) == NULL)
|
if ((handle = tj3Init(TJINIT_DECOMPRESS)) == NULL)
|
||||||
goto bailout;
|
goto bailout;
|
||||||
|
|
||||||
/* We ignore the return value of tjDecompressHeader3(), because some JPEG
|
if (tj3DecompressHeader(handle, data, size) < 0)
|
||||||
images may have unusual subsampling configurations that the TurboJPEG API
|
goto bailout;
|
||||||
cannot identify but can still decompress. */
|
width = tj3Get(handle, TJPARAM_JPEGWIDTH);
|
||||||
tjDecompressHeader3(handle, data, size, &width, &height, &jpegSubsamp,
|
height = tj3Get(handle, TJPARAM_JPEGHEIGHT);
|
||||||
&jpegColorspace);
|
precision = tj3Get(handle, TJPARAM_PRECISION);
|
||||||
|
sampleSize = (precision > 8 ? 2 : 1);
|
||||||
|
|
||||||
/* Ignore 0-pixel images and images larger than 1 Megapixel, as Google's
|
/* Ignore 0-pixel images and images larger than 1 Megapixel, as Google's
|
||||||
OSS-Fuzz target for libjpeg-turbo did. Casting width to (uint64_t)
|
OSS-Fuzz target for libjpeg-turbo did. Casting width to (uint64_t)
|
||||||
@@ -67,41 +68,80 @@ extern "C" int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size)
|
|||||||
if (width < 1 || height < 1 || (uint64_t)width * height > 1048576)
|
if (width < 1 || height < 1 || (uint64_t)width * height > 1048576)
|
||||||
goto bailout;
|
goto bailout;
|
||||||
|
|
||||||
|
tj3Set(handle, TJPARAM_SCANLIMIT, 500);
|
||||||
|
|
||||||
for (pfi = 0; pfi < NUMPF; pfi++) {
|
for (pfi = 0; pfi < NUMPF; pfi++) {
|
||||||
int pf = pixelFormats[pfi], flags = TJFLAG_LIMITSCANS, i, sum = 0;
|
|
||||||
int w = width, h = height;
|
int w = width, h = height;
|
||||||
|
int pf = pixelFormats[pfi], i;
|
||||||
|
int64_t sum = 0;
|
||||||
|
|
||||||
/* Test non-default decompression options on the first iteration. */
|
/* Test non-default decompression options on the first iteration. */
|
||||||
if (pfi == 0)
|
tj3Set(handle, TJPARAM_BOTTOMUP, pfi == 0);
|
||||||
flags |= TJFLAG_BOTTOMUP | TJFLAG_FASTUPSAMPLE | TJFLAG_FASTDCT;
|
tj3Set(handle, TJPARAM_FASTUPSAMPLE, pfi == 0);
|
||||||
/* Test IDCT scaling on the second iteration. */
|
|
||||||
else if (pfi == 1) {
|
if (!tj3Get(handle, TJPARAM_LOSSLESS)) {
|
||||||
w = (width + 1) / 2;
|
tj3Set(handle, TJPARAM_FASTDCT, pfi == 0);
|
||||||
h = (height + 1) / 2;
|
|
||||||
|
/* Test IDCT scaling on the second iteration. */
|
||||||
|
if (pfi == 1) {
|
||||||
|
tjscalingfactor sf = { 1, 2 };
|
||||||
|
tj3SetScalingFactor(handle, sf);
|
||||||
|
w = TJSCALED(width, sf);
|
||||||
|
h = TJSCALED(height, sf);
|
||||||
|
} else
|
||||||
|
tj3SetScalingFactor(handle, TJUNSCALED);
|
||||||
|
|
||||||
|
/* Test partial image decompression on the fourth iteration, if the image
|
||||||
|
is large enough. */
|
||||||
|
if (pfi == 3 && w >= 97 && h >= 75) {
|
||||||
|
tjregion cr = { 32, 16, 65, 59 };
|
||||||
|
tj3SetCroppingRegion(handle, cr);
|
||||||
|
} else
|
||||||
|
tj3SetCroppingRegion(handle, TJUNCROPPED);
|
||||||
}
|
}
|
||||||
|
|
||||||
if ((dstBuf = (unsigned char *)malloc(w * h * tjPixelSize[pf])) == NULL)
|
if ((dstBuf = malloc(w * h * tjPixelSize[pf] * sampleSize)) == NULL)
|
||||||
goto bailout;
|
goto bailout;
|
||||||
|
|
||||||
if (tjDecompress2(handle, data, size, dstBuf, w, 0, h, pf, flags) == 0) {
|
if (precision == 8) {
|
||||||
/* Touch all of the output pixels in order to catch uninitialized reads
|
if (tj3Decompress8(handle, data, size, (unsigned char *)dstBuf, 0,
|
||||||
when using MemorySanitizer. */
|
pf) == 0) {
|
||||||
for (i = 0; i < w * h * tjPixelSize[pf]; i++)
|
/* Touch all of the output pixels in order to catch uninitialized reads
|
||||||
sum += dstBuf[i];
|
when using MemorySanitizer. */
|
||||||
} else
|
for (i = 0; i < w * h * tjPixelSize[pf]; i++)
|
||||||
goto bailout;
|
sum += ((unsigned char *)dstBuf)[i];
|
||||||
|
} else
|
||||||
|
goto bailout;
|
||||||
|
} else if (precision == 12) {
|
||||||
|
if (tj3Decompress12(handle, data, size, (short *)dstBuf, 0, pf) == 0) {
|
||||||
|
/* Touch all of the output pixels in order to catch uninitialized reads
|
||||||
|
when using MemorySanitizer. */
|
||||||
|
for (i = 0; i < w * h * tjPixelSize[pf]; i++)
|
||||||
|
sum += ((short *)dstBuf)[i];
|
||||||
|
} else
|
||||||
|
goto bailout;
|
||||||
|
} else {
|
||||||
|
if (tj3Decompress16(handle, data, size, (unsigned short *)dstBuf, 0,
|
||||||
|
pf) == 0) {
|
||||||
|
/* Touch all of the output pixels in order to catch uninitialized reads
|
||||||
|
when using MemorySanitizer. */
|
||||||
|
for (i = 0; i < w * h * tjPixelSize[pf]; i++)
|
||||||
|
sum += ((unsigned short *)dstBuf)[i];
|
||||||
|
} else
|
||||||
|
goto bailout;
|
||||||
|
}
|
||||||
|
|
||||||
free(dstBuf);
|
free(dstBuf);
|
||||||
dstBuf = NULL;
|
dstBuf = NULL;
|
||||||
|
|
||||||
/* Prevent the code above from being optimized out. This test should never
|
/* Prevent the code above from being optimized out. This test should never
|
||||||
be true, but the compiler doesn't know that. */
|
be true, but the compiler doesn't know that. */
|
||||||
if (sum > 255 * 1048576 * tjPixelSize[pf])
|
if (sum > ((1LL << precision) - 1LL) * 1048576LL * tjPixelSize[pf])
|
||||||
goto bailout;
|
goto bailout;
|
||||||
}
|
}
|
||||||
|
|
||||||
bailout:
|
bailout:
|
||||||
free(dstBuf);
|
free(dstBuf);
|
||||||
if (handle) tjDestroy(handle);
|
tj3Destroy(handle);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright (C)2021, 2023 D. R. Commander. All Rights Reserved.
|
* Copyright (C)2021-2023 D. R. Commander. All Rights Reserved.
|
||||||
*
|
*
|
||||||
* Redistribution and use in source and binary forms, with or without
|
* Redistribution and use in source and binary forms, with or without
|
||||||
* modification, are permitted provided that the following conditions are met:
|
* modification, are permitted provided that the following conditions are met:
|
||||||
@@ -38,7 +38,7 @@ extern "C" int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size)
|
|||||||
{
|
{
|
||||||
tjhandle handle = NULL;
|
tjhandle handle = NULL;
|
||||||
unsigned char *dstBuf = NULL, *yuvBuf = NULL;
|
unsigned char *dstBuf = NULL, *yuvBuf = NULL;
|
||||||
int width = 0, height = 0, jpegSubsamp, jpegColorspace, pfi;
|
int width = 0, height = 0, jpegSubsamp, pfi;
|
||||||
/* TJPF_RGB-TJPF_BGR share the same code paths, as do TJPF_RGBX-TJPF_XRGB and
|
/* TJPF_RGB-TJPF_BGR share the same code paths, as do TJPF_RGBX-TJPF_XRGB and
|
||||||
TJPF_RGBA-TJPF_ARGB. Thus, the pixel formats below should be the minimum
|
TJPF_RGBA-TJPF_ARGB. Thus, the pixel formats below should be the minimum
|
||||||
necessary to achieve full coverage. */
|
necessary to achieve full coverage. */
|
||||||
@@ -52,40 +52,50 @@ extern "C" int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size)
|
|||||||
putenv(env);
|
putenv(env);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
if ((handle = tjInitDecompress()) == NULL)
|
if ((handle = tj3Init(TJINIT_DECOMPRESS)) == NULL)
|
||||||
goto bailout;
|
goto bailout;
|
||||||
|
|
||||||
if (tjDecompressHeader3(handle, data, size, &width, &height, &jpegSubsamp,
|
if (tj3DecompressHeader(handle, data, size) < 0)
|
||||||
&jpegColorspace) < 0)
|
|
||||||
goto bailout;
|
goto bailout;
|
||||||
|
width = tj3Get(handle, TJPARAM_JPEGWIDTH);
|
||||||
|
height = tj3Get(handle, TJPARAM_JPEGHEIGHT);
|
||||||
|
jpegSubsamp = tj3Get(handle, TJPARAM_SUBSAMP);
|
||||||
|
|
||||||
/* Ignore 0-pixel images and images larger than 1 Megapixel. Casting width
|
/* Ignore 0-pixel images and images larger than 1 Megapixel. Casting width
|
||||||
to (uint64_t) prevents integer overflow if width * height > INT_MAX. */
|
to (uint64_t) prevents integer overflow if width * height > INT_MAX. */
|
||||||
if (width < 1 || height < 1 || (uint64_t)width * height > 1048576)
|
if (width < 1 || height < 1 || (uint64_t)width * height > 1048576)
|
||||||
goto bailout;
|
goto bailout;
|
||||||
|
|
||||||
|
tj3Set(handle, TJPARAM_SCANLIMIT, 500);
|
||||||
|
|
||||||
for (pfi = 0; pfi < NUMPF; pfi++) {
|
for (pfi = 0; pfi < NUMPF; pfi++) {
|
||||||
int pf = pixelFormats[pfi], flags = TJFLAG_LIMITSCANS, i, sum = 0;
|
|
||||||
int w = width, h = height;
|
int w = width, h = height;
|
||||||
|
int pf = pixelFormats[pfi], i, sum = 0;
|
||||||
|
|
||||||
/* Test non-default decompression options on the first iteration. */
|
/* Test non-default decompression options on the first iteration. */
|
||||||
if (pfi == 0)
|
if (!tj3Get(handle, TJPARAM_LOSSLESS)) {
|
||||||
flags |= TJFLAG_BOTTOMUP | TJFLAG_FASTUPSAMPLE | TJFLAG_FASTDCT;
|
tj3Set(handle, TJPARAM_BOTTOMUP, pfi == 0);
|
||||||
/* Test IDCT scaling on the second iteration. */
|
tj3Set(handle, TJPARAM_FASTUPSAMPLE, pfi == 0);
|
||||||
else if (pfi == 1) {
|
tj3Set(handle, TJPARAM_FASTDCT, pfi == 0);
|
||||||
w = (width + 3) / 4;
|
|
||||||
h = (height + 3) / 4;
|
/* Test IDCT scaling on the second iteration. */
|
||||||
|
if (pfi == 1) {
|
||||||
|
tjscalingfactor sf = { 3, 4 };
|
||||||
|
tj3SetScalingFactor(handle, sf);
|
||||||
|
w = TJSCALED(width, sf);
|
||||||
|
h = TJSCALED(height, sf);
|
||||||
|
} else
|
||||||
|
tj3SetScalingFactor(handle, TJUNSCALED);
|
||||||
}
|
}
|
||||||
|
|
||||||
if ((dstBuf = (unsigned char *)malloc(w * h * tjPixelSize[pf])) == NULL)
|
if ((dstBuf = (unsigned char *)malloc(w * h * tjPixelSize[pf])) == NULL)
|
||||||
goto bailout;
|
goto bailout;
|
||||||
if ((yuvBuf =
|
if ((yuvBuf =
|
||||||
(unsigned char *)malloc(tjBufSizeYUV2(w, 1, h, jpegSubsamp))) == NULL)
|
(unsigned char *)malloc(tj3YUVBufSize(w, 1, h, jpegSubsamp))) == NULL)
|
||||||
goto bailout;
|
goto bailout;
|
||||||
|
|
||||||
if (tjDecompressToYUV2(handle, data, size, yuvBuf, w, 1, h, flags) == 0 &&
|
if (tj3DecompressToYUV8(handle, data, size, yuvBuf, 1) == 0 &&
|
||||||
tjDecodeYUV(handle, yuvBuf, 1, jpegSubsamp, dstBuf, w, 0, h, pf,
|
tj3DecodeYUV8(handle, yuvBuf, 1, dstBuf, w, 0, h, pf) == 0) {
|
||||||
flags) == 0) {
|
|
||||||
/* Touch all of the output pixels in order to catch uninitialized reads
|
/* Touch all of the output pixels in order to catch uninitialized reads
|
||||||
when using MemorySanitizer. */
|
when using MemorySanitizer. */
|
||||||
for (i = 0; i < w * h * tjPixelSize[pf]; i++)
|
for (i = 0; i < w * h * tjPixelSize[pf]; i++)
|
||||||
@@ -107,6 +117,6 @@ extern "C" int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size)
|
|||||||
bailout:
|
bailout:
|
||||||
free(dstBuf);
|
free(dstBuf);
|
||||||
free(yuvBuf);
|
free(yuvBuf);
|
||||||
if (handle) tjDestroy(handle);
|
tj3Destroy(handle);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright (C)2021, 2023 D. R. Commander. All Rights Reserved.
|
* Copyright (C)2021-2023 D. R. Commander. All Rights Reserved.
|
||||||
*
|
*
|
||||||
* Redistribution and use in source and binary forms, with or without
|
* Redistribution and use in source and binary forms, with or without
|
||||||
* modification, are permitted provided that the following conditions are met:
|
* modification, are permitted provided that the following conditions are met:
|
||||||
@@ -36,8 +36,8 @@ extern "C" int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size)
|
|||||||
{
|
{
|
||||||
tjhandle handle = NULL;
|
tjhandle handle = NULL;
|
||||||
unsigned char *dstBufs[1] = { NULL };
|
unsigned char *dstBufs[1] = { NULL };
|
||||||
unsigned long dstSizes[1] = { 0 }, maxBufSize;
|
size_t dstSizes[1] = { 0 }, maxBufSize;
|
||||||
int width = 0, height = 0, jpegSubsamp, jpegColorspace, i;
|
int width = 0, height = 0, jpegSubsamp, i;
|
||||||
tjtransform transforms[1];
|
tjtransform transforms[1];
|
||||||
#if defined(__has_feature) && __has_feature(memory_sanitizer)
|
#if defined(__has_feature) && __has_feature(memory_sanitizer)
|
||||||
char env[18] = "JSIMD_FORCENONE=1";
|
char env[18] = "JSIMD_FORCENONE=1";
|
||||||
@@ -47,20 +47,26 @@ extern "C" int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size)
|
|||||||
putenv(env);
|
putenv(env);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
if ((handle = tjInitTransform()) == NULL)
|
if ((handle = tj3Init(TJINIT_TRANSFORM)) == NULL)
|
||||||
goto bailout;
|
goto bailout;
|
||||||
|
|
||||||
/* We ignore the return value of tjDecompressHeader3(), because some JPEG
|
if (tj3DecompressHeader(handle, data, size) < 0)
|
||||||
images may have unusual subsampling configurations that the TurboJPEG API
|
goto bailout;
|
||||||
cannot identify but can still transform. */
|
width = tj3Get(handle, TJPARAM_JPEGWIDTH);
|
||||||
tjDecompressHeader3(handle, data, size, &width, &height, &jpegSubsamp,
|
height = tj3Get(handle, TJPARAM_JPEGHEIGHT);
|
||||||
&jpegColorspace);
|
jpegSubsamp = tj3Get(handle, TJPARAM_SUBSAMP);
|
||||||
|
/* Let the transform options dictate the entropy coding algorithm. */
|
||||||
|
tj3Set(handle, TJPARAM_ARITHMETIC, 0);
|
||||||
|
tj3Set(handle, TJPARAM_PROGRESSIVE, 0);
|
||||||
|
tj3Set(handle, TJPARAM_OPTIMIZE, 0);
|
||||||
|
|
||||||
/* Ignore 0-pixel images and images larger than 1 Megapixel. Casting width
|
/* Ignore 0-pixel images and images larger than 1 Megapixel. Casting width
|
||||||
to (uint64_t) prevents integer overflow if width * height > INT_MAX. */
|
to (uint64_t) prevents integer overflow if width * height > INT_MAX. */
|
||||||
if (width < 1 || height < 1 || (uint64_t)width * height > 1048576)
|
if (width < 1 || height < 1 || (uint64_t)width * height > 1048576)
|
||||||
goto bailout;
|
goto bailout;
|
||||||
|
|
||||||
|
tj3Set(handle, TJPARAM_SCANLIMIT, 500);
|
||||||
|
|
||||||
if (jpegSubsamp < 0 || jpegSubsamp >= TJ_NUMSAMP)
|
if (jpegSubsamp < 0 || jpegSubsamp >= TJ_NUMSAMP)
|
||||||
jpegSubsamp = TJSAMP_444;
|
jpegSubsamp = TJSAMP_444;
|
||||||
|
|
||||||
@@ -68,14 +74,16 @@ extern "C" int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size)
|
|||||||
|
|
||||||
transforms[0].op = TJXOP_NONE;
|
transforms[0].op = TJXOP_NONE;
|
||||||
transforms[0].options = TJXOPT_PROGRESSIVE | TJXOPT_COPYNONE;
|
transforms[0].options = TJXOPT_PROGRESSIVE | TJXOPT_COPYNONE;
|
||||||
dstBufs[0] = (unsigned char *)malloc(tjBufSize(width, height, jpegSubsamp));
|
dstBufs[0] =
|
||||||
|
(unsigned char *)malloc(tj3JPEGBufSize(width, height, jpegSubsamp));
|
||||||
if (!dstBufs[0])
|
if (!dstBufs[0])
|
||||||
goto bailout;
|
goto bailout;
|
||||||
|
|
||||||
maxBufSize = tjBufSize(width, height, jpegSubsamp);
|
maxBufSize = tj3JPEGBufSize(width, height, jpegSubsamp);
|
||||||
|
|
||||||
if (tjTransform(handle, data, size, 1, dstBufs, dstSizes, transforms,
|
tj3Set(handle, TJPARAM_NOREALLOC, 1);
|
||||||
TJFLAG_LIMITSCANS | TJFLAG_NOREALLOC) == 0) {
|
if (tj3Transform(handle, data, size, 1, dstBufs, dstSizes,
|
||||||
|
transforms) == 0) {
|
||||||
/* Touch all of the output pixels in order to catch uninitialized reads
|
/* Touch all of the output pixels in order to catch uninitialized reads
|
||||||
when using MemorySanitizer. */
|
when using MemorySanitizer. */
|
||||||
int sum = 0;
|
int sum = 0;
|
||||||
@@ -97,15 +105,15 @@ extern "C" int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size)
|
|||||||
transforms[0].op = TJXOP_TRANSPOSE;
|
transforms[0].op = TJXOP_TRANSPOSE;
|
||||||
transforms[0].options = TJXOPT_GRAY | TJXOPT_CROP | TJXOPT_COPYNONE;
|
transforms[0].options = TJXOPT_GRAY | TJXOPT_CROP | TJXOPT_COPYNONE;
|
||||||
dstBufs[0] =
|
dstBufs[0] =
|
||||||
(unsigned char *)malloc(tjBufSize((height + 1) / 2, (width + 1) / 2,
|
(unsigned char *)malloc(tj3JPEGBufSize((height + 1) / 2, (width + 1) / 2,
|
||||||
jpegSubsamp));
|
TJSAMP_GRAY));
|
||||||
if (!dstBufs[0])
|
if (!dstBufs[0])
|
||||||
goto bailout;
|
goto bailout;
|
||||||
|
|
||||||
maxBufSize = tjBufSize((height + 1) / 2, (width + 1) / 2, jpegSubsamp);
|
maxBufSize = tj3JPEGBufSize((height + 1) / 2, (width + 1) / 2, TJSAMP_GRAY);
|
||||||
|
|
||||||
if (tjTransform(handle, data, size, 1, dstBufs, dstSizes, transforms,
|
if (tj3Transform(handle, data, size, 1, dstBufs, dstSizes,
|
||||||
TJFLAG_LIMITSCANS | TJFLAG_NOREALLOC) == 0) {
|
transforms) == 0) {
|
||||||
int sum = 0;
|
int sum = 0;
|
||||||
|
|
||||||
for (i = 0; i < dstSizes[0]; i++)
|
for (i = 0; i < dstSizes[0]; i++)
|
||||||
@@ -119,15 +127,16 @@ extern "C" int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size)
|
|||||||
dstBufs[0] = NULL;
|
dstBufs[0] = NULL;
|
||||||
|
|
||||||
transforms[0].op = TJXOP_ROT90;
|
transforms[0].op = TJXOP_ROT90;
|
||||||
transforms[0].options = TJXOPT_TRIM;
|
transforms[0].options = TJXOPT_TRIM | TJXOPT_ARITHMETIC;
|
||||||
dstBufs[0] = (unsigned char *)malloc(tjBufSize(height, width, jpegSubsamp));
|
dstBufs[0] =
|
||||||
|
(unsigned char *)malloc(tj3JPEGBufSize(height, width, jpegSubsamp));
|
||||||
if (!dstBufs[0])
|
if (!dstBufs[0])
|
||||||
goto bailout;
|
goto bailout;
|
||||||
|
|
||||||
maxBufSize = tjBufSize(height, width, jpegSubsamp);
|
maxBufSize = tj3JPEGBufSize(height, width, jpegSubsamp);
|
||||||
|
|
||||||
if (tjTransform(handle, data, size, 1, dstBufs, dstSizes, transforms,
|
if (tj3Transform(handle, data, size, 1, dstBufs, dstSizes,
|
||||||
TJFLAG_LIMITSCANS | TJFLAG_NOREALLOC) == 0) {
|
transforms) == 0) {
|
||||||
int sum = 0;
|
int sum = 0;
|
||||||
|
|
||||||
for (i = 0; i < dstSizes[0]; i++)
|
for (i = 0; i < dstSizes[0]; i++)
|
||||||
@@ -137,15 +146,14 @@ extern "C" int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size)
|
|||||||
goto bailout;
|
goto bailout;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
transforms[0].options |= TJXOPT_OPTIMIZE;
|
||||||
free(dstBufs[0]);
|
free(dstBufs[0]);
|
||||||
dstBufs[0] = NULL;
|
dstBufs[0] = NULL;
|
||||||
|
|
||||||
transforms[0].op = TJXOP_NONE;
|
|
||||||
transforms[0].options = TJXOPT_PROGRESSIVE;
|
|
||||||
dstSizes[0] = 0;
|
dstSizes[0] = 0;
|
||||||
|
|
||||||
if (tjTransform(handle, data, size, 1, dstBufs, dstSizes, transforms,
|
tj3Set(handle, TJPARAM_NOREALLOC, 0);
|
||||||
TJFLAG_LIMITSCANS) == 0) {
|
if (tj3Transform(handle, data, size, 1, dstBufs, dstSizes,
|
||||||
|
transforms) == 0) {
|
||||||
int sum = 0;
|
int sum = 0;
|
||||||
|
|
||||||
for (i = 0; i < dstSizes[0]; i++)
|
for (i = 0; i < dstSizes[0]; i++)
|
||||||
@@ -157,6 +165,6 @@ extern "C" int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size)
|
|||||||
|
|
||||||
bailout:
|
bailout:
|
||||||
free(dstBufs[0]);
|
free(dstBufs[0]);
|
||||||
if (handle) tjDestroy(handle);
|
tj3Destroy(handle);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|||||||
File diff suppressed because it is too large
Load Diff
@@ -1,6 +1,6 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright (C)2011-2012, 2014-2015, 2017-2018, 2023 D. R. Commander.
|
* Copyright (C)2011-2012, 2014-2015, 2017-2018, 2022-2023 D. R. Commander.
|
||||||
* All Rights Reserved.
|
* All Rights Reserved.
|
||||||
*
|
*
|
||||||
* Redistribution and use in source and binary forms, with or without
|
* Redistribution and use in source and binary forms, with or without
|
||||||
* modification, are permitted provided that the following conditions are met:
|
* modification, are permitted provided that the following conditions are met:
|
||||||
@@ -52,7 +52,7 @@ class TJExample implements TJCustomFilter {
|
|||||||
|
|
||||||
|
|
||||||
static final String[] SUBSAMP_NAME = {
|
static final String[] SUBSAMP_NAME = {
|
||||||
"4:4:4", "4:2:2", "4:2:0", "Grayscale", "4:4:0", "4:1:1"
|
"4:4:4", "4:2:2", "4:2:0", "Grayscale", "4:4:0", "4:1:1", "4:4:1"
|
||||||
};
|
};
|
||||||
|
|
||||||
static final String[] COLORSPACE_NAME = {
|
static final String[] COLORSPACE_NAME = {
|
||||||
@@ -140,8 +140,6 @@ class TJExample implements TJCustomFilter {
|
|||||||
|
|
||||||
System.out.println("-fastdct = Use the fastest DCT/IDCT algorithm available\n");
|
System.out.println("-fastdct = Use the fastest DCT/IDCT algorithm available\n");
|
||||||
|
|
||||||
System.out.println("-accuratedct = Use the most accurate DCT/IDCT algorithm available\n");
|
|
||||||
|
|
||||||
System.exit(1);
|
System.exit(1);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -150,11 +148,10 @@ class TJExample implements TJCustomFilter {
|
|||||||
|
|
||||||
try {
|
try {
|
||||||
|
|
||||||
TJScalingFactor scalingFactor = new TJScalingFactor(1, 1);
|
TJScalingFactor scalingFactor = TJ.UNSCALED;
|
||||||
int outSubsamp = -1, outQual = -1;
|
int outSubsamp = -1, outQual = -1;
|
||||||
TJTransform xform = new TJTransform();
|
TJTransform xform = new TJTransform();
|
||||||
boolean display = false;
|
boolean display = false, fastUpsample = false, fastDCT = false;
|
||||||
int flags = 0;
|
|
||||||
int width, height;
|
int width, height;
|
||||||
String inFormat = "jpg", outFormat = "jpg";
|
String inFormat = "jpg", outFormat = "jpg";
|
||||||
BufferedImage img = null;
|
BufferedImage img = null;
|
||||||
@@ -244,13 +241,10 @@ class TJExample implements TJCustomFilter {
|
|||||||
display = true;
|
display = true;
|
||||||
else if (argv[i].equalsIgnoreCase("-fastupsample")) {
|
else if (argv[i].equalsIgnoreCase("-fastupsample")) {
|
||||||
System.out.println("Using fast upsampling code");
|
System.out.println("Using fast upsampling code");
|
||||||
flags |= TJ.FLAG_FASTUPSAMPLE;
|
fastUpsample = true;
|
||||||
} else if (argv[i].equalsIgnoreCase("-fastdct")) {
|
} else if (argv[i].equalsIgnoreCase("-fastdct")) {
|
||||||
System.out.println("Using fastest DCT/IDCT algorithm");
|
System.out.println("Using fastest DCT/IDCT algorithm");
|
||||||
flags |= TJ.FLAG_FASTDCT;
|
fastDCT = true;
|
||||||
} else if (argv[i].equalsIgnoreCase("-accuratedct")) {
|
|
||||||
System.out.println("Using most accurate DCT/IDCT algorithm");
|
|
||||||
flags |= TJ.FLAG_ACCURATEDCT;
|
|
||||||
} else usage();
|
} else usage();
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -291,16 +285,21 @@ class TJExample implements TJCustomFilter {
|
|||||||
TJTransform[] xforms = new TJTransform[1];
|
TJTransform[] xforms = new TJTransform[1];
|
||||||
xforms[0] = xform;
|
xforms[0] = xform;
|
||||||
xforms[0].options |= TJTransform.OPT_TRIM;
|
xforms[0].options |= TJTransform.OPT_TRIM;
|
||||||
TJDecompressor[] tjds = tjt.transform(xforms, 0);
|
TJDecompressor[] tjds = tjt.transform(xforms);
|
||||||
tjd = tjds[0];
|
tjd = tjds[0];
|
||||||
tjt.close();
|
tjt.close();
|
||||||
} else
|
} else
|
||||||
tjd = new TJDecompressor(jpegBuf);
|
tjd = new TJDecompressor(jpegBuf);
|
||||||
|
tjd.set(TJ.PARAM_FASTUPSAMPLE, fastUpsample ? 1 : 0);
|
||||||
|
tjd.set(TJ.PARAM_FASTDCT, fastDCT ? 1 : 0);
|
||||||
|
|
||||||
width = tjd.getWidth();
|
width = tjd.getWidth();
|
||||||
height = tjd.getHeight();
|
height = tjd.getHeight();
|
||||||
int inSubsamp = tjd.getSubsamp();
|
int inSubsamp = tjd.get(TJ.PARAM_SUBSAMP);
|
||||||
int inColorspace = tjd.getColorspace();
|
int inColorspace = tjd.get(TJ.PARAM_COLORSPACE);
|
||||||
|
|
||||||
|
if (tjd.get(TJ.PARAM_LOSSLESS) == 1)
|
||||||
|
scalingFactor = TJ.UNSCALED;
|
||||||
|
|
||||||
System.out.println((doTransform ? "Transformed" : "Input") +
|
System.out.println((doTransform ? "Transformed" : "Input") +
|
||||||
" Image (jpg): " + width + " x " + height +
|
" Image (jpg): " + width + " x " + height +
|
||||||
@@ -322,16 +321,16 @@ class TJExample implements TJCustomFilter {
|
|||||||
/* Scaling and/or a non-JPEG output image format and/or compression
|
/* Scaling and/or a non-JPEG output image format and/or compression
|
||||||
options have been selected, so we need to decompress the
|
options have been selected, so we need to decompress the
|
||||||
input/transformed image. */
|
input/transformed image. */
|
||||||
|
tjd.setScalingFactor(scalingFactor);
|
||||||
width = scalingFactor.getScaled(width);
|
width = scalingFactor.getScaled(width);
|
||||||
height = scalingFactor.getScaled(height);
|
height = scalingFactor.getScaled(height);
|
||||||
if (outSubsamp < 0)
|
if (outSubsamp < 0)
|
||||||
outSubsamp = inSubsamp;
|
outSubsamp = inSubsamp;
|
||||||
|
|
||||||
if (!outFormat.equalsIgnoreCase("jpg"))
|
if (!outFormat.equalsIgnoreCase("jpg"))
|
||||||
img = tjd.decompress(width, height, BufferedImage.TYPE_INT_RGB,
|
img = tjd.decompress8(BufferedImage.TYPE_INT_RGB);
|
||||||
flags);
|
|
||||||
else
|
else
|
||||||
imgBuf = tjd.decompress(width, 0, height, TJ.PF_BGRX, flags);
|
imgBuf = tjd.decompress8(0, TJ.PF_BGRX);
|
||||||
tjd.close();
|
tjd.close();
|
||||||
} else {
|
} else {
|
||||||
/* Input image is not a JPEG image. Load it into memory. */
|
/* Input image is not a JPEG image. Load it into memory. */
|
||||||
@@ -368,13 +367,14 @@ class TJExample implements TJCustomFilter {
|
|||||||
" subsampling, quality = " + outQual);
|
" subsampling, quality = " + outQual);
|
||||||
|
|
||||||
TJCompressor tjc = new TJCompressor();
|
TJCompressor tjc = new TJCompressor();
|
||||||
tjc.setSubsamp(outSubsamp);
|
tjc.set(TJ.PARAM_SUBSAMP, outSubsamp);
|
||||||
tjc.setJPEGQuality(outQual);
|
tjc.set(TJ.PARAM_QUALITY, outQual);
|
||||||
|
tjc.set(TJ.PARAM_FASTDCT, fastDCT ? 1 : 0);
|
||||||
if (img != null)
|
if (img != null)
|
||||||
tjc.setSourceImage(img, 0, 0, 0, 0);
|
tjc.setSourceImage(img, 0, 0, 0, 0);
|
||||||
else
|
else
|
||||||
tjc.setSourceImage(imgBuf, 0, 0, width, 0, height, TJ.PF_BGRX);
|
tjc.setSourceImage(imgBuf, 0, 0, width, 0, height, TJ.PF_BGRX);
|
||||||
byte[] jpegBuf = tjc.compress(flags);
|
byte[] jpegBuf = tjc.compress();
|
||||||
int jpegSize = tjc.getCompressedSize();
|
int jpegSize = tjc.getCompressedSize();
|
||||||
tjc.close();
|
tjc.close();
|
||||||
|
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright (C)2011-2018, 2023 D. R. Commander. All Rights Reserved.
|
* Copyright (C)2011-2018, 2022-2023 D. R. Commander. All Rights Reserved.
|
||||||
*
|
*
|
||||||
* Redistribution and use in source and binary forms, with or without
|
* Redistribution and use in source and binary forms, with or without
|
||||||
* modification, are permitted provided that the following conditions are met:
|
* modification, are permitted provided that the following conditions are met:
|
||||||
@@ -49,17 +49,21 @@ final class TJUnitTest {
|
|||||||
System.out.println("\nUSAGE: java " + CLASS_NAME + " [options]\n");
|
System.out.println("\nUSAGE: java " + CLASS_NAME + " [options]\n");
|
||||||
System.out.println("Options:");
|
System.out.println("Options:");
|
||||||
System.out.println("-yuv = test YUV encoding/compression/decompression/decoding");
|
System.out.println("-yuv = test YUV encoding/compression/decompression/decoding");
|
||||||
|
System.out.println(" (8-bit data precision only)");
|
||||||
System.out.println("-noyuvpad = do not pad each row in each Y, U, and V plane to the nearest");
|
System.out.println("-noyuvpad = do not pad each row in each Y, U, and V plane to the nearest");
|
||||||
System.out.println(" multiple of 4 bytes");
|
System.out.println(" multiple of 4 bytes");
|
||||||
System.out.println("-bi = test BufferedImage I/O\n");
|
System.out.println("-precision N = test N-bit data precision (N is 8, 12, or 16; default is 8; if N");
|
||||||
|
System.out.println(" is 16, then -lossless is implied)");
|
||||||
|
System.out.println("-lossless = test lossless JPEG compression/decompression");
|
||||||
|
System.out.println("-bi = test BufferedImage I/O (8-bit data precision only)\n");
|
||||||
System.exit(1);
|
System.exit(1);
|
||||||
}
|
}
|
||||||
|
|
||||||
static final String[] SUBNAME_LONG = {
|
static final String[] SUBNAME_LONG = {
|
||||||
"4:4:4", "4:2:2", "4:2:0", "GRAY", "4:4:0", "4:1:1"
|
"4:4:4", "4:2:2", "4:2:0", "GRAY", "4:4:0", "4:1:1", "4:4:1"
|
||||||
};
|
};
|
||||||
static final String[] SUBNAME = {
|
static final String[] SUBNAME = {
|
||||||
"444", "422", "420", "GRAY", "440", "411"
|
"444", "422", "420", "GRAY", "440", "411", "441"
|
||||||
};
|
};
|
||||||
|
|
||||||
static final String[] PIXFORMATSTR = {
|
static final String[] PIXFORMATSTR = {
|
||||||
@@ -67,13 +71,13 @@ final class TJUnitTest {
|
|||||||
"RGBA", "BGRA", "ABGR", "ARGB", "CMYK"
|
"RGBA", "BGRA", "ABGR", "ARGB", "CMYK"
|
||||||
};
|
};
|
||||||
|
|
||||||
static final int[] FORMATS_3BYTE = {
|
static final int[] FORMATS_3SAMPLE = {
|
||||||
TJ.PF_RGB, TJ.PF_BGR
|
TJ.PF_RGB, TJ.PF_BGR
|
||||||
};
|
};
|
||||||
static final int[] FORMATS_3BYTEBI = {
|
static final int[] FORMATS_3BYTEBI = {
|
||||||
BufferedImage.TYPE_3BYTE_BGR
|
BufferedImage.TYPE_3BYTE_BGR
|
||||||
};
|
};
|
||||||
static final int[] FORMATS_4BYTE = {
|
static final int[] FORMATS_4SAMPLE = {
|
||||||
TJ.PF_RGBX, TJ.PF_BGRX, TJ.PF_XBGR, TJ.PF_XRGB, TJ.PF_CMYK
|
TJ.PF_RGBX, TJ.PF_BGRX, TJ.PF_XBGR, TJ.PF_XRGB, TJ.PF_CMYK
|
||||||
};
|
};
|
||||||
static final int[] FORMATS_4BYTEBI = {
|
static final int[] FORMATS_4BYTEBI = {
|
||||||
@@ -92,7 +96,11 @@ final class TJUnitTest {
|
|||||||
};
|
};
|
||||||
|
|
||||||
private static boolean doYUV = false;
|
private static boolean doYUV = false;
|
||||||
|
private static boolean lossless = false;
|
||||||
|
private static int psv = 1;
|
||||||
private static int yuvAlign = 4;
|
private static int yuvAlign = 4;
|
||||||
|
private static int precision = 8;
|
||||||
|
private static int sampleSize, maxSample, tolerance, redToY, yellowToY;
|
||||||
private static boolean bi = false;
|
private static boolean bi = false;
|
||||||
|
|
||||||
private static int exitStatus = 0;
|
private static int exitStatus = 0;
|
||||||
@@ -142,8 +150,22 @@ final class TJUnitTest {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
static void initBuf(byte[] buf, int w, int pitch, int h, int pf, int flags)
|
static void fillArray(Object buf, int val) {
|
||||||
throws Exception {
|
if (precision == 8)
|
||||||
|
Arrays.fill((byte[])buf, (byte)val);
|
||||||
|
else
|
||||||
|
Arrays.fill((short[])buf, (short)val);
|
||||||
|
}
|
||||||
|
|
||||||
|
static void setVal(Object buf, int index, int value) {
|
||||||
|
if (precision == 8)
|
||||||
|
((byte[])buf)[index] = (byte)value;
|
||||||
|
else
|
||||||
|
((short[])buf)[index] = (short)value;
|
||||||
|
}
|
||||||
|
|
||||||
|
static void initBuf(Object buf, int w, int pitch, int h, int pf,
|
||||||
|
boolean bottomUp) throws Exception {
|
||||||
int roffset = TJ.getRedOffset(pf);
|
int roffset = TJ.getRedOffset(pf);
|
||||||
int goffset = TJ.getGreenOffset(pf);
|
int goffset = TJ.getGreenOffset(pf);
|
||||||
int boffset = TJ.getBlueOffset(pf);
|
int boffset = TJ.getBlueOffset(pf);
|
||||||
@@ -152,67 +174,67 @@ final class TJUnitTest {
|
|||||||
int index, row, col, halfway = 16;
|
int index, row, col, halfway = 16;
|
||||||
|
|
||||||
if (pf == TJ.PF_GRAY) {
|
if (pf == TJ.PF_GRAY) {
|
||||||
Arrays.fill(buf, (byte)0);
|
fillArray(buf, 0);
|
||||||
for (row = 0; row < h; row++) {
|
for (row = 0; row < h; row++) {
|
||||||
for (col = 0; col < w; col++) {
|
for (col = 0; col < w; col++) {
|
||||||
if ((flags & TJ.FLAG_BOTTOMUP) != 0)
|
if (bottomUp)
|
||||||
index = pitch * (h - row - 1) + col;
|
index = pitch * (h - row - 1) + col;
|
||||||
else
|
else
|
||||||
index = pitch * row + col;
|
index = pitch * row + col;
|
||||||
if (((row / 8) + (col / 8)) % 2 == 0)
|
if (((row / 8) + (col / 8)) % 2 == 0)
|
||||||
buf[index] = (row < halfway) ? (byte)255 : 0;
|
setVal(buf, index, (row < halfway) ? maxSample : 0);
|
||||||
else
|
else
|
||||||
buf[index] = (row < halfway) ? 76 : (byte)226;
|
setVal(buf, index, (row < halfway) ? redToY : yellowToY);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if (pf == TJ.PF_CMYK) {
|
if (pf == TJ.PF_CMYK) {
|
||||||
Arrays.fill(buf, (byte)255);
|
fillArray(buf, maxSample);
|
||||||
for (row = 0; row < h; row++) {
|
for (row = 0; row < h; row++) {
|
||||||
for (col = 0; col < w; col++) {
|
for (col = 0; col < w; col++) {
|
||||||
if ((flags & TJ.FLAG_BOTTOMUP) != 0)
|
if (bottomUp)
|
||||||
index = (h - row - 1) * w + col;
|
index = (h - row - 1) * w + col;
|
||||||
else
|
else
|
||||||
index = row * w + col;
|
index = row * w + col;
|
||||||
if (((row / 8) + (col / 8)) % 2 == 0) {
|
if (((row / 8) + (col / 8)) % 2 == 0) {
|
||||||
if (row >= halfway) buf[index * ps + 3] = 0;
|
if (row >= halfway) setVal(buf, index * ps + 3, 0);
|
||||||
} else {
|
} else {
|
||||||
buf[index * ps + 2] = 0;
|
setVal(buf, index * ps + 2, 0);
|
||||||
if (row < halfway)
|
if (row < halfway)
|
||||||
buf[index * ps + 1] = 0;
|
setVal(buf, index * ps + 1, 0);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
Arrays.fill(buf, (byte)0);
|
fillArray(buf, 0);
|
||||||
for (row = 0; row < h; row++) {
|
for (row = 0; row < h; row++) {
|
||||||
for (col = 0; col < w; col++) {
|
for (col = 0; col < w; col++) {
|
||||||
if ((flags & TJ.FLAG_BOTTOMUP) != 0)
|
if (bottomUp)
|
||||||
index = pitch * (h - row - 1) + col * ps;
|
index = pitch * (h - row - 1) + col * ps;
|
||||||
else
|
else
|
||||||
index = pitch * row + col * ps;
|
index = pitch * row + col * ps;
|
||||||
if (((row / 8) + (col / 8)) % 2 == 0) {
|
if (((row / 8) + (col / 8)) % 2 == 0) {
|
||||||
if (row < halfway) {
|
if (row < halfway) {
|
||||||
buf[index + roffset] = (byte)255;
|
setVal(buf, index + roffset, maxSample);
|
||||||
buf[index + goffset] = (byte)255;
|
setVal(buf, index + goffset, maxSample);
|
||||||
buf[index + boffset] = (byte)255;
|
setVal(buf, index + boffset, maxSample);
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
buf[index + roffset] = (byte)255;
|
setVal(buf, index + roffset, maxSample);
|
||||||
if (row >= halfway)
|
if (row >= halfway)
|
||||||
buf[index + goffset] = (byte)255;
|
setVal(buf, index + goffset, maxSample);
|
||||||
}
|
}
|
||||||
if (aoffset >= 0)
|
if (aoffset >= 0)
|
||||||
buf[index + aoffset] = (byte)255;
|
setVal(buf, index + aoffset, maxSample);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
static void initIntBuf(int[] buf, int w, int pitch, int h, int pf, int flags)
|
static void initIntBuf(int[] buf, int w, int pitch, int h, int pf,
|
||||||
throws Exception {
|
boolean bottomUp) throws Exception {
|
||||||
int rshift = TJ.getRedOffset(pf) * 8;
|
int rshift = TJ.getRedOffset(pf) * 8;
|
||||||
int gshift = TJ.getGreenOffset(pf) * 8;
|
int gshift = TJ.getGreenOffset(pf) * 8;
|
||||||
int bshift = TJ.getBlueOffset(pf) * 8;
|
int bshift = TJ.getBlueOffset(pf) * 8;
|
||||||
@@ -222,7 +244,7 @@ final class TJUnitTest {
|
|||||||
Arrays.fill(buf, 0);
|
Arrays.fill(buf, 0);
|
||||||
for (row = 0; row < h; row++) {
|
for (row = 0; row < h; row++) {
|
||||||
for (col = 0; col < w; col++) {
|
for (col = 0; col < w; col++) {
|
||||||
if ((flags & TJ.FLAG_BOTTOMUP) != 0)
|
if (bottomUp)
|
||||||
index = pitch * (h - row - 1) + col;
|
index = pitch * (h - row - 1) + col;
|
||||||
else
|
else
|
||||||
index = pitch * row + col;
|
index = pitch * row + col;
|
||||||
@@ -243,7 +265,8 @@ final class TJUnitTest {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
static void initImg(BufferedImage img, int pf, int flags) throws Exception {
|
static void initImg(BufferedImage img, int pf, boolean bottomUp)
|
||||||
|
throws Exception {
|
||||||
WritableRaster wr = img.getRaster();
|
WritableRaster wr = img.getRaster();
|
||||||
int imgType = img.getType();
|
int imgType = img.getType();
|
||||||
|
|
||||||
@@ -256,20 +279,20 @@ final class TJUnitTest {
|
|||||||
int pitch = sm.getScanlineStride();
|
int pitch = sm.getScanlineStride();
|
||||||
DataBufferInt db = (DataBufferInt)wr.getDataBuffer();
|
DataBufferInt db = (DataBufferInt)wr.getDataBuffer();
|
||||||
int[] buf = db.getData();
|
int[] buf = db.getData();
|
||||||
initIntBuf(buf, img.getWidth(), pitch, img.getHeight(), pf, flags);
|
initIntBuf(buf, img.getWidth(), pitch, img.getHeight(), pf, bottomUp);
|
||||||
} else {
|
} else {
|
||||||
ComponentSampleModel sm = (ComponentSampleModel)img.getSampleModel();
|
ComponentSampleModel sm = (ComponentSampleModel)img.getSampleModel();
|
||||||
int pitch = sm.getScanlineStride();
|
int pitch = sm.getScanlineStride();
|
||||||
DataBufferByte db = (DataBufferByte)wr.getDataBuffer();
|
DataBufferByte db = (DataBufferByte)wr.getDataBuffer();
|
||||||
byte[] buf = db.getData();
|
byte[] buf = db.getData();
|
||||||
initBuf(buf, img.getWidth(), pitch, img.getHeight(), pf, flags);
|
initBuf(buf, img.getWidth(), pitch, img.getHeight(), pf, bottomUp);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
static void checkVal(int row, int col, int v, String vname, int cv)
|
static void checkVal(int row, int col, int v, String vname, int cv)
|
||||||
throws Exception {
|
throws Exception {
|
||||||
v = (v < 0) ? v + 256 : v;
|
v = (v < 0) ? v + 256 : v;
|
||||||
if (v < cv - 1 || v > cv + 1) {
|
if (v < cv - tolerance || v > cv + tolerance) {
|
||||||
throw new Exception("Comp. " + vname + " at " + row + "," + col +
|
throw new Exception("Comp. " + vname + " at " + row + "," + col +
|
||||||
" should be " + cv + ", not " + v);
|
" should be " + cv + ", not " + v);
|
||||||
}
|
}
|
||||||
@@ -278,23 +301,34 @@ final class TJUnitTest {
|
|||||||
static void checkVal0(int row, int col, int v, String vname)
|
static void checkVal0(int row, int col, int v, String vname)
|
||||||
throws Exception {
|
throws Exception {
|
||||||
v = (v < 0) ? v + 256 : v;
|
v = (v < 0) ? v + 256 : v;
|
||||||
if (v > 1) {
|
if (v > tolerance) {
|
||||||
throw new Exception("Comp. " + vname + " at " + row + "," + col +
|
throw new Exception("Comp. " + vname + " at " + row + "," + col +
|
||||||
" should be 0, not " + v);
|
" should be 0, not " + v);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
static void checkVal255(int row, int col, int v, String vname)
|
static void checkValMax(int row, int col, int v, String vname)
|
||||||
throws Exception {
|
throws Exception {
|
||||||
v = (v < 0) ? v + 256 : v;
|
v = (v < 0) ? v + 256 : v;
|
||||||
if (v < 254) {
|
if (v < maxSample - tolerance) {
|
||||||
throw new Exception("Comp. " + vname + " at " + row + "," + col +
|
throw new Exception("Comp. " + vname + " at " + row + "," + col +
|
||||||
" should be 255, not " + v);
|
" should be " + maxSample + ", not " + v);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
static int checkBuf(byte[] buf, int w, int pitch, int h, int pf, int subsamp,
|
static int getVal(Object buf, int index) {
|
||||||
TJScalingFactor sf, int flags) throws Exception {
|
int v;
|
||||||
|
if (precision == 8)
|
||||||
|
v = (int)(((byte[])buf)[index]);
|
||||||
|
else
|
||||||
|
v = (int)(((short[])buf)[index]);
|
||||||
|
if (v < 0)
|
||||||
|
v += maxSample + 1;
|
||||||
|
return v;
|
||||||
|
}
|
||||||
|
|
||||||
|
static int checkBuf(Object buf, int w, int pitch, int h, int pf, int subsamp,
|
||||||
|
TJScalingFactor sf, boolean bottomUp) throws Exception {
|
||||||
int roffset = TJ.getRedOffset(pf);
|
int roffset = TJ.getRedOffset(pf);
|
||||||
int goffset = TJ.getGreenOffset(pf);
|
int goffset = TJ.getGreenOffset(pf);
|
||||||
int boffset = TJ.getBlueOffset(pf);
|
int boffset = TJ.getBlueOffset(pf);
|
||||||
@@ -312,29 +346,29 @@ final class TJUnitTest {
|
|||||||
if (pf == TJ.PF_CMYK) {
|
if (pf == TJ.PF_CMYK) {
|
||||||
for (row = 0; row < h; row++) {
|
for (row = 0; row < h; row++) {
|
||||||
for (col = 0; col < w; col++) {
|
for (col = 0; col < w; col++) {
|
||||||
if ((flags & TJ.FLAG_BOTTOMUP) != 0)
|
if (bottomUp)
|
||||||
index = (h - row - 1) * w + col;
|
index = (h - row - 1) * w + col;
|
||||||
else
|
else
|
||||||
index = row * w + col;
|
index = row * w + col;
|
||||||
byte c = buf[index * ps];
|
int c = getVal(buf, index * ps);
|
||||||
byte m = buf[index * ps + 1];
|
int m = getVal(buf, index * ps + 1);
|
||||||
byte y = buf[index * ps + 2];
|
int y = getVal(buf, index * ps + 2);
|
||||||
byte k = buf[index * ps + 3];
|
int k = getVal(buf, index * ps + 3);
|
||||||
checkVal255(row, col, c, "C");
|
checkValMax(row, col, c, "C");
|
||||||
if (((row / blockSize) + (col / blockSize)) % 2 == 0) {
|
if (((row / blockSize) + (col / blockSize)) % 2 == 0) {
|
||||||
checkVal255(row, col, m, "M");
|
checkValMax(row, col, m, "M");
|
||||||
checkVal255(row, col, y, "Y");
|
checkValMax(row, col, y, "Y");
|
||||||
if (row < halfway)
|
if (row < halfway)
|
||||||
checkVal255(row, col, k, "K");
|
checkValMax(row, col, k, "K");
|
||||||
else
|
else
|
||||||
checkVal0(row, col, k, "K");
|
checkVal0(row, col, k, "K");
|
||||||
} else {
|
} else {
|
||||||
checkVal0(row, col, y, "Y");
|
checkVal0(row, col, y, "Y");
|
||||||
checkVal255(row, col, k, "K");
|
checkValMax(row, col, k, "K");
|
||||||
if (row < halfway)
|
if (row < halfway)
|
||||||
checkVal0(row, col, m, "M");
|
checkVal0(row, col, m, "M");
|
||||||
else
|
else
|
||||||
checkVal255(row, col, m, "M");
|
checkValMax(row, col, m, "M");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -343,19 +377,19 @@ final class TJUnitTest {
|
|||||||
|
|
||||||
for (row = 0; row < halfway; row++) {
|
for (row = 0; row < halfway; row++) {
|
||||||
for (col = 0; col < w; col++) {
|
for (col = 0; col < w; col++) {
|
||||||
if ((flags & TJ.FLAG_BOTTOMUP) != 0)
|
if (bottomUp)
|
||||||
index = pitch * (h - row - 1) + col * ps;
|
index = pitch * (h - row - 1) + col * ps;
|
||||||
else
|
else
|
||||||
index = pitch * row + col * ps;
|
index = pitch * row + col * ps;
|
||||||
byte r = buf[index + roffset];
|
int r = getVal(buf, index + roffset);
|
||||||
byte g = buf[index + goffset];
|
int g = getVal(buf, index + goffset);
|
||||||
byte b = buf[index + boffset];
|
int b = getVal(buf, index + boffset);
|
||||||
byte a = aoffset >= 0 ? buf[index + aoffset] : (byte)255;
|
int a = aoffset >= 0 ? getVal(buf, index + aoffset) : maxSample;
|
||||||
if (((row / blockSize) + (col / blockSize)) % 2 == 0) {
|
if (((row / blockSize) + (col / blockSize)) % 2 == 0) {
|
||||||
if (row < halfway) {
|
if (row < halfway) {
|
||||||
checkVal255(row, col, r, "R");
|
checkValMax(row, col, r, "R");
|
||||||
checkVal255(row, col, g, "G");
|
checkValMax(row, col, g, "G");
|
||||||
checkVal255(row, col, b, "B");
|
checkValMax(row, col, b, "B");
|
||||||
} else {
|
} else {
|
||||||
checkVal0(row, col, r, "R");
|
checkVal0(row, col, r, "R");
|
||||||
checkVal0(row, col, g, "G");
|
checkVal0(row, col, g, "G");
|
||||||
@@ -364,25 +398,25 @@ final class TJUnitTest {
|
|||||||
} else {
|
} else {
|
||||||
if (subsamp == TJ.SAMP_GRAY) {
|
if (subsamp == TJ.SAMP_GRAY) {
|
||||||
if (row < halfway) {
|
if (row < halfway) {
|
||||||
checkVal(row, col, r, "R", 76);
|
checkVal(row, col, r, "R", redToY);
|
||||||
checkVal(row, col, g, "G", 76);
|
checkVal(row, col, g, "G", redToY);
|
||||||
checkVal(row, col, b, "B", 76);
|
checkVal(row, col, b, "B", redToY);
|
||||||
} else {
|
} else {
|
||||||
checkVal(row, col, r, "R", 226);
|
checkVal(row, col, r, "R", yellowToY);
|
||||||
checkVal(row, col, g, "G", 226);
|
checkVal(row, col, g, "G", yellowToY);
|
||||||
checkVal(row, col, b, "B", 226);
|
checkVal(row, col, b, "B", yellowToY);
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
checkVal255(row, col, r, "R");
|
checkValMax(row, col, r, "R");
|
||||||
if (row < halfway) {
|
if (row < halfway) {
|
||||||
checkVal0(row, col, g, "G");
|
checkVal0(row, col, g, "G");
|
||||||
} else {
|
} else {
|
||||||
checkVal255(row, col, g, "G");
|
checkValMax(row, col, g, "G");
|
||||||
}
|
}
|
||||||
checkVal0(row, col, b, "B");
|
checkVal0(row, col, b, "B");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
checkVal255(row, col, a, "A");
|
checkValMax(row, col, a, "A");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
@@ -394,22 +428,15 @@ final class TJUnitTest {
|
|||||||
for (row = 0; row < h; row++) {
|
for (row = 0; row < h; row++) {
|
||||||
for (col = 0; col < w; col++) {
|
for (col = 0; col < w; col++) {
|
||||||
if (pf == TJ.PF_CMYK) {
|
if (pf == TJ.PF_CMYK) {
|
||||||
int c = buf[pitch * row + col * ps];
|
int c = getVal(buf, pitch * row + col * ps);
|
||||||
int m = buf[pitch * row + col * ps + 1];
|
int m = getVal(buf, pitch * row + col * ps + 1);
|
||||||
int y = buf[pitch * row + col * ps + 2];
|
int y = getVal(buf, pitch * row + col * ps + 2);
|
||||||
int k = buf[pitch * row + col * ps + 3];
|
int k = getVal(buf, pitch * row + col * ps + 3);
|
||||||
if (c < 0) c += 256;
|
|
||||||
if (m < 0) m += 256;
|
|
||||||
if (y < 0) y += 256;
|
|
||||||
if (k < 0) k += 256;
|
|
||||||
System.out.format("%3d/%3d/%3d/%3d ", c, m, y, k);
|
System.out.format("%3d/%3d/%3d/%3d ", c, m, y, k);
|
||||||
} else {
|
} else {
|
||||||
int r = buf[pitch * row + col * ps + roffset];
|
int r = getVal(buf, pitch * row + col * ps + roffset);
|
||||||
int g = buf[pitch * row + col * ps + goffset];
|
int g = getVal(buf, pitch * row + col * ps + goffset);
|
||||||
int b = buf[pitch * row + col * ps + boffset];
|
int b = getVal(buf, pitch * row + col * ps + boffset);
|
||||||
if (r < 0) r += 256;
|
|
||||||
if (g < 0) g += 256;
|
|
||||||
if (b < 0) b += 256;
|
|
||||||
System.out.format("%3d/%3d/%3d ", r, g, b);
|
System.out.format("%3d/%3d/%3d ", r, g, b);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -420,7 +447,7 @@ final class TJUnitTest {
|
|||||||
}
|
}
|
||||||
|
|
||||||
static int checkIntBuf(int[] buf, int w, int pitch, int h, int pf,
|
static int checkIntBuf(int[] buf, int w, int pitch, int h, int pf,
|
||||||
int subsamp, TJScalingFactor sf, int flags)
|
int subsamp, TJScalingFactor sf, boolean bottomUp)
|
||||||
throws Exception {
|
throws Exception {
|
||||||
int rshift = TJ.getRedOffset(pf) * 8;
|
int rshift = TJ.getRedOffset(pf) * 8;
|
||||||
int gshift = TJ.getGreenOffset(pf) * 8;
|
int gshift = TJ.getGreenOffset(pf) * 8;
|
||||||
@@ -433,7 +460,7 @@ final class TJUnitTest {
|
|||||||
try {
|
try {
|
||||||
for (row = 0; row < halfway; row++) {
|
for (row = 0; row < halfway; row++) {
|
||||||
for (col = 0; col < w; col++) {
|
for (col = 0; col < w; col++) {
|
||||||
if ((flags & TJ.FLAG_BOTTOMUP) != 0)
|
if (bottomUp)
|
||||||
index = pitch * (h - row - 1) + col;
|
index = pitch * (h - row - 1) + col;
|
||||||
else
|
else
|
||||||
index = pitch * row + col;
|
index = pitch * row + col;
|
||||||
@@ -443,9 +470,9 @@ final class TJUnitTest {
|
|||||||
int a = ashift >= 0 ? (buf[index] >> ashift) & 0xFF : 255;
|
int a = ashift >= 0 ? (buf[index] >> ashift) & 0xFF : 255;
|
||||||
if (((row / blockSize) + (col / blockSize)) % 2 == 0) {
|
if (((row / blockSize) + (col / blockSize)) % 2 == 0) {
|
||||||
if (row < halfway) {
|
if (row < halfway) {
|
||||||
checkVal255(row, col, r, "R");
|
checkValMax(row, col, r, "R");
|
||||||
checkVal255(row, col, g, "G");
|
checkValMax(row, col, g, "G");
|
||||||
checkVal255(row, col, b, "B");
|
checkValMax(row, col, b, "B");
|
||||||
} else {
|
} else {
|
||||||
checkVal0(row, col, r, "R");
|
checkVal0(row, col, r, "R");
|
||||||
checkVal0(row, col, g, "G");
|
checkVal0(row, col, g, "G");
|
||||||
@@ -463,16 +490,16 @@ final class TJUnitTest {
|
|||||||
checkVal(row, col, b, "B", 226);
|
checkVal(row, col, b, "B", 226);
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
checkVal255(row, col, r, "R");
|
checkValMax(row, col, r, "R");
|
||||||
if (row < halfway) {
|
if (row < halfway) {
|
||||||
checkVal0(row, col, g, "G");
|
checkVal0(row, col, g, "G");
|
||||||
} else {
|
} else {
|
||||||
checkVal255(row, col, g, "G");
|
checkValMax(row, col, g, "G");
|
||||||
}
|
}
|
||||||
checkVal0(row, col, b, "B");
|
checkVal0(row, col, b, "B");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
checkVal255(row, col, a, "A");
|
checkValMax(row, col, a, "A");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
@@ -498,7 +525,7 @@ final class TJUnitTest {
|
|||||||
}
|
}
|
||||||
|
|
||||||
static int checkImg(BufferedImage img, int pf, int subsamp,
|
static int checkImg(BufferedImage img, int pf, int subsamp,
|
||||||
TJScalingFactor sf, int flags) throws Exception {
|
TJScalingFactor sf, boolean bottomUp) throws Exception {
|
||||||
WritableRaster wr = img.getRaster();
|
WritableRaster wr = img.getRaster();
|
||||||
int imgType = img.getType();
|
int imgType = img.getType();
|
||||||
if (imgType == BufferedImage.TYPE_INT_RGB ||
|
if (imgType == BufferedImage.TYPE_INT_RGB ||
|
||||||
@@ -511,14 +538,14 @@ final class TJUnitTest {
|
|||||||
DataBufferInt db = (DataBufferInt)wr.getDataBuffer();
|
DataBufferInt db = (DataBufferInt)wr.getDataBuffer();
|
||||||
int[] buf = db.getData();
|
int[] buf = db.getData();
|
||||||
return checkIntBuf(buf, img.getWidth(), pitch, img.getHeight(), pf,
|
return checkIntBuf(buf, img.getWidth(), pitch, img.getHeight(), pf,
|
||||||
subsamp, sf, flags);
|
subsamp, sf, bottomUp);
|
||||||
} else {
|
} else {
|
||||||
ComponentSampleModel sm = (ComponentSampleModel)img.getSampleModel();
|
ComponentSampleModel sm = (ComponentSampleModel)img.getSampleModel();
|
||||||
int pitch = sm.getScanlineStride();
|
int pitch = sm.getScanlineStride();
|
||||||
DataBufferByte db = (DataBufferByte)wr.getDataBuffer();
|
DataBufferByte db = (DataBufferByte)wr.getDataBuffer();
|
||||||
byte[] buf = db.getData();
|
byte[] buf = db.getData();
|
||||||
return checkBuf(buf, img.getWidth(), pitch, img.getHeight(), pf, subsamp,
|
return checkBuf(buf, img.getWidth(), pitch, img.getHeight(), pf, subsamp,
|
||||||
sf, flags);
|
sf, bottomUp);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -549,7 +576,7 @@ final class TJUnitTest {
|
|||||||
byte y = buf[ypitch * row + col];
|
byte y = buf[ypitch * row + col];
|
||||||
if (((row / blockSize) + (col / blockSize)) % 2 == 0) {
|
if (((row / blockSize) + (col / blockSize)) % 2 == 0) {
|
||||||
if (row < halfway)
|
if (row < halfway)
|
||||||
checkVal255(row, col, y, "Y");
|
checkValMax(row, col, y, "Y");
|
||||||
else
|
else
|
||||||
checkVal0(row, col, y, "Y");
|
checkVal0(row, col, y, "Y");
|
||||||
} else {
|
} else {
|
||||||
@@ -572,7 +599,7 @@ final class TJUnitTest {
|
|||||||
} else {
|
} else {
|
||||||
if (row < halfway) {
|
if (row < halfway) {
|
||||||
checkVal(row, col, u, "U", 85);
|
checkVal(row, col, u, "U", 85);
|
||||||
checkVal255(row, col, v, "V");
|
checkValMax(row, col, v, "V");
|
||||||
} else {
|
} else {
|
||||||
checkVal0(row, col, u, "U");
|
checkVal0(row, col, u, "U");
|
||||||
checkVal(row, col, v, "V", 149);
|
checkVal(row, col, v, "V", 149);
|
||||||
@@ -627,15 +654,17 @@ final class TJUnitTest {
|
|||||||
}
|
}
|
||||||
|
|
||||||
static int compTest(TJCompressor tjc, byte[] dstBuf, int w, int h, int pf,
|
static int compTest(TJCompressor tjc, byte[] dstBuf, int w, int h, int pf,
|
||||||
String baseName, int subsamp, int jpegQual, int flags)
|
String baseName) throws Exception {
|
||||||
throws Exception {
|
|
||||||
String tempStr;
|
String tempStr;
|
||||||
byte[] srcBuf = null;
|
Object srcBuf = null;
|
||||||
BufferedImage img = null;
|
BufferedImage img = null;
|
||||||
String pfStr, pfStrLong;
|
String pfStr, pfStrLong;
|
||||||
String buStr = (flags & TJ.FLAG_BOTTOMUP) != 0 ? "BU" : "TD";
|
boolean bottomUp = (tjc.get(TJ.PARAM_BOTTOMUP) == 1);
|
||||||
String buStrLong = (flags & TJ.FLAG_BOTTOMUP) != 0 ?
|
int subsamp = tjc.get(TJ.PARAM_SUBSAMP);
|
||||||
"Bottom-Up" : "Top-Down ";
|
int jpegQual = tjc.get(TJ.PARAM_QUALITY);
|
||||||
|
int jpegPSV = tjc.get(TJ.PARAM_LOSSLESSPSV);
|
||||||
|
String buStr = bottomUp ? "BU" : "TD";
|
||||||
|
String buStrLong = bottomUp ? "Bottom-Up" : "Top-Down ";
|
||||||
int size = 0, ps, imgType = pf;
|
int size = 0, ps, imgType = pf;
|
||||||
|
|
||||||
if (bi) {
|
if (bi) {
|
||||||
@@ -650,25 +679,31 @@ final class TJUnitTest {
|
|||||||
|
|
||||||
if (bi) {
|
if (bi) {
|
||||||
img = new BufferedImage(w, h, imgType);
|
img = new BufferedImage(w, h, imgType);
|
||||||
initImg(img, pf, flags);
|
initImg(img, pf, bottomUp);
|
||||||
tempStr = baseName + "_enc_" + pfStr + "_" + buStr + "_" +
|
tempStr = baseName + "_enc" + precision + "_" + pfStr + "_" + buStr +
|
||||||
SUBNAME[subsamp] + "_Q" + jpegQual + ".png";
|
"_" + SUBNAME[subsamp] + "_Q" + jpegQual + ".png";
|
||||||
File file = new File(tempStr);
|
File file = new File(tempStr);
|
||||||
ImageIO.write(img, "png", file);
|
ImageIO.write(img, "png", file);
|
||||||
tjc.setSourceImage(img, 0, 0, 0, 0);
|
tjc.setSourceImage(img, 0, 0, 0, 0);
|
||||||
} else {
|
} else {
|
||||||
srcBuf = new byte[w * h * ps + 1];
|
if (precision == 8)
|
||||||
initBuf(srcBuf, w, w * ps, h, pf, flags);
|
srcBuf = new byte[w * h * ps + 1];
|
||||||
tjc.setSourceImage(srcBuf, 0, 0, w, 0, h, pf);
|
else
|
||||||
|
srcBuf = new short[w * h * ps + 1];
|
||||||
|
initBuf(srcBuf, w, w * ps, h, pf, bottomUp);
|
||||||
|
if (precision == 8)
|
||||||
|
tjc.setSourceImage((byte[])srcBuf, 0, 0, w, 0, h, pf);
|
||||||
|
else if (precision == 12)
|
||||||
|
tjc.setSourceImage12((short[])srcBuf, 0, 0, w, 0, h, pf);
|
||||||
|
else
|
||||||
|
tjc.setSourceImage16((short[])srcBuf, 0, 0, w, 0, h, pf);
|
||||||
}
|
}
|
||||||
Arrays.fill(dstBuf, (byte)0);
|
Arrays.fill(dstBuf, (byte)0);
|
||||||
|
|
||||||
tjc.setSubsamp(subsamp);
|
|
||||||
tjc.setJPEGQuality(jpegQual);
|
|
||||||
if (doYUV) {
|
if (doYUV) {
|
||||||
System.out.format("%s %s -> YUV %s ... ", pfStrLong, buStrLong,
|
System.out.format("%s %s -> YUV %s ... ", pfStrLong, buStrLong,
|
||||||
SUBNAME_LONG[subsamp]);
|
SUBNAME_LONG[subsamp]);
|
||||||
YUVImage yuvImage = tjc.encodeYUV(yuvAlign, flags);
|
YUVImage yuvImage = tjc.encodeYUV(yuvAlign);
|
||||||
if (checkBufYUV(yuvImage.getBuf(), yuvImage.getSize(), w, h, subsamp,
|
if (checkBufYUV(yuvImage.getBuf(), yuvImage.getSize(), w, h, subsamp,
|
||||||
new TJScalingFactor(1, 1)) == 1)
|
new TJScalingFactor(1, 1)) == 1)
|
||||||
System.out.print("Passed.\n");
|
System.out.print("Passed.\n");
|
||||||
@@ -681,14 +716,22 @@ final class TJUnitTest {
|
|||||||
buStrLong, jpegQual);
|
buStrLong, jpegQual);
|
||||||
tjc.setSourceImage(yuvImage);
|
tjc.setSourceImage(yuvImage);
|
||||||
} else {
|
} else {
|
||||||
System.out.format("%s %s -> %s Q%d ... ", pfStrLong, buStrLong,
|
if (lossless)
|
||||||
SUBNAME_LONG[subsamp], jpegQual);
|
System.out.format("%s %s -> LOSSLESS PSV%d ... ", pfStrLong, buStrLong,
|
||||||
|
jpegPSV);
|
||||||
|
else
|
||||||
|
System.out.format("%s %s -> %s Q%d ... ", pfStrLong, buStrLong,
|
||||||
|
SUBNAME_LONG[subsamp], jpegQual);
|
||||||
}
|
}
|
||||||
tjc.compress(dstBuf, flags);
|
tjc.compress(dstBuf);
|
||||||
size = tjc.getCompressedSize();
|
size = tjc.getCompressedSize();
|
||||||
|
|
||||||
tempStr = baseName + "_enc_" + pfStr + "_" + buStr + "_" +
|
if (lossless)
|
||||||
SUBNAME[subsamp] + "_Q" + jpegQual + ".jpg";
|
tempStr = baseName + "_enc" + precision + "_" + pfStr + "_" + buStr +
|
||||||
|
"_LOSSLESS_PSV" + jpegPSV + ".jpg";
|
||||||
|
else
|
||||||
|
tempStr = baseName + "_enc" + precision + "_" + pfStr + "_" + buStr +
|
||||||
|
"_" + SUBNAME[subsamp] + "_Q" + jpegQual + ".jpg";
|
||||||
writeJPEG(dstBuf, size, tempStr);
|
writeJPEG(dstBuf, size, tempStr);
|
||||||
System.out.println("Done.\n Result in " + tempStr);
|
System.out.println("Done.\n Result in " + tempStr);
|
||||||
|
|
||||||
@@ -697,15 +740,15 @@ final class TJUnitTest {
|
|||||||
|
|
||||||
static void decompTest(TJDecompressor tjd, byte[] jpegBuf, int jpegSize,
|
static void decompTest(TJDecompressor tjd, byte[] jpegBuf, int jpegSize,
|
||||||
int w, int h, int pf, String baseName, int subsamp,
|
int w, int h, int pf, String baseName, int subsamp,
|
||||||
int flags, TJScalingFactor sf) throws Exception {
|
TJScalingFactor sf) throws Exception {
|
||||||
String pfStr, pfStrLong, tempStr;
|
String pfStr, pfStrLong, tempStr;
|
||||||
String buStrLong = (flags & TJ.FLAG_BOTTOMUP) != 0 ?
|
boolean bottomUp = (tjd.get(TJ.PARAM_BOTTOMUP) == 1);
|
||||||
"Bottom-Up" : "Top-Down ";
|
String buStrLong = bottomUp ? "Bottom-Up" : "Top-Down ";
|
||||||
int scaledWidth = sf.getScaled(w);
|
int scaledWidth = sf.getScaled(w);
|
||||||
int scaledHeight = sf.getScaled(h);
|
int scaledHeight = sf.getScaled(h);
|
||||||
int temp1, temp2, imgType = pf;
|
int temp1, temp2, imgType = pf;
|
||||||
BufferedImage img = null;
|
BufferedImage img = null;
|
||||||
byte[] dstBuf = null;
|
Object dstBuf = null;
|
||||||
|
|
||||||
if (bi) {
|
if (bi) {
|
||||||
pf = biTypePF(imgType);
|
pf = biTypePF(imgType);
|
||||||
@@ -717,24 +760,19 @@ final class TJUnitTest {
|
|||||||
}
|
}
|
||||||
|
|
||||||
tjd.setSourceImage(jpegBuf, jpegSize);
|
tjd.setSourceImage(jpegBuf, jpegSize);
|
||||||
|
tjd.setScalingFactor(sf);
|
||||||
|
if (lossless && subsamp != TJ.SAMP_444 && subsamp != TJ.SAMP_GRAY)
|
||||||
|
subsamp = TJ.SAMP_444;
|
||||||
if (tjd.getWidth() != w || tjd.getHeight() != h ||
|
if (tjd.getWidth() != w || tjd.getHeight() != h ||
|
||||||
tjd.getSubsamp() != subsamp)
|
tjd.get(TJ.PARAM_SUBSAMP) != subsamp)
|
||||||
throw new Exception("Incorrect JPEG header");
|
throw new Exception("Incorrect JPEG header");
|
||||||
|
|
||||||
temp1 = scaledWidth;
|
|
||||||
temp2 = scaledHeight;
|
|
||||||
temp1 = tjd.getScaledWidth(temp1, temp2);
|
|
||||||
temp2 = tjd.getScaledHeight(temp1, temp2);
|
|
||||||
if (temp1 != scaledWidth || temp2 != scaledHeight)
|
|
||||||
throw new Exception("Scaled size mismatch");
|
|
||||||
|
|
||||||
if (doYUV) {
|
if (doYUV) {
|
||||||
System.out.format("JPEG -> YUV %s ", SUBNAME_LONG[subsamp]);
|
System.out.format("JPEG -> YUV %s ", SUBNAME_LONG[subsamp]);
|
||||||
if (!sf.isOne())
|
if (!sf.isOne())
|
||||||
System.out.format("%d/%d ... ", sf.getNum(), sf.getDenom());
|
System.out.format("%d/%d ... ", sf.getNum(), sf.getDenom());
|
||||||
else System.out.print("... ");
|
else System.out.print("... ");
|
||||||
YUVImage yuvImage = tjd.decompressToYUV(scaledWidth, yuvAlign,
|
YUVImage yuvImage = tjd.decompressToYUV(yuvAlign);
|
||||||
scaledHeight, flags);
|
|
||||||
if (checkBufYUV(yuvImage.getBuf(), yuvImage.getSize(), scaledWidth,
|
if (checkBufYUV(yuvImage.getBuf(), yuvImage.getSize(), scaledWidth,
|
||||||
scaledHeight, subsamp, sf) == 1)
|
scaledHeight, subsamp, sf) == 1)
|
||||||
System.out.print("Passed.\n");
|
System.out.print("Passed.\n");
|
||||||
@@ -752,23 +790,28 @@ final class TJUnitTest {
|
|||||||
else System.out.print("... ");
|
else System.out.print("... ");
|
||||||
}
|
}
|
||||||
if (bi)
|
if (bi)
|
||||||
img = tjd.decompress(scaledWidth, scaledHeight, imgType, flags);
|
img = tjd.decompress8(imgType);
|
||||||
else
|
else {
|
||||||
dstBuf = tjd.decompress(scaledWidth, 0, scaledHeight, pf, flags);
|
if (precision == 8)
|
||||||
|
dstBuf = tjd.decompress8(0, pf);
|
||||||
|
else if (precision == 12)
|
||||||
|
dstBuf = tjd.decompress12(0, pf);
|
||||||
|
else
|
||||||
|
dstBuf = tjd.decompress16(0, pf);
|
||||||
|
}
|
||||||
|
|
||||||
if (bi) {
|
if (bi) {
|
||||||
tempStr = baseName + "_dec_" + pfStr + "_" +
|
tempStr = baseName + "_dec_" + pfStr + "_" + (bottomUp ? "BU" : "TD") +
|
||||||
(((flags & TJ.FLAG_BOTTOMUP) != 0) ? "BU" : "TD") + "_" +
|
"_" + SUBNAME[subsamp] + "_" +
|
||||||
SUBNAME[subsamp] + "_" +
|
|
||||||
(double)sf.getNum() / (double)sf.getDenom() + "x" + ".png";
|
(double)sf.getNum() / (double)sf.getDenom() + "x" + ".png";
|
||||||
File file = new File(tempStr);
|
File file = new File(tempStr);
|
||||||
ImageIO.write(img, "png", file);
|
ImageIO.write(img, "png", file);
|
||||||
}
|
}
|
||||||
|
|
||||||
if ((bi && checkImg(img, pf, subsamp, sf, flags) == 1) ||
|
if ((bi && checkImg(img, pf, subsamp, sf, bottomUp) == 1) ||
|
||||||
(!bi && checkBuf(dstBuf, scaledWidth,
|
(!bi && checkBuf(dstBuf, scaledWidth,
|
||||||
scaledWidth * TJ.getPixelSize(pf), scaledHeight, pf,
|
scaledWidth * TJ.getPixelSize(pf), scaledHeight, pf,
|
||||||
subsamp, sf, flags) == 1))
|
subsamp, sf, bottomUp) == 1))
|
||||||
System.out.print("Passed.\n");
|
System.out.print("Passed.\n");
|
||||||
else {
|
else {
|
||||||
System.out.print("FAILED!\n");
|
System.out.print("FAILED!\n");
|
||||||
@@ -777,20 +820,26 @@ final class TJUnitTest {
|
|||||||
}
|
}
|
||||||
|
|
||||||
static void decompTest(TJDecompressor tjd, byte[] jpegBuf, int jpegSize,
|
static void decompTest(TJDecompressor tjd, byte[] jpegBuf, int jpegSize,
|
||||||
int w, int h, int pf, String baseName, int subsamp,
|
int w, int h, int pf, String baseName, int subsamp)
|
||||||
int flags) throws Exception {
|
throws Exception {
|
||||||
int i;
|
int i;
|
||||||
|
|
||||||
|
if (lossless) {
|
||||||
|
decompTest(tjd, jpegBuf, jpegSize, w, h, pf, baseName, subsamp,
|
||||||
|
TJ.UNSCALED);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
TJScalingFactor[] sf = TJ.getScalingFactors();
|
TJScalingFactor[] sf = TJ.getScalingFactors();
|
||||||
for (i = 0; i < sf.length; i++) {
|
for (i = 0; i < sf.length; i++) {
|
||||||
int num = sf[i].getNum();
|
int num = sf[i].getNum();
|
||||||
int denom = sf[i].getDenom();
|
int denom = sf[i].getDenom();
|
||||||
if (subsamp == TJ.SAMP_444 || subsamp == TJ.SAMP_GRAY ||
|
if (subsamp == TJ.SAMP_444 || subsamp == TJ.SAMP_GRAY ||
|
||||||
(subsamp == TJ.SAMP_411 && num == 1 &&
|
((subsamp == TJ.SAMP_411 || subsamp == TJ.SAMP_441) && num == 1 &&
|
||||||
(denom == 2 || denom == 1)) ||
|
(denom == 2 || denom == 1)) ||
|
||||||
(subsamp != TJ.SAMP_411 && num == 1 &&
|
(subsamp != TJ.SAMP_411 && subsamp != TJ.SAMP_441 && num == 1 &&
|
||||||
(denom == 4 || denom == 2 || denom == 1)))
|
(denom == 4 || denom == 2 || denom == 1)))
|
||||||
decompTest(tjd, jpegBuf, jpegSize, w, h, pf, baseName, subsamp,
|
decompTest(tjd, jpegBuf, jpegSize, w, h, pf, baseName, subsamp, sf[i]);
|
||||||
flags, sf[i]);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -801,28 +850,38 @@ final class TJUnitTest {
|
|||||||
int size;
|
int size;
|
||||||
byte[] dstBuf;
|
byte[] dstBuf;
|
||||||
|
|
||||||
|
if (lossless && subsamp != TJ.SAMP_GRAY)
|
||||||
|
subsamp = TJ.SAMP_444;
|
||||||
|
|
||||||
dstBuf = new byte[TJ.bufSize(w, h, subsamp)];
|
dstBuf = new byte[TJ.bufSize(w, h, subsamp)];
|
||||||
|
|
||||||
try {
|
try {
|
||||||
tjc = new TJCompressor();
|
tjc = new TJCompressor();
|
||||||
tjd = new TJDecompressor();
|
tjd = new TJDecompressor();
|
||||||
|
|
||||||
|
if (lossless) {
|
||||||
|
tjc.set(TJ.PARAM_LOSSLESS, 1);
|
||||||
|
tjc.set(TJ.PARAM_LOSSLESSPSV, ((psv++ - 1) % 7) + 1);
|
||||||
|
} else {
|
||||||
|
tjc.set(TJ.PARAM_QUALITY, 100);
|
||||||
|
if (subsamp == TJ.SAMP_422 || subsamp == TJ.SAMP_420 ||
|
||||||
|
subsamp == TJ.SAMP_440 || subsamp == TJ.SAMP_411 ||
|
||||||
|
subsamp == TJ.SAMP_441)
|
||||||
|
tjd.set(TJ.PARAM_FASTUPSAMPLE, 1);
|
||||||
|
}
|
||||||
|
tjc.set(TJ.PARAM_SUBSAMP, subsamp);
|
||||||
|
|
||||||
for (int pf : formats) {
|
for (int pf : formats) {
|
||||||
if (pf < 0) continue;
|
if (pf < 0) continue;
|
||||||
for (int i = 0; i < 2; i++) {
|
for (int i = 0; i < 2; i++) {
|
||||||
int flags = 0;
|
tjc.set(TJ.PARAM_BOTTOMUP, i == 1 ? 1 : 0);
|
||||||
if (subsamp == TJ.SAMP_422 || subsamp == TJ.SAMP_420 ||
|
tjd.set(TJ.PARAM_BOTTOMUP, i == 1 ? 1 : 0);
|
||||||
subsamp == TJ.SAMP_440 || subsamp == TJ.SAMP_411)
|
size = compTest(tjc, dstBuf, w, h, pf, baseName);
|
||||||
flags |= TJ.FLAG_FASTUPSAMPLE;
|
decompTest(tjd, dstBuf, size, w, h, pf, baseName, subsamp);
|
||||||
if (i == 1)
|
|
||||||
flags |= TJ.FLAG_BOTTOMUP;
|
|
||||||
size = compTest(tjc, dstBuf, w, h, pf, baseName, subsamp, 100,
|
|
||||||
flags);
|
|
||||||
decompTest(tjd, dstBuf, size, w, h, pf, baseName, subsamp, flags);
|
|
||||||
if (pf >= TJ.PF_RGBX && pf <= TJ.PF_XRGB && !bi) {
|
if (pf >= TJ.PF_RGBX && pf <= TJ.PF_XRGB && !bi) {
|
||||||
System.out.print("\n");
|
System.out.print("\n");
|
||||||
decompTest(tjd, dstBuf, size, w, h, pf + (TJ.PF_RGBA - TJ.PF_RGBX),
|
decompTest(tjd, dstBuf, size, w, h, pf + (TJ.PF_RGBA - TJ.PF_RGBX),
|
||||||
baseName, subsamp, flags);
|
baseName, subsamp);
|
||||||
}
|
}
|
||||||
System.out.print("\n");
|
System.out.print("\n");
|
||||||
}
|
}
|
||||||
@@ -887,7 +946,7 @@ final class TJUnitTest {
|
|||||||
}
|
}
|
||||||
|
|
||||||
static void bufSizeTest() throws Exception {
|
static void bufSizeTest() throws Exception {
|
||||||
int w, h, i, subsamp;
|
int w, h, i, subsamp, numSamp = TJ.NUMSAMP;
|
||||||
byte[] srcBuf, dstBuf = null;
|
byte[] srcBuf, dstBuf = null;
|
||||||
YUVImage dstImage = null;
|
YUVImage dstImage = null;
|
||||||
TJCompressor tjc = null;
|
TJCompressor tjc = null;
|
||||||
@@ -895,8 +954,17 @@ final class TJUnitTest {
|
|||||||
|
|
||||||
try {
|
try {
|
||||||
tjc = new TJCompressor();
|
tjc = new TJCompressor();
|
||||||
|
|
||||||
|
if (lossless) {
|
||||||
|
tjc.set(TJ.PARAM_LOSSLESS, 1);
|
||||||
|
tjc.set(TJ.PARAM_LOSSLESSPSV, ((psv++ - 1) % 7) + 1);
|
||||||
|
numSamp = 1;
|
||||||
|
} else
|
||||||
|
tjc.set(TJ.PARAM_QUALITY, 100);
|
||||||
|
|
||||||
System.out.println("Buffer size regression test");
|
System.out.println("Buffer size regression test");
|
||||||
for (subsamp = 0; subsamp < TJ.NUMSAMP; subsamp++) {
|
for (subsamp = 0; subsamp < numSamp; subsamp++) {
|
||||||
|
tjc.set(TJ.PARAM_SUBSAMP, subsamp);
|
||||||
for (w = 1; w < 48; w++) {
|
for (w = 1; w < 48; w++) {
|
||||||
int maxh = (w == 1) ? 2048 : 48;
|
int maxh = (w == 1) ? 2048 : 48;
|
||||||
for (h = 1; h < maxh; h++) {
|
for (h = 1; h < maxh; h++) {
|
||||||
@@ -911,12 +979,10 @@ final class TJUnitTest {
|
|||||||
srcBuf[i] = (byte)(r.nextInt(2) * 255);
|
srcBuf[i] = (byte)(r.nextInt(2) * 255);
|
||||||
}
|
}
|
||||||
tjc.setSourceImage(srcBuf, 0, 0, w, 0, h, TJ.PF_BGRX);
|
tjc.setSourceImage(srcBuf, 0, 0, w, 0, h, TJ.PF_BGRX);
|
||||||
tjc.setSubsamp(subsamp);
|
|
||||||
tjc.setJPEGQuality(100);
|
|
||||||
if (doYUV)
|
if (doYUV)
|
||||||
tjc.encodeYUV(dstImage, 0);
|
tjc.encodeYUV(dstImage);
|
||||||
else
|
else
|
||||||
tjc.compress(dstBuf, 0);
|
tjc.compress(dstBuf);
|
||||||
|
|
||||||
srcBuf = new byte[h * w * 4];
|
srcBuf = new byte[h * w * 4];
|
||||||
if (doYUV)
|
if (doYUV)
|
||||||
@@ -928,9 +994,9 @@ final class TJUnitTest {
|
|||||||
}
|
}
|
||||||
tjc.setSourceImage(srcBuf, 0, 0, h, 0, w, TJ.PF_BGRX);
|
tjc.setSourceImage(srcBuf, 0, 0, h, 0, w, TJ.PF_BGRX);
|
||||||
if (doYUV)
|
if (doYUV)
|
||||||
tjc.encodeYUV(dstImage, 0);
|
tjc.encodeYUV(dstImage);
|
||||||
else
|
else
|
||||||
tjc.compress(dstBuf, 0);
|
tjc.compress(dstBuf);
|
||||||
}
|
}
|
||||||
dstImage = null;
|
dstImage = null;
|
||||||
dstBuf = null;
|
dstBuf = null;
|
||||||
@@ -953,42 +1019,78 @@ final class TJUnitTest {
|
|||||||
doYUV = true;
|
doYUV = true;
|
||||||
else if (argv[i].equalsIgnoreCase("-noyuvpad"))
|
else if (argv[i].equalsIgnoreCase("-noyuvpad"))
|
||||||
yuvAlign = 1;
|
yuvAlign = 1;
|
||||||
|
else if (argv[i].equalsIgnoreCase("-lossless"))
|
||||||
|
lossless = true;
|
||||||
else if (argv[i].equalsIgnoreCase("-bi")) {
|
else if (argv[i].equalsIgnoreCase("-bi")) {
|
||||||
bi = true;
|
bi = true;
|
||||||
testName = "javabitest";
|
testName = "javabitest";
|
||||||
|
} else if (argv[i].equalsIgnoreCase("-precision") &&
|
||||||
|
i < argv.length - 1) {
|
||||||
|
int tempi = -1;
|
||||||
|
|
||||||
|
try {
|
||||||
|
tempi = Integer.parseInt(argv[++i]);
|
||||||
|
} catch (NumberFormatException e) {}
|
||||||
|
if (tempi != 8 && tempi != 12 && tempi != 16)
|
||||||
|
usage();
|
||||||
|
precision = tempi;
|
||||||
|
if (precision == 16)
|
||||||
|
lossless = true;
|
||||||
} else
|
} else
|
||||||
usage();
|
usage();
|
||||||
}
|
}
|
||||||
|
if (lossless && doYUV)
|
||||||
|
throw new Exception("Lossless JPEG and YUV encoding/decoding are incompatible.");
|
||||||
|
if (precision != 8 && doYUV)
|
||||||
|
throw new Exception("YUV encoding/decoding requires 8-bit data precision.");
|
||||||
|
if (precision != 8 && bi)
|
||||||
|
throw new Exception("BufferedImage support requires 8-bit data precision.");
|
||||||
|
|
||||||
|
System.out.format("Testing %d-bit precision\n", precision);
|
||||||
|
sampleSize = (precision == 8 ? 1 : 2);
|
||||||
|
maxSample = (1 << precision) - 1;
|
||||||
|
tolerance = (lossless ? 0 : (precision > 8 ? 2 : 1));
|
||||||
|
redToY = (19595 * maxSample) >> 16;
|
||||||
|
yellowToY = (58065 * maxSample) >> 16;
|
||||||
|
|
||||||
if (doYUV)
|
if (doYUV)
|
||||||
FORMATS_4BYTE[4] = -1;
|
FORMATS_4SAMPLE[4] = -1;
|
||||||
overflowTest();
|
overflowTest();
|
||||||
doTest(35, 39, bi ? FORMATS_3BYTEBI : FORMATS_3BYTE, TJ.SAMP_444,
|
doTest(35, 39, bi ? FORMATS_3BYTEBI : FORMATS_3SAMPLE, TJ.SAMP_444,
|
||||||
testName);
|
testName);
|
||||||
doTest(39, 41, bi ? FORMATS_4BYTEBI : FORMATS_4BYTE, TJ.SAMP_444,
|
doTest(39, 41, bi ? FORMATS_4BYTEBI : FORMATS_4SAMPLE, TJ.SAMP_444,
|
||||||
testName);
|
testName);
|
||||||
doTest(41, 35, bi ? FORMATS_3BYTEBI : FORMATS_3BYTE, TJ.SAMP_422,
|
doTest(41, 35, bi ? FORMATS_3BYTEBI : FORMATS_3SAMPLE, TJ.SAMP_422,
|
||||||
testName);
|
|
||||||
doTest(35, 39, bi ? FORMATS_4BYTEBI : FORMATS_4BYTE, TJ.SAMP_422,
|
|
||||||
testName);
|
|
||||||
doTest(39, 41, bi ? FORMATS_3BYTEBI : FORMATS_3BYTE, TJ.SAMP_420,
|
|
||||||
testName);
|
|
||||||
doTest(41, 35, bi ? FORMATS_4BYTEBI : FORMATS_4BYTE, TJ.SAMP_420,
|
|
||||||
testName);
|
|
||||||
doTest(35, 39, bi ? FORMATS_3BYTEBI : FORMATS_3BYTE, TJ.SAMP_440,
|
|
||||||
testName);
|
|
||||||
doTest(39, 41, bi ? FORMATS_4BYTEBI : FORMATS_4BYTE, TJ.SAMP_440,
|
|
||||||
testName);
|
|
||||||
doTest(41, 35, bi ? FORMATS_3BYTEBI : FORMATS_3BYTE, TJ.SAMP_411,
|
|
||||||
testName);
|
|
||||||
doTest(35, 39, bi ? FORMATS_4BYTEBI : FORMATS_4BYTE, TJ.SAMP_411,
|
|
||||||
testName);
|
testName);
|
||||||
|
if (!lossless) {
|
||||||
|
doTest(35, 39, bi ? FORMATS_4BYTEBI : FORMATS_4SAMPLE, TJ.SAMP_422,
|
||||||
|
testName);
|
||||||
|
doTest(39, 41, bi ? FORMATS_3BYTEBI : FORMATS_3SAMPLE, TJ.SAMP_420,
|
||||||
|
testName);
|
||||||
|
doTest(41, 35, bi ? FORMATS_4BYTEBI : FORMATS_4SAMPLE, TJ.SAMP_420,
|
||||||
|
testName);
|
||||||
|
doTest(35, 39, bi ? FORMATS_3BYTEBI : FORMATS_3SAMPLE, TJ.SAMP_440,
|
||||||
|
testName);
|
||||||
|
doTest(39, 41, bi ? FORMATS_4BYTEBI : FORMATS_4SAMPLE, TJ.SAMP_440,
|
||||||
|
testName);
|
||||||
|
doTest(41, 35, bi ? FORMATS_3BYTEBI : FORMATS_3SAMPLE, TJ.SAMP_411,
|
||||||
|
testName);
|
||||||
|
doTest(35, 39, bi ? FORMATS_4BYTEBI : FORMATS_4SAMPLE, TJ.SAMP_411,
|
||||||
|
testName);
|
||||||
|
doTest(39, 41, bi ? FORMATS_3BYTEBI : FORMATS_3SAMPLE, TJ.SAMP_441,
|
||||||
|
testName);
|
||||||
|
doTest(41, 35, bi ? FORMATS_4BYTEBI : FORMATS_4SAMPLE, TJ.SAMP_441,
|
||||||
|
testName);
|
||||||
|
}
|
||||||
doTest(39, 41, bi ? FORMATS_GRAYBI : FORMATS_GRAY, TJ.SAMP_GRAY,
|
doTest(39, 41, bi ? FORMATS_GRAYBI : FORMATS_GRAY, TJ.SAMP_GRAY,
|
||||||
testName);
|
testName);
|
||||||
doTest(41, 35, bi ? FORMATS_3BYTEBI : FORMATS_3BYTE, TJ.SAMP_GRAY,
|
if (!lossless) {
|
||||||
testName);
|
doTest(41, 35, bi ? FORMATS_3BYTEBI : FORMATS_3SAMPLE, TJ.SAMP_GRAY,
|
||||||
FORMATS_4BYTE[4] = -1;
|
testName);
|
||||||
doTest(35, 39, bi ? FORMATS_4BYTEBI : FORMATS_4BYTE, TJ.SAMP_GRAY,
|
FORMATS_4SAMPLE[4] = -1;
|
||||||
testName);
|
doTest(35, 39, bi ? FORMATS_4BYTEBI : FORMATS_4SAMPLE, TJ.SAMP_GRAY,
|
||||||
|
testName);
|
||||||
|
}
|
||||||
if (!bi)
|
if (!bi)
|
||||||
bufSizeTest();
|
bufSizeTest();
|
||||||
if (doYUV && !bi) {
|
if (doYUV && !bi) {
|
||||||
@@ -998,6 +1100,7 @@ final class TJUnitTest {
|
|||||||
doTest(48, 48, FORMATS_RGB, TJ.SAMP_420, "javatest_yuv0");
|
doTest(48, 48, FORMATS_RGB, TJ.SAMP_420, "javatest_yuv0");
|
||||||
doTest(48, 48, FORMATS_RGB, TJ.SAMP_440, "javatest_yuv0");
|
doTest(48, 48, FORMATS_RGB, TJ.SAMP_440, "javatest_yuv0");
|
||||||
doTest(48, 48, FORMATS_RGB, TJ.SAMP_411, "javatest_yuv0");
|
doTest(48, 48, FORMATS_RGB, TJ.SAMP_411, "javatest_yuv0");
|
||||||
|
doTest(48, 48, FORMATS_RGB, TJ.SAMP_441, "javatest_yuv0");
|
||||||
doTest(48, 48, FORMATS_RGB, TJ.SAMP_GRAY, "javatest_yuv0");
|
doTest(48, 48, FORMATS_RGB, TJ.SAMP_GRAY, "javatest_yuv0");
|
||||||
doTest(48, 48, FORMATS_GRAY, TJ.SAMP_GRAY, "javatest_yuv0");
|
doTest(48, 48, FORMATS_GRAY, TJ.SAMP_GRAY, "javatest_yuv0");
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,24 +0,0 @@
|
|||||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
|
|
||||||
<!-- NewPage -->
|
|
||||||
<html lang="en">
|
|
||||||
<head>
|
|
||||||
<title>All Classes</title>
|
|
||||||
<link rel="stylesheet" type="text/css" href="stylesheet.css" title="Style">
|
|
||||||
</head>
|
|
||||||
<body>
|
|
||||||
<h1 class="bar">All Classes</h1>
|
|
||||||
<div class="indexContainer">
|
|
||||||
<ul>
|
|
||||||
<li><a href="org/libjpegturbo/turbojpeg/TJ.html" title="class in org.libjpegturbo.turbojpeg" target="classFrame">TJ</a></li>
|
|
||||||
<li><a href="org/libjpegturbo/turbojpeg/TJCompressor.html" title="class in org.libjpegturbo.turbojpeg" target="classFrame">TJCompressor</a></li>
|
|
||||||
<li><a href="org/libjpegturbo/turbojpeg/TJCustomFilter.html" title="interface in org.libjpegturbo.turbojpeg" target="classFrame"><i>TJCustomFilter</i></a></li>
|
|
||||||
<li><a href="org/libjpegturbo/turbojpeg/TJDecompressor.html" title="class in org.libjpegturbo.turbojpeg" target="classFrame">TJDecompressor</a></li>
|
|
||||||
<li><a href="org/libjpegturbo/turbojpeg/TJException.html" title="class in org.libjpegturbo.turbojpeg" target="classFrame">TJException</a></li>
|
|
||||||
<li><a href="org/libjpegturbo/turbojpeg/TJScalingFactor.html" title="class in org.libjpegturbo.turbojpeg" target="classFrame">TJScalingFactor</a></li>
|
|
||||||
<li><a href="org/libjpegturbo/turbojpeg/TJTransform.html" title="class in org.libjpegturbo.turbojpeg" target="classFrame">TJTransform</a></li>
|
|
||||||
<li><a href="org/libjpegturbo/turbojpeg/TJTransformer.html" title="class in org.libjpegturbo.turbojpeg" target="classFrame">TJTransformer</a></li>
|
|
||||||
<li><a href="org/libjpegturbo/turbojpeg/YUVImage.html" title="class in org.libjpegturbo.turbojpeg" target="classFrame">YUVImage</a></li>
|
|
||||||
</ul>
|
|
||||||
</div>
|
|
||||||
</body>
|
|
||||||
</html>
|
|
||||||
215
java/doc/allclasses-index.html
Normal file
215
java/doc/allclasses-index.html
Normal file
@@ -0,0 +1,215 @@
|
|||||||
|
<!DOCTYPE HTML>
|
||||||
|
<!-- NewPage -->
|
||||||
|
<html lang="en">
|
||||||
|
<head>
|
||||||
|
<!-- Generated by javadoc -->
|
||||||
|
<title>All Classes</title>
|
||||||
|
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
|
||||||
|
<link rel="stylesheet" type="text/css" href="stylesheet.css" title="Style">
|
||||||
|
<link rel="stylesheet" type="text/css" href="jquery/jquery-ui.min.css" title="Style">
|
||||||
|
<link rel="stylesheet" type="text/css" href="jquery-ui.overrides.css" title="Style">
|
||||||
|
<script type="text/javascript" src="script.js"></script>
|
||||||
|
<script type="text/javascript" src="jquery/jszip/dist/jszip.min.js"></script>
|
||||||
|
<script type="text/javascript" src="jquery/jszip-utils/dist/jszip-utils.min.js"></script>
|
||||||
|
<!--[if IE]>
|
||||||
|
<script type="text/javascript" src="jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
|
||||||
|
<![endif]-->
|
||||||
|
<script type="text/javascript" src="jquery/jquery-3.6.0.min.js"></script>
|
||||||
|
<script type="text/javascript" src="jquery/jquery-ui.min.js"></script>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<script type="text/javascript"><!--
|
||||||
|
try {
|
||||||
|
if (location.href.indexOf('is-external=true') == -1) {
|
||||||
|
parent.document.title="All Classes";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
catch(err) {
|
||||||
|
}
|
||||||
|
//-->
|
||||||
|
var data = {"i0":2,"i1":2,"i2":1,"i3":2,"i4":8,"i5":2,"i6":2,"i7":2,"i8":2};
|
||||||
|
var tabs = {65535:["t0","All Classes"],1:["t1","Interface Summary"],2:["t2","Class Summary"],8:["t4","Exception Summary"]};
|
||||||
|
var altColor = "altColor";
|
||||||
|
var rowColor = "rowColor";
|
||||||
|
var tableTab = "tableTab";
|
||||||
|
var activeTableTab = "activeTableTab";
|
||||||
|
var pathtoroot = "./";
|
||||||
|
var useModuleDirectories = true;
|
||||||
|
loadScripts(document, 'script');</script>
|
||||||
|
<noscript>
|
||||||
|
<div>JavaScript is disabled on your browser.</div>
|
||||||
|
</noscript>
|
||||||
|
<header role="banner">
|
||||||
|
<nav role="navigation">
|
||||||
|
<div class="fixedNav">
|
||||||
|
<!-- ========= START OF TOP NAVBAR ======= -->
|
||||||
|
<div class="topNav"><a id="navbar.top">
|
||||||
|
<!-- -->
|
||||||
|
</a>
|
||||||
|
<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
|
||||||
|
<a id="navbar.top.firstrow">
|
||||||
|
<!-- -->
|
||||||
|
</a>
|
||||||
|
<ul class="navList" title="Navigation">
|
||||||
|
<li><a href="org/libjpegturbo/turbojpeg/package-summary.html">Package</a></li>
|
||||||
|
<li>Class</li>
|
||||||
|
<li><a href="org/libjpegturbo/turbojpeg/package-tree.html">Tree</a></li>
|
||||||
|
<li><a href="deprecated-list.html">Deprecated</a></li>
|
||||||
|
<li><a href="index-all.html">Index</a></li>
|
||||||
|
<li><a href="help-doc.html">Help</a></li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
<div class="subNav">
|
||||||
|
<ul class="navList" id="allclasses_navbar_top">
|
||||||
|
<li><a href="allclasses.html">All Classes</a></li>
|
||||||
|
</ul>
|
||||||
|
<ul class="navListSearch">
|
||||||
|
<li><label for="search">SEARCH:</label>
|
||||||
|
<input type="text" id="search" value="search" disabled="disabled">
|
||||||
|
<input type="reset" id="reset" value="reset" disabled="disabled">
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
<div>
|
||||||
|
<script type="text/javascript"><!--
|
||||||
|
allClassesLink = document.getElementById("allclasses_navbar_top");
|
||||||
|
if(window==top) {
|
||||||
|
allClassesLink.style.display = "block";
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
allClassesLink.style.display = "none";
|
||||||
|
}
|
||||||
|
//-->
|
||||||
|
</script>
|
||||||
|
<noscript>
|
||||||
|
<div>JavaScript is disabled on your browser.</div>
|
||||||
|
</noscript>
|
||||||
|
</div>
|
||||||
|
<a id="skip.navbar.top">
|
||||||
|
<!-- -->
|
||||||
|
</a></div>
|
||||||
|
<!-- ========= END OF TOP NAVBAR ========= -->
|
||||||
|
</div>
|
||||||
|
<div class="navPadding"> </div>
|
||||||
|
<script type="text/javascript"><!--
|
||||||
|
$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
|
||||||
|
//-->
|
||||||
|
</script>
|
||||||
|
</nav>
|
||||||
|
</header>
|
||||||
|
<main role="main">
|
||||||
|
<div class="header">
|
||||||
|
<h1 title="All&nbsp;Classes" class="title">All Classes</h1>
|
||||||
|
</div>
|
||||||
|
<div class="allClassesContainer">
|
||||||
|
<ul class="blockList">
|
||||||
|
<li class="blockList">
|
||||||
|
<table class="typeSummary">
|
||||||
|
<caption><span id="t0" class="activeTableTab"><span>All Classes</span><span class="tabEnd"> </span></span><span id="t1" class="tableTab"><span><a href="javascript:show(1);">Interface Summary</a></span><span class="tabEnd"> </span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Class Summary</a></span><span class="tabEnd"> </span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Exception Summary</a></span><span class="tabEnd"> </span></span></caption>
|
||||||
|
<tr>
|
||||||
|
<th class="colFirst" scope="col">Class</th>
|
||||||
|
<th class="colLast" scope="col">Description</th>
|
||||||
|
</tr>
|
||||||
|
<tr id="i0" class="altColor">
|
||||||
|
<td class="colFirst"><a href="org/libjpegturbo/turbojpeg/TJ.html" title="class in org.libjpegturbo.turbojpeg">TJ</a></td>
|
||||||
|
<th class="colLast" scope="row">
|
||||||
|
<div class="block">TurboJPEG utility class (cannot be instantiated)</div>
|
||||||
|
</th>
|
||||||
|
</tr>
|
||||||
|
<tr id="i1" class="rowColor">
|
||||||
|
<td class="colFirst"><a href="org/libjpegturbo/turbojpeg/TJCompressor.html" title="class in org.libjpegturbo.turbojpeg">TJCompressor</a></td>
|
||||||
|
<th class="colLast" scope="row">
|
||||||
|
<div class="block">TurboJPEG compressor</div>
|
||||||
|
</th>
|
||||||
|
</tr>
|
||||||
|
<tr id="i2" class="altColor">
|
||||||
|
<td class="colFirst"><a href="org/libjpegturbo/turbojpeg/TJCustomFilter.html" title="interface in org.libjpegturbo.turbojpeg">TJCustomFilter</a></td>
|
||||||
|
<th class="colLast" scope="row">
|
||||||
|
<div class="block">Custom filter callback interface</div>
|
||||||
|
</th>
|
||||||
|
</tr>
|
||||||
|
<tr id="i3" class="rowColor">
|
||||||
|
<td class="colFirst"><a href="org/libjpegturbo/turbojpeg/TJDecompressor.html" title="class in org.libjpegturbo.turbojpeg">TJDecompressor</a></td>
|
||||||
|
<th class="colLast" scope="row">
|
||||||
|
<div class="block">TurboJPEG decompressor</div>
|
||||||
|
</th>
|
||||||
|
</tr>
|
||||||
|
<tr id="i4" class="altColor">
|
||||||
|
<td class="colFirst"><a href="org/libjpegturbo/turbojpeg/TJException.html" title="class in org.libjpegturbo.turbojpeg">TJException</a></td>
|
||||||
|
<th class="colLast" scope="row"> </th>
|
||||||
|
</tr>
|
||||||
|
<tr id="i5" class="rowColor">
|
||||||
|
<td class="colFirst"><a href="org/libjpegturbo/turbojpeg/TJScalingFactor.html" title="class in org.libjpegturbo.turbojpeg">TJScalingFactor</a></td>
|
||||||
|
<th class="colLast" scope="row">
|
||||||
|
<div class="block">Fractional scaling factor</div>
|
||||||
|
</th>
|
||||||
|
</tr>
|
||||||
|
<tr id="i6" class="altColor">
|
||||||
|
<td class="colFirst"><a href="org/libjpegturbo/turbojpeg/TJTransform.html" title="class in org.libjpegturbo.turbojpeg">TJTransform</a></td>
|
||||||
|
<th class="colLast" scope="row">
|
||||||
|
<div class="block">Lossless transform parameters</div>
|
||||||
|
</th>
|
||||||
|
</tr>
|
||||||
|
<tr id="i7" class="rowColor">
|
||||||
|
<td class="colFirst"><a href="org/libjpegturbo/turbojpeg/TJTransformer.html" title="class in org.libjpegturbo.turbojpeg">TJTransformer</a></td>
|
||||||
|
<th class="colLast" scope="row">
|
||||||
|
<div class="block">TurboJPEG lossless transformer</div>
|
||||||
|
</th>
|
||||||
|
</tr>
|
||||||
|
<tr id="i8" class="altColor">
|
||||||
|
<td class="colFirst"><a href="org/libjpegturbo/turbojpeg/YUVImage.html" title="class in org.libjpegturbo.turbojpeg">YUVImage</a></td>
|
||||||
|
<th class="colLast" scope="row">
|
||||||
|
<div class="block">This class encapsulates a planar YUV image and the metadata
|
||||||
|
associated with it.</div>
|
||||||
|
</th>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
</main>
|
||||||
|
<footer role="contentinfo">
|
||||||
|
<nav role="navigation">
|
||||||
|
<!-- ======= START OF BOTTOM NAVBAR ====== -->
|
||||||
|
<div class="bottomNav"><a id="navbar.bottom">
|
||||||
|
<!-- -->
|
||||||
|
</a>
|
||||||
|
<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
|
||||||
|
<a id="navbar.bottom.firstrow">
|
||||||
|
<!-- -->
|
||||||
|
</a>
|
||||||
|
<ul class="navList" title="Navigation">
|
||||||
|
<li><a href="org/libjpegturbo/turbojpeg/package-summary.html">Package</a></li>
|
||||||
|
<li>Class</li>
|
||||||
|
<li><a href="org/libjpegturbo/turbojpeg/package-tree.html">Tree</a></li>
|
||||||
|
<li><a href="deprecated-list.html">Deprecated</a></li>
|
||||||
|
<li><a href="index-all.html">Index</a></li>
|
||||||
|
<li><a href="help-doc.html">Help</a></li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
<div class="subNav">
|
||||||
|
<ul class="navList" id="allclasses_navbar_bottom">
|
||||||
|
<li><a href="allclasses.html">All Classes</a></li>
|
||||||
|
</ul>
|
||||||
|
<div>
|
||||||
|
<script type="text/javascript"><!--
|
||||||
|
allClassesLink = document.getElementById("allclasses_navbar_bottom");
|
||||||
|
if(window==top) {
|
||||||
|
allClassesLink.style.display = "block";
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
allClassesLink.style.display = "none";
|
||||||
|
}
|
||||||
|
//-->
|
||||||
|
</script>
|
||||||
|
<noscript>
|
||||||
|
<div>JavaScript is disabled on your browser.</div>
|
||||||
|
</noscript>
|
||||||
|
</div>
|
||||||
|
<a id="skip.navbar.bottom">
|
||||||
|
<!-- -->
|
||||||
|
</a></div>
|
||||||
|
<!-- ======== END OF BOTTOM NAVBAR ======= -->
|
||||||
|
</nav>
|
||||||
|
</footer>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
@@ -1,17 +1,30 @@
|
|||||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
|
<!DOCTYPE HTML>
|
||||||
<!-- NewPage -->
|
<!-- NewPage -->
|
||||||
<html lang="en">
|
<html lang="en">
|
||||||
<head>
|
<head>
|
||||||
|
<!-- Generated by javadoc -->
|
||||||
<title>All Classes</title>
|
<title>All Classes</title>
|
||||||
|
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
|
||||||
<link rel="stylesheet" type="text/css" href="stylesheet.css" title="Style">
|
<link rel="stylesheet" type="text/css" href="stylesheet.css" title="Style">
|
||||||
|
<link rel="stylesheet" type="text/css" href="jquery/jquery-ui.min.css" title="Style">
|
||||||
|
<link rel="stylesheet" type="text/css" href="jquery-ui.overrides.css" title="Style">
|
||||||
|
<script type="text/javascript" src="script.js"></script>
|
||||||
|
<script type="text/javascript" src="jquery/jszip/dist/jszip.min.js"></script>
|
||||||
|
<script type="text/javascript" src="jquery/jszip-utils/dist/jszip-utils.min.js"></script>
|
||||||
|
<!--[if IE]>
|
||||||
|
<script type="text/javascript" src="jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
|
||||||
|
<![endif]-->
|
||||||
|
<script type="text/javascript" src="jquery/jquery-3.6.0.min.js"></script>
|
||||||
|
<script type="text/javascript" src="jquery/jquery-ui.min.js"></script>
|
||||||
</head>
|
</head>
|
||||||
<body>
|
<body>
|
||||||
<h1 class="bar">All Classes</h1>
|
<main role="main">
|
||||||
|
<h1 class="bar">All Classes</h1>
|
||||||
<div class="indexContainer">
|
<div class="indexContainer">
|
||||||
<ul>
|
<ul>
|
||||||
<li><a href="org/libjpegturbo/turbojpeg/TJ.html" title="class in org.libjpegturbo.turbojpeg">TJ</a></li>
|
<li><a href="org/libjpegturbo/turbojpeg/TJ.html" title="class in org.libjpegturbo.turbojpeg">TJ</a></li>
|
||||||
<li><a href="org/libjpegturbo/turbojpeg/TJCompressor.html" title="class in org.libjpegturbo.turbojpeg">TJCompressor</a></li>
|
<li><a href="org/libjpegturbo/turbojpeg/TJCompressor.html" title="class in org.libjpegturbo.turbojpeg">TJCompressor</a></li>
|
||||||
<li><a href="org/libjpegturbo/turbojpeg/TJCustomFilter.html" title="interface in org.libjpegturbo.turbojpeg"><i>TJCustomFilter</i></a></li>
|
<li><a href="org/libjpegturbo/turbojpeg/TJCustomFilter.html" title="interface in org.libjpegturbo.turbojpeg"><span class="interfaceName">TJCustomFilter</span></a></li>
|
||||||
<li><a href="org/libjpegturbo/turbojpeg/TJDecompressor.html" title="class in org.libjpegturbo.turbojpeg">TJDecompressor</a></li>
|
<li><a href="org/libjpegturbo/turbojpeg/TJDecompressor.html" title="class in org.libjpegturbo.turbojpeg">TJDecompressor</a></li>
|
||||||
<li><a href="org/libjpegturbo/turbojpeg/TJException.html" title="class in org.libjpegturbo.turbojpeg">TJException</a></li>
|
<li><a href="org/libjpegturbo/turbojpeg/TJException.html" title="class in org.libjpegturbo.turbojpeg">TJException</a></li>
|
||||||
<li><a href="org/libjpegturbo/turbojpeg/TJScalingFactor.html" title="class in org.libjpegturbo.turbojpeg">TJScalingFactor</a></li>
|
<li><a href="org/libjpegturbo/turbojpeg/TJScalingFactor.html" title="class in org.libjpegturbo.turbojpeg">TJScalingFactor</a></li>
|
||||||
@@ -20,5 +33,6 @@
|
|||||||
<li><a href="org/libjpegturbo/turbojpeg/YUVImage.html" title="class in org.libjpegturbo.turbojpeg">YUVImage</a></li>
|
<li><a href="org/libjpegturbo/turbojpeg/YUVImage.html" title="class in org.libjpegturbo.turbojpeg">YUVImage</a></li>
|
||||||
</ul>
|
</ul>
|
||||||
</div>
|
</div>
|
||||||
|
</main>
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
162
java/doc/allpackages-index.html
Normal file
162
java/doc/allpackages-index.html
Normal file
@@ -0,0 +1,162 @@
|
|||||||
|
<!DOCTYPE HTML>
|
||||||
|
<!-- NewPage -->
|
||||||
|
<html lang="en">
|
||||||
|
<head>
|
||||||
|
<!-- Generated by javadoc -->
|
||||||
|
<title>All Packages</title>
|
||||||
|
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
|
||||||
|
<link rel="stylesheet" type="text/css" href="stylesheet.css" title="Style">
|
||||||
|
<link rel="stylesheet" type="text/css" href="jquery/jquery-ui.min.css" title="Style">
|
||||||
|
<link rel="stylesheet" type="text/css" href="jquery-ui.overrides.css" title="Style">
|
||||||
|
<script type="text/javascript" src="script.js"></script>
|
||||||
|
<script type="text/javascript" src="jquery/jszip/dist/jszip.min.js"></script>
|
||||||
|
<script type="text/javascript" src="jquery/jszip-utils/dist/jszip-utils.min.js"></script>
|
||||||
|
<!--[if IE]>
|
||||||
|
<script type="text/javascript" src="jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
|
||||||
|
<![endif]-->
|
||||||
|
<script type="text/javascript" src="jquery/jquery-3.6.0.min.js"></script>
|
||||||
|
<script type="text/javascript" src="jquery/jquery-ui.min.js"></script>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<script type="text/javascript"><!--
|
||||||
|
try {
|
||||||
|
if (location.href.indexOf('is-external=true') == -1) {
|
||||||
|
parent.document.title="All Packages";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
catch(err) {
|
||||||
|
}
|
||||||
|
//-->
|
||||||
|
var pathtoroot = "./";
|
||||||
|
var useModuleDirectories = true;
|
||||||
|
loadScripts(document, 'script');</script>
|
||||||
|
<noscript>
|
||||||
|
<div>JavaScript is disabled on your browser.</div>
|
||||||
|
</noscript>
|
||||||
|
<header role="banner">
|
||||||
|
<nav role="navigation">
|
||||||
|
<div class="fixedNav">
|
||||||
|
<!-- ========= START OF TOP NAVBAR ======= -->
|
||||||
|
<div class="topNav"><a id="navbar.top">
|
||||||
|
<!-- -->
|
||||||
|
</a>
|
||||||
|
<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
|
||||||
|
<a id="navbar.top.firstrow">
|
||||||
|
<!-- -->
|
||||||
|
</a>
|
||||||
|
<ul class="navList" title="Navigation">
|
||||||
|
<li><a href="org/libjpegturbo/turbojpeg/package-summary.html">Package</a></li>
|
||||||
|
<li>Class</li>
|
||||||
|
<li><a href="org/libjpegturbo/turbojpeg/package-tree.html">Tree</a></li>
|
||||||
|
<li><a href="deprecated-list.html">Deprecated</a></li>
|
||||||
|
<li><a href="index-all.html">Index</a></li>
|
||||||
|
<li><a href="help-doc.html">Help</a></li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
<div class="subNav">
|
||||||
|
<ul class="navList" id="allclasses_navbar_top">
|
||||||
|
<li><a href="allclasses.html">All Classes</a></li>
|
||||||
|
</ul>
|
||||||
|
<ul class="navListSearch">
|
||||||
|
<li><label for="search">SEARCH:</label>
|
||||||
|
<input type="text" id="search" value="search" disabled="disabled">
|
||||||
|
<input type="reset" id="reset" value="reset" disabled="disabled">
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
<div>
|
||||||
|
<script type="text/javascript"><!--
|
||||||
|
allClassesLink = document.getElementById("allclasses_navbar_top");
|
||||||
|
if(window==top) {
|
||||||
|
allClassesLink.style.display = "block";
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
allClassesLink.style.display = "none";
|
||||||
|
}
|
||||||
|
//-->
|
||||||
|
</script>
|
||||||
|
<noscript>
|
||||||
|
<div>JavaScript is disabled on your browser.</div>
|
||||||
|
</noscript>
|
||||||
|
</div>
|
||||||
|
<a id="skip.navbar.top">
|
||||||
|
<!-- -->
|
||||||
|
</a></div>
|
||||||
|
<!-- ========= END OF TOP NAVBAR ========= -->
|
||||||
|
</div>
|
||||||
|
<div class="navPadding"> </div>
|
||||||
|
<script type="text/javascript"><!--
|
||||||
|
$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
|
||||||
|
//-->
|
||||||
|
</script>
|
||||||
|
</nav>
|
||||||
|
</header>
|
||||||
|
<main role="main">
|
||||||
|
<div class="header">
|
||||||
|
<h1 title="All&nbsp;Packages" class="title">All Packages</h1>
|
||||||
|
</div>
|
||||||
|
<div class="allPackagesContainer">
|
||||||
|
<ul class="blockList">
|
||||||
|
<li class="blockList">
|
||||||
|
<table class="packagesSummary">
|
||||||
|
<caption><span>Package Summary</span><span class="tabEnd"> </span></caption>
|
||||||
|
<tr>
|
||||||
|
<th class="colFirst" scope="col">Package</th>
|
||||||
|
<th class="colLast" scope="col">Description</th>
|
||||||
|
</tr>
|
||||||
|
<tbody>
|
||||||
|
<tr class="altColor">
|
||||||
|
<th class="colFirst" scope="row"><a href="org/libjpegturbo/turbojpeg/package-summary.html">org.libjpegturbo.turbojpeg</a></th>
|
||||||
|
<td class="colLast"> </td>
|
||||||
|
</tr>
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
</main>
|
||||||
|
<footer role="contentinfo">
|
||||||
|
<nav role="navigation">
|
||||||
|
<!-- ======= START OF BOTTOM NAVBAR ====== -->
|
||||||
|
<div class="bottomNav"><a id="navbar.bottom">
|
||||||
|
<!-- -->
|
||||||
|
</a>
|
||||||
|
<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
|
||||||
|
<a id="navbar.bottom.firstrow">
|
||||||
|
<!-- -->
|
||||||
|
</a>
|
||||||
|
<ul class="navList" title="Navigation">
|
||||||
|
<li><a href="org/libjpegturbo/turbojpeg/package-summary.html">Package</a></li>
|
||||||
|
<li>Class</li>
|
||||||
|
<li><a href="org/libjpegturbo/turbojpeg/package-tree.html">Tree</a></li>
|
||||||
|
<li><a href="deprecated-list.html">Deprecated</a></li>
|
||||||
|
<li><a href="index-all.html">Index</a></li>
|
||||||
|
<li><a href="help-doc.html">Help</a></li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
<div class="subNav">
|
||||||
|
<ul class="navList" id="allclasses_navbar_bottom">
|
||||||
|
<li><a href="allclasses.html">All Classes</a></li>
|
||||||
|
</ul>
|
||||||
|
<div>
|
||||||
|
<script type="text/javascript"><!--
|
||||||
|
allClassesLink = document.getElementById("allclasses_navbar_bottom");
|
||||||
|
if(window==top) {
|
||||||
|
allClassesLink.style.display = "block";
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
allClassesLink.style.display = "none";
|
||||||
|
}
|
||||||
|
//-->
|
||||||
|
</script>
|
||||||
|
<noscript>
|
||||||
|
<div>JavaScript is disabled on your browser.</div>
|
||||||
|
</noscript>
|
||||||
|
</div>
|
||||||
|
<a id="skip.navbar.bottom">
|
||||||
|
<!-- -->
|
||||||
|
</a></div>
|
||||||
|
<!-- ======== END OF BOTTOM NAVBAR ======= -->
|
||||||
|
</nav>
|
||||||
|
</footer>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
@@ -1,9 +1,21 @@
|
|||||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
|
<!DOCTYPE HTML>
|
||||||
<!-- NewPage -->
|
<!-- NewPage -->
|
||||||
<html lang="en">
|
<html lang="en">
|
||||||
<head>
|
<head>
|
||||||
|
<!-- Generated by javadoc -->
|
||||||
<title>Constant Field Values</title>
|
<title>Constant Field Values</title>
|
||||||
|
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
|
||||||
<link rel="stylesheet" type="text/css" href="stylesheet.css" title="Style">
|
<link rel="stylesheet" type="text/css" href="stylesheet.css" title="Style">
|
||||||
|
<link rel="stylesheet" type="text/css" href="jquery/jquery-ui.min.css" title="Style">
|
||||||
|
<link rel="stylesheet" type="text/css" href="jquery-ui.overrides.css" title="Style">
|
||||||
|
<script type="text/javascript" src="script.js"></script>
|
||||||
|
<script type="text/javascript" src="jquery/jszip/dist/jszip.min.js"></script>
|
||||||
|
<script type="text/javascript" src="jquery/jszip-utils/dist/jszip-utils.min.js"></script>
|
||||||
|
<!--[if IE]>
|
||||||
|
<script type="text/javascript" src="jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
|
||||||
|
<![endif]-->
|
||||||
|
<script type="text/javascript" src="jquery/jquery-3.6.0.min.js"></script>
|
||||||
|
<script type="text/javascript" src="jquery/jquery-ui.min.js"></script>
|
||||||
</head>
|
</head>
|
||||||
<body>
|
<body>
|
||||||
<script type="text/javascript"><!--
|
<script type="text/javascript"><!--
|
||||||
@@ -15,14 +27,21 @@
|
|||||||
catch(err) {
|
catch(err) {
|
||||||
}
|
}
|
||||||
//-->
|
//-->
|
||||||
</script>
|
var pathtoroot = "./";
|
||||||
|
var useModuleDirectories = true;
|
||||||
|
loadScripts(document, 'script');</script>
|
||||||
<noscript>
|
<noscript>
|
||||||
<div>JavaScript is disabled on your browser.</div>
|
<div>JavaScript is disabled on your browser.</div>
|
||||||
</noscript>
|
</noscript>
|
||||||
|
<header role="banner">
|
||||||
|
<nav role="navigation">
|
||||||
|
<div class="fixedNav">
|
||||||
<!-- ========= START OF TOP NAVBAR ======= -->
|
<!-- ========= START OF TOP NAVBAR ======= -->
|
||||||
<div class="topNav"><a name="navbar_top">
|
<div class="topNav"><a id="navbar.top">
|
||||||
<!-- -->
|
<!-- -->
|
||||||
</a><a href="#skip-navbar_top" title="Skip navigation links"></a><a name="navbar_top_firstrow">
|
</a>
|
||||||
|
<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
|
||||||
|
<a id="navbar.top.firstrow">
|
||||||
<!-- -->
|
<!-- -->
|
||||||
</a>
|
</a>
|
||||||
<ul class="navList" title="Navigation">
|
<ul class="navList" title="Navigation">
|
||||||
@@ -35,16 +54,14 @@
|
|||||||
</ul>
|
</ul>
|
||||||
</div>
|
</div>
|
||||||
<div class="subNav">
|
<div class="subNav">
|
||||||
<ul class="navList">
|
|
||||||
<li>Prev</li>
|
|
||||||
<li>Next</li>
|
|
||||||
</ul>
|
|
||||||
<ul class="navList">
|
|
||||||
<li><a href="index.html?constant-values.html" target="_top">Frames</a></li>
|
|
||||||
<li><a href="constant-values.html" target="_top">No Frames</a></li>
|
|
||||||
</ul>
|
|
||||||
<ul class="navList" id="allclasses_navbar_top">
|
<ul class="navList" id="allclasses_navbar_top">
|
||||||
<li><a href="allclasses-noframe.html">All Classes</a></li>
|
<li><a href="allclasses.html">All Classes</a></li>
|
||||||
|
</ul>
|
||||||
|
<ul class="navListSearch">
|
||||||
|
<li><label for="search">SEARCH:</label>
|
||||||
|
<input type="text" id="search" value="search" disabled="disabled">
|
||||||
|
<input type="reset" id="reset" value="reset" disabled="disabled">
|
||||||
|
</li>
|
||||||
</ul>
|
</ul>
|
||||||
<div>
|
<div>
|
||||||
<script type="text/javascript"><!--
|
<script type="text/javascript"><!--
|
||||||
@@ -57,445 +74,620 @@
|
|||||||
}
|
}
|
||||||
//-->
|
//-->
|
||||||
</script>
|
</script>
|
||||||
|
<noscript>
|
||||||
|
<div>JavaScript is disabled on your browser.</div>
|
||||||
|
</noscript>
|
||||||
</div>
|
</div>
|
||||||
<a name="skip-navbar_top">
|
<a id="skip.navbar.top">
|
||||||
<!-- -->
|
<!-- -->
|
||||||
</a></div>
|
</a></div>
|
||||||
<!-- ========= END OF TOP NAVBAR ========= -->
|
<!-- ========= END OF TOP NAVBAR ========= -->
|
||||||
|
</div>
|
||||||
|
<div class="navPadding"> </div>
|
||||||
|
<script type="text/javascript"><!--
|
||||||
|
$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
|
||||||
|
//-->
|
||||||
|
</script>
|
||||||
|
</nav>
|
||||||
|
</header>
|
||||||
|
<main role="main">
|
||||||
<div class="header">
|
<div class="header">
|
||||||
<h1 title="Constant Field Values" class="title">Constant Field Values</h1>
|
<h1 title="Constant Field Values" class="title">Constant Field Values</h1>
|
||||||
|
<section>
|
||||||
<h2 title="Contents">Contents</h2>
|
<h2 title="Contents">Contents</h2>
|
||||||
<ul>
|
<ul>
|
||||||
<li><a href="#org.libjpegturbo">org.libjpegturbo.*</a></li>
|
<li><a href="#org.libjpegturbo">org.libjpegturbo.*</a></li>
|
||||||
</ul>
|
</ul>
|
||||||
|
</section>
|
||||||
</div>
|
</div>
|
||||||
<div class="constantValuesContainer"><a name="org.libjpegturbo">
|
<div class="constantValuesContainer"><a id="org.libjpegturbo">
|
||||||
<!-- -->
|
<!-- -->
|
||||||
</a>
|
</a>
|
||||||
|
<section>
|
||||||
<h2 title="org.libjpegturbo">org.libjpegturbo.*</h2>
|
<h2 title="org.libjpegturbo">org.libjpegturbo.*</h2>
|
||||||
<ul class="blockList">
|
<ul class="blockList">
|
||||||
<li class="blockList">
|
<li class="blockList">
|
||||||
<table border="0" cellpadding="3" cellspacing="0" summary="Constant Field Values table, listing constant fields, and values">
|
<table class="constantsSummary">
|
||||||
<caption><span>org.libjpegturbo.turbojpeg.<a href="org/libjpegturbo/turbojpeg/TJ.html" title="class in org.libjpegturbo.turbojpeg">TJ</a></span><span class="tabEnd"> </span></caption>
|
<caption><span>org.libjpegturbo.turbojpeg.<a href="org/libjpegturbo/turbojpeg/TJ.html" title="class in org.libjpegturbo.turbojpeg">TJ</a></span><span class="tabEnd"> </span></caption>
|
||||||
<tr>
|
<tr>
|
||||||
<th class="colFirst" scope="col">Modifier and Type</th>
|
<th class="colFirst" scope="col">Modifier and Type</th>
|
||||||
<th scope="col">Constant Field</th>
|
<th class="colSecond" scope="col">Constant Field</th>
|
||||||
<th class="colLast" scope="col">Value</th>
|
<th class="colLast" scope="col">Value</th>
|
||||||
</tr>
|
</tr>
|
||||||
<tbody>
|
<tbody>
|
||||||
<tr class="altColor">
|
<tr class="altColor">
|
||||||
<td class="colFirst"><a name="org.libjpegturbo.turbojpeg.TJ.CS_CMYK">
|
<td class="colFirst"><a id="org.libjpegturbo.turbojpeg.TJ.CS_CMYK">
|
||||||
<!-- -->
|
<!-- -->
|
||||||
</a><code>public static final int</code></td>
|
</a><code>public static final int</code></td>
|
||||||
<td><code><a href="org/libjpegturbo/turbojpeg/TJ.html#CS_CMYK">CS_CMYK</a></code></td>
|
<th class="colSecond" scope="row"><code><a href="org/libjpegturbo/turbojpeg/TJ.html#CS_CMYK">CS_CMYK</a></code></th>
|
||||||
<td class="colLast"><code>3</code></td>
|
<td class="colLast"><code>3</code></td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr class="rowColor">
|
<tr class="rowColor">
|
||||||
<td class="colFirst"><a name="org.libjpegturbo.turbojpeg.TJ.CS_GRAY">
|
<td class="colFirst"><a id="org.libjpegturbo.turbojpeg.TJ.CS_GRAY">
|
||||||
<!-- -->
|
<!-- -->
|
||||||
</a><code>public static final int</code></td>
|
</a><code>public static final int</code></td>
|
||||||
<td><code><a href="org/libjpegturbo/turbojpeg/TJ.html#CS_GRAY">CS_GRAY</a></code></td>
|
<th class="colSecond" scope="row"><code><a href="org/libjpegturbo/turbojpeg/TJ.html#CS_GRAY">CS_GRAY</a></code></th>
|
||||||
<td class="colLast"><code>2</code></td>
|
<td class="colLast"><code>2</code></td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr class="altColor">
|
<tr class="altColor">
|
||||||
<td class="colFirst"><a name="org.libjpegturbo.turbojpeg.TJ.CS_RGB">
|
<td class="colFirst"><a id="org.libjpegturbo.turbojpeg.TJ.CS_RGB">
|
||||||
<!-- -->
|
<!-- -->
|
||||||
</a><code>public static final int</code></td>
|
</a><code>public static final int</code></td>
|
||||||
<td><code><a href="org/libjpegturbo/turbojpeg/TJ.html#CS_RGB">CS_RGB</a></code></td>
|
<th class="colSecond" scope="row"><code><a href="org/libjpegturbo/turbojpeg/TJ.html#CS_RGB">CS_RGB</a></code></th>
|
||||||
<td class="colLast"><code>0</code></td>
|
<td class="colLast"><code>0</code></td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr class="rowColor">
|
<tr class="rowColor">
|
||||||
<td class="colFirst"><a name="org.libjpegturbo.turbojpeg.TJ.CS_YCbCr">
|
<td class="colFirst"><a id="org.libjpegturbo.turbojpeg.TJ.CS_YCbCr">
|
||||||
<!-- -->
|
<!-- -->
|
||||||
</a><code>public static final int</code></td>
|
</a><code>public static final int</code></td>
|
||||||
<td><code><a href="org/libjpegturbo/turbojpeg/TJ.html#CS_YCbCr">CS_YCbCr</a></code></td>
|
<th class="colSecond" scope="row"><code><a href="org/libjpegturbo/turbojpeg/TJ.html#CS_YCbCr">CS_YCbCr</a></code></th>
|
||||||
<td class="colLast"><code>1</code></td>
|
<td class="colLast"><code>1</code></td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr class="altColor">
|
<tr class="altColor">
|
||||||
<td class="colFirst"><a name="org.libjpegturbo.turbojpeg.TJ.CS_YCCK">
|
<td class="colFirst"><a id="org.libjpegturbo.turbojpeg.TJ.CS_YCCK">
|
||||||
<!-- -->
|
<!-- -->
|
||||||
</a><code>public static final int</code></td>
|
</a><code>public static final int</code></td>
|
||||||
<td><code><a href="org/libjpegturbo/turbojpeg/TJ.html#CS_YCCK">CS_YCCK</a></code></td>
|
<th class="colSecond" scope="row"><code><a href="org/libjpegturbo/turbojpeg/TJ.html#CS_YCCK">CS_YCCK</a></code></th>
|
||||||
<td class="colLast"><code>4</code></td>
|
<td class="colLast"><code>4</code></td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr class="rowColor">
|
<tr class="rowColor">
|
||||||
<td class="colFirst"><a name="org.libjpegturbo.turbojpeg.TJ.ERR_FATAL">
|
<td class="colFirst"><a id="org.libjpegturbo.turbojpeg.TJ.ERR_FATAL">
|
||||||
<!-- -->
|
<!-- -->
|
||||||
</a><code>public static final int</code></td>
|
</a><code>public static final int</code></td>
|
||||||
<td><code><a href="org/libjpegturbo/turbojpeg/TJ.html#ERR_FATAL">ERR_FATAL</a></code></td>
|
<th class="colSecond" scope="row"><code><a href="org/libjpegturbo/turbojpeg/TJ.html#ERR_FATAL">ERR_FATAL</a></code></th>
|
||||||
<td class="colLast"><code>1</code></td>
|
<td class="colLast"><code>1</code></td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr class="altColor">
|
<tr class="altColor">
|
||||||
<td class="colFirst"><a name="org.libjpegturbo.turbojpeg.TJ.ERR_WARNING">
|
<td class="colFirst"><a id="org.libjpegturbo.turbojpeg.TJ.ERR_WARNING">
|
||||||
<!-- -->
|
<!-- -->
|
||||||
</a><code>public static final int</code></td>
|
</a><code>public static final int</code></td>
|
||||||
<td><code><a href="org/libjpegturbo/turbojpeg/TJ.html#ERR_WARNING">ERR_WARNING</a></code></td>
|
<th class="colSecond" scope="row"><code><a href="org/libjpegturbo/turbojpeg/TJ.html#ERR_WARNING">ERR_WARNING</a></code></th>
|
||||||
<td class="colLast"><code>0</code></td>
|
<td class="colLast"><code>0</code></td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr class="rowColor">
|
<tr class="rowColor">
|
||||||
<td class="colFirst"><a name="org.libjpegturbo.turbojpeg.TJ.FLAG_ACCURATEDCT">
|
<td class="colFirst"><a id="org.libjpegturbo.turbojpeg.TJ.FLAG_ACCURATEDCT">
|
||||||
<!-- -->
|
<!-- -->
|
||||||
</a><code>public static final int</code></td>
|
</a><code>public static final int</code></td>
|
||||||
<td><code><a href="org/libjpegturbo/turbojpeg/TJ.html#FLAG_ACCURATEDCT">FLAG_ACCURATEDCT</a></code></td>
|
<th class="colSecond" scope="row"><code><a href="org/libjpegturbo/turbojpeg/TJ.html#FLAG_ACCURATEDCT">FLAG_ACCURATEDCT</a></code></th>
|
||||||
<td class="colLast"><code>4096</code></td>
|
<td class="colLast"><code>4096</code></td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr class="altColor">
|
<tr class="altColor">
|
||||||
<td class="colFirst"><a name="org.libjpegturbo.turbojpeg.TJ.FLAG_BOTTOMUP">
|
<td class="colFirst"><a id="org.libjpegturbo.turbojpeg.TJ.FLAG_BOTTOMUP">
|
||||||
<!-- -->
|
<!-- -->
|
||||||
</a><code>public static final int</code></td>
|
</a><code>public static final int</code></td>
|
||||||
<td><code><a href="org/libjpegturbo/turbojpeg/TJ.html#FLAG_BOTTOMUP">FLAG_BOTTOMUP</a></code></td>
|
<th class="colSecond" scope="row"><code><a href="org/libjpegturbo/turbojpeg/TJ.html#FLAG_BOTTOMUP">FLAG_BOTTOMUP</a></code></th>
|
||||||
<td class="colLast"><code>2</code></td>
|
<td class="colLast"><code>2</code></td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr class="rowColor">
|
<tr class="rowColor">
|
||||||
<td class="colFirst"><a name="org.libjpegturbo.turbojpeg.TJ.FLAG_FASTDCT">
|
<td class="colFirst"><a id="org.libjpegturbo.turbojpeg.TJ.FLAG_FASTDCT">
|
||||||
<!-- -->
|
<!-- -->
|
||||||
</a><code>public static final int</code></td>
|
</a><code>public static final int</code></td>
|
||||||
<td><code><a href="org/libjpegturbo/turbojpeg/TJ.html#FLAG_FASTDCT">FLAG_FASTDCT</a></code></td>
|
<th class="colSecond" scope="row"><code><a href="org/libjpegturbo/turbojpeg/TJ.html#FLAG_FASTDCT">FLAG_FASTDCT</a></code></th>
|
||||||
<td class="colLast"><code>2048</code></td>
|
<td class="colLast"><code>2048</code></td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr class="altColor">
|
<tr class="altColor">
|
||||||
<td class="colFirst"><a name="org.libjpegturbo.turbojpeg.TJ.FLAG_FASTUPSAMPLE">
|
<td class="colFirst"><a id="org.libjpegturbo.turbojpeg.TJ.FLAG_FASTUPSAMPLE">
|
||||||
<!-- -->
|
<!-- -->
|
||||||
</a><code>public static final int</code></td>
|
</a><code>public static final int</code></td>
|
||||||
<td><code><a href="org/libjpegturbo/turbojpeg/TJ.html#FLAG_FASTUPSAMPLE">FLAG_FASTUPSAMPLE</a></code></td>
|
<th class="colSecond" scope="row"><code><a href="org/libjpegturbo/turbojpeg/TJ.html#FLAG_FASTUPSAMPLE">FLAG_FASTUPSAMPLE</a></code></th>
|
||||||
<td class="colLast"><code>256</code></td>
|
<td class="colLast"><code>256</code></td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr class="rowColor">
|
<tr class="rowColor">
|
||||||
<td class="colFirst"><a name="org.libjpegturbo.turbojpeg.TJ.FLAG_FORCEMMX">
|
<td class="colFirst"><a id="org.libjpegturbo.turbojpeg.TJ.FLAG_LIMITSCANS">
|
||||||
<!-- -->
|
<!-- -->
|
||||||
</a><code>public static final int</code></td>
|
</a><code>public static final int</code></td>
|
||||||
<td><code><a href="org/libjpegturbo/turbojpeg/TJ.html#FLAG_FORCEMMX">FLAG_FORCEMMX</a></code></td>
|
<th class="colSecond" scope="row"><code><a href="org/libjpegturbo/turbojpeg/TJ.html#FLAG_LIMITSCANS">FLAG_LIMITSCANS</a></code></th>
|
||||||
<td class="colLast"><code>8</code></td>
|
|
||||||
</tr>
|
|
||||||
<tr class="altColor">
|
|
||||||
<td class="colFirst"><a name="org.libjpegturbo.turbojpeg.TJ.FLAG_FORCESSE">
|
|
||||||
<!-- -->
|
|
||||||
</a><code>public static final int</code></td>
|
|
||||||
<td><code><a href="org/libjpegturbo/turbojpeg/TJ.html#FLAG_FORCESSE">FLAG_FORCESSE</a></code></td>
|
|
||||||
<td class="colLast"><code>16</code></td>
|
|
||||||
</tr>
|
|
||||||
<tr class="rowColor">
|
|
||||||
<td class="colFirst"><a name="org.libjpegturbo.turbojpeg.TJ.FLAG_FORCESSE2">
|
|
||||||
<!-- -->
|
|
||||||
</a><code>public static final int</code></td>
|
|
||||||
<td><code><a href="org/libjpegturbo/turbojpeg/TJ.html#FLAG_FORCESSE2">FLAG_FORCESSE2</a></code></td>
|
|
||||||
<td class="colLast"><code>32</code></td>
|
|
||||||
</tr>
|
|
||||||
<tr class="altColor">
|
|
||||||
<td class="colFirst"><a name="org.libjpegturbo.turbojpeg.TJ.FLAG_FORCESSE3">
|
|
||||||
<!-- -->
|
|
||||||
</a><code>public static final int</code></td>
|
|
||||||
<td><code><a href="org/libjpegturbo/turbojpeg/TJ.html#FLAG_FORCESSE3">FLAG_FORCESSE3</a></code></td>
|
|
||||||
<td class="colLast"><code>128</code></td>
|
|
||||||
</tr>
|
|
||||||
<tr class="rowColor">
|
|
||||||
<td class="colFirst"><a name="org.libjpegturbo.turbojpeg.TJ.FLAG_LIMITSCANS">
|
|
||||||
<!-- -->
|
|
||||||
</a><code>public static final int</code></td>
|
|
||||||
<td><code><a href="org/libjpegturbo/turbojpeg/TJ.html#FLAG_LIMITSCANS">FLAG_LIMITSCANS</a></code></td>
|
|
||||||
<td class="colLast"><code>32768</code></td>
|
<td class="colLast"><code>32768</code></td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr class="altColor">
|
<tr class="altColor">
|
||||||
<td class="colFirst"><a name="org.libjpegturbo.turbojpeg.TJ.FLAG_PROGRESSIVE">
|
<td class="colFirst"><a id="org.libjpegturbo.turbojpeg.TJ.FLAG_PROGRESSIVE">
|
||||||
<!-- -->
|
<!-- -->
|
||||||
</a><code>public static final int</code></td>
|
</a><code>public static final int</code></td>
|
||||||
<td><code><a href="org/libjpegturbo/turbojpeg/TJ.html#FLAG_PROGRESSIVE">FLAG_PROGRESSIVE</a></code></td>
|
<th class="colSecond" scope="row"><code><a href="org/libjpegturbo/turbojpeg/TJ.html#FLAG_PROGRESSIVE">FLAG_PROGRESSIVE</a></code></th>
|
||||||
<td class="colLast"><code>16384</code></td>
|
<td class="colLast"><code>16384</code></td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr class="rowColor">
|
<tr class="rowColor">
|
||||||
<td class="colFirst"><a name="org.libjpegturbo.turbojpeg.TJ.FLAG_STOPONWARNING">
|
<td class="colFirst"><a id="org.libjpegturbo.turbojpeg.TJ.FLAG_STOPONWARNING">
|
||||||
<!-- -->
|
<!-- -->
|
||||||
</a><code>public static final int</code></td>
|
</a><code>public static final int</code></td>
|
||||||
<td><code><a href="org/libjpegturbo/turbojpeg/TJ.html#FLAG_STOPONWARNING">FLAG_STOPONWARNING</a></code></td>
|
<th class="colSecond" scope="row"><code><a href="org/libjpegturbo/turbojpeg/TJ.html#FLAG_STOPONWARNING">FLAG_STOPONWARNING</a></code></th>
|
||||||
<td class="colLast"><code>8192</code></td>
|
<td class="colLast"><code>8192</code></td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr class="altColor">
|
<tr class="altColor">
|
||||||
<td class="colFirst"><a name="org.libjpegturbo.turbojpeg.TJ.NUMCS">
|
<td class="colFirst"><a id="org.libjpegturbo.turbojpeg.TJ.NUMCS">
|
||||||
<!-- -->
|
<!-- -->
|
||||||
</a><code>public static final int</code></td>
|
</a><code>public static final int</code></td>
|
||||||
<td><code><a href="org/libjpegturbo/turbojpeg/TJ.html#NUMCS">NUMCS</a></code></td>
|
<th class="colSecond" scope="row"><code><a href="org/libjpegturbo/turbojpeg/TJ.html#NUMCS">NUMCS</a></code></th>
|
||||||
<td class="colLast"><code>5</code></td>
|
<td class="colLast"><code>5</code></td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr class="rowColor">
|
<tr class="rowColor">
|
||||||
<td class="colFirst"><a name="org.libjpegturbo.turbojpeg.TJ.NUMERR">
|
<td class="colFirst"><a id="org.libjpegturbo.turbojpeg.TJ.NUMERR">
|
||||||
<!-- -->
|
<!-- -->
|
||||||
</a><code>public static final int</code></td>
|
</a><code>public static final int</code></td>
|
||||||
<td><code><a href="org/libjpegturbo/turbojpeg/TJ.html#NUMERR">NUMERR</a></code></td>
|
<th class="colSecond" scope="row"><code><a href="org/libjpegturbo/turbojpeg/TJ.html#NUMERR">NUMERR</a></code></th>
|
||||||
<td class="colLast"><code>2</code></td>
|
<td class="colLast"><code>2</code></td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr class="altColor">
|
<tr class="altColor">
|
||||||
<td class="colFirst"><a name="org.libjpegturbo.turbojpeg.TJ.NUMPF">
|
<td class="colFirst"><a id="org.libjpegturbo.turbojpeg.TJ.NUMPF">
|
||||||
<!-- -->
|
<!-- -->
|
||||||
</a><code>public static final int</code></td>
|
</a><code>public static final int</code></td>
|
||||||
<td><code><a href="org/libjpegturbo/turbojpeg/TJ.html#NUMPF">NUMPF</a></code></td>
|
<th class="colSecond" scope="row"><code><a href="org/libjpegturbo/turbojpeg/TJ.html#NUMPF">NUMPF</a></code></th>
|
||||||
<td class="colLast"><code>12</code></td>
|
<td class="colLast"><code>12</code></td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr class="rowColor">
|
<tr class="rowColor">
|
||||||
<td class="colFirst"><a name="org.libjpegturbo.turbojpeg.TJ.NUMSAMP">
|
<td class="colFirst"><a id="org.libjpegturbo.turbojpeg.TJ.NUMSAMP">
|
||||||
<!-- -->
|
<!-- -->
|
||||||
</a><code>public static final int</code></td>
|
</a><code>public static final int</code></td>
|
||||||
<td><code><a href="org/libjpegturbo/turbojpeg/TJ.html#NUMSAMP">NUMSAMP</a></code></td>
|
<th class="colSecond" scope="row"><code><a href="org/libjpegturbo/turbojpeg/TJ.html#NUMSAMP">NUMSAMP</a></code></th>
|
||||||
<td class="colLast"><code>6</code></td>
|
<td class="colLast"><code>7</code></td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr class="altColor">
|
<tr class="altColor">
|
||||||
<td class="colFirst"><a name="org.libjpegturbo.turbojpeg.TJ.PF_ABGR">
|
<td class="colFirst"><a id="org.libjpegturbo.turbojpeg.TJ.PARAM_ARITHMETIC">
|
||||||
<!-- -->
|
<!-- -->
|
||||||
</a><code>public static final int</code></td>
|
</a><code>public static final int</code></td>
|
||||||
<td><code><a href="org/libjpegturbo/turbojpeg/TJ.html#PF_ABGR">PF_ABGR</a></code></td>
|
<th class="colSecond" scope="row"><code><a href="org/libjpegturbo/turbojpeg/TJ.html#PARAM_ARITHMETIC">PARAM_ARITHMETIC</a></code></th>
|
||||||
<td class="colLast"><code>9</code></td>
|
<td class="colLast"><code>14</code></td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr class="rowColor">
|
<tr class="rowColor">
|
||||||
<td class="colFirst"><a name="org.libjpegturbo.turbojpeg.TJ.PF_ARGB">
|
<td class="colFirst"><a id="org.libjpegturbo.turbojpeg.TJ.PARAM_BOTTOMUP">
|
||||||
<!-- -->
|
<!-- -->
|
||||||
</a><code>public static final int</code></td>
|
</a><code>public static final int</code></td>
|
||||||
<td><code><a href="org/libjpegturbo/turbojpeg/TJ.html#PF_ARGB">PF_ARGB</a></code></td>
|
<th class="colSecond" scope="row"><code><a href="org/libjpegturbo/turbojpeg/TJ.html#PARAM_BOTTOMUP">PARAM_BOTTOMUP</a></code></th>
|
||||||
<td class="colLast"><code>10</code></td>
|
|
||||||
</tr>
|
|
||||||
<tr class="altColor">
|
|
||||||
<td class="colFirst"><a name="org.libjpegturbo.turbojpeg.TJ.PF_BGR">
|
|
||||||
<!-- -->
|
|
||||||
</a><code>public static final int</code></td>
|
|
||||||
<td><code><a href="org/libjpegturbo/turbojpeg/TJ.html#PF_BGR">PF_BGR</a></code></td>
|
|
||||||
<td class="colLast"><code>1</code></td>
|
<td class="colLast"><code>1</code></td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr class="rowColor">
|
<tr class="altColor">
|
||||||
<td class="colFirst"><a name="org.libjpegturbo.turbojpeg.TJ.PF_BGRA">
|
<td class="colFirst"><a id="org.libjpegturbo.turbojpeg.TJ.PARAM_COLORSPACE">
|
||||||
<!-- -->
|
<!-- -->
|
||||||
</a><code>public static final int</code></td>
|
</a><code>public static final int</code></td>
|
||||||
<td><code><a href="org/libjpegturbo/turbojpeg/TJ.html#PF_BGRA">PF_BGRA</a></code></td>
|
<th class="colSecond" scope="row"><code><a href="org/libjpegturbo/turbojpeg/TJ.html#PARAM_COLORSPACE">PARAM_COLORSPACE</a></code></th>
|
||||||
<td class="colLast"><code>8</code></td>
|
<td class="colLast"><code>8</code></td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr class="altColor">
|
<tr class="rowColor">
|
||||||
<td class="colFirst"><a name="org.libjpegturbo.turbojpeg.TJ.PF_BGRX">
|
<td class="colFirst"><a id="org.libjpegturbo.turbojpeg.TJ.PARAM_DENSITYUNITS">
|
||||||
<!-- -->
|
<!-- -->
|
||||||
</a><code>public static final int</code></td>
|
</a><code>public static final int</code></td>
|
||||||
<td><code><a href="org/libjpegturbo/turbojpeg/TJ.html#PF_BGRX">PF_BGRX</a></code></td>
|
<th class="colSecond" scope="row"><code><a href="org/libjpegturbo/turbojpeg/TJ.html#PARAM_DENSITYUNITS">PARAM_DENSITYUNITS</a></code></th>
|
||||||
<td class="colLast"><code>3</code></td>
|
<td class="colLast"><code>22</code></td>
|
||||||
|
</tr>
|
||||||
|
<tr class="altColor">
|
||||||
|
<td class="colFirst"><a id="org.libjpegturbo.turbojpeg.TJ.PARAM_FASTDCT">
|
||||||
|
<!-- -->
|
||||||
|
</a><code>public static final int</code></td>
|
||||||
|
<th class="colSecond" scope="row"><code><a href="org/libjpegturbo/turbojpeg/TJ.html#PARAM_FASTDCT">PARAM_FASTDCT</a></code></th>
|
||||||
|
<td class="colLast"><code>10</code></td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr class="rowColor">
|
<tr class="rowColor">
|
||||||
<td class="colFirst"><a name="org.libjpegturbo.turbojpeg.TJ.PF_CMYK">
|
<td class="colFirst"><a id="org.libjpegturbo.turbojpeg.TJ.PARAM_FASTUPSAMPLE">
|
||||||
<!-- -->
|
<!-- -->
|
||||||
</a><code>public static final int</code></td>
|
</a><code>public static final int</code></td>
|
||||||
<td><code><a href="org/libjpegturbo/turbojpeg/TJ.html#PF_CMYK">PF_CMYK</a></code></td>
|
<th class="colSecond" scope="row"><code><a href="org/libjpegturbo/turbojpeg/TJ.html#PARAM_FASTUPSAMPLE">PARAM_FASTUPSAMPLE</a></code></th>
|
||||||
|
<td class="colLast"><code>9</code></td>
|
||||||
|
</tr>
|
||||||
|
<tr class="altColor">
|
||||||
|
<td class="colFirst"><a id="org.libjpegturbo.turbojpeg.TJ.PARAM_JPEGHEIGHT">
|
||||||
|
<!-- -->
|
||||||
|
</a><code>public static final int</code></td>
|
||||||
|
<th class="colSecond" scope="row"><code><a href="org/libjpegturbo/turbojpeg/TJ.html#PARAM_JPEGHEIGHT">PARAM_JPEGHEIGHT</a></code></th>
|
||||||
|
<td class="colLast"><code>6</code></td>
|
||||||
|
</tr>
|
||||||
|
<tr class="rowColor">
|
||||||
|
<td class="colFirst"><a id="org.libjpegturbo.turbojpeg.TJ.PARAM_JPEGWIDTH">
|
||||||
|
<!-- -->
|
||||||
|
</a><code>public static final int</code></td>
|
||||||
|
<th class="colSecond" scope="row"><code><a href="org/libjpegturbo/turbojpeg/TJ.html#PARAM_JPEGWIDTH">PARAM_JPEGWIDTH</a></code></th>
|
||||||
|
<td class="colLast"><code>5</code></td>
|
||||||
|
</tr>
|
||||||
|
<tr class="altColor">
|
||||||
|
<td class="colFirst"><a id="org.libjpegturbo.turbojpeg.TJ.PARAM_LOSSLESS">
|
||||||
|
<!-- -->
|
||||||
|
</a><code>public static final int</code></td>
|
||||||
|
<th class="colSecond" scope="row"><code><a href="org/libjpegturbo/turbojpeg/TJ.html#PARAM_LOSSLESS">PARAM_LOSSLESS</a></code></th>
|
||||||
|
<td class="colLast"><code>15</code></td>
|
||||||
|
</tr>
|
||||||
|
<tr class="rowColor">
|
||||||
|
<td class="colFirst"><a id="org.libjpegturbo.turbojpeg.TJ.PARAM_LOSSLESSPSV">
|
||||||
|
<!-- -->
|
||||||
|
</a><code>public static final int</code></td>
|
||||||
|
<th class="colSecond" scope="row"><code><a href="org/libjpegturbo/turbojpeg/TJ.html#PARAM_LOSSLESSPSV">PARAM_LOSSLESSPSV</a></code></th>
|
||||||
|
<td class="colLast"><code>16</code></td>
|
||||||
|
</tr>
|
||||||
|
<tr class="altColor">
|
||||||
|
<td class="colFirst"><a id="org.libjpegturbo.turbojpeg.TJ.PARAM_LOSSLESSPT">
|
||||||
|
<!-- -->
|
||||||
|
</a><code>public static final int</code></td>
|
||||||
|
<th class="colSecond" scope="row"><code><a href="org/libjpegturbo/turbojpeg/TJ.html#PARAM_LOSSLESSPT">PARAM_LOSSLESSPT</a></code></th>
|
||||||
|
<td class="colLast"><code>17</code></td>
|
||||||
|
</tr>
|
||||||
|
<tr class="rowColor">
|
||||||
|
<td class="colFirst"><a id="org.libjpegturbo.turbojpeg.TJ.PARAM_OPTIMIZE">
|
||||||
|
<!-- -->
|
||||||
|
</a><code>public static final int</code></td>
|
||||||
|
<th class="colSecond" scope="row"><code><a href="org/libjpegturbo/turbojpeg/TJ.html#PARAM_OPTIMIZE">PARAM_OPTIMIZE</a></code></th>
|
||||||
<td class="colLast"><code>11</code></td>
|
<td class="colLast"><code>11</code></td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr class="altColor">
|
<tr class="altColor">
|
||||||
<td class="colFirst"><a name="org.libjpegturbo.turbojpeg.TJ.PF_GRAY">
|
<td class="colFirst"><a id="org.libjpegturbo.turbojpeg.TJ.PARAM_PRECISION">
|
||||||
<!-- -->
|
<!-- -->
|
||||||
</a><code>public static final int</code></td>
|
</a><code>public static final int</code></td>
|
||||||
<td><code><a href="org/libjpegturbo/turbojpeg/TJ.html#PF_GRAY">PF_GRAY</a></code></td>
|
<th class="colSecond" scope="row"><code><a href="org/libjpegturbo/turbojpeg/TJ.html#PARAM_PRECISION">PARAM_PRECISION</a></code></th>
|
||||||
<td class="colLast"><code>6</code></td>
|
|
||||||
</tr>
|
|
||||||
<tr class="rowColor">
|
|
||||||
<td class="colFirst"><a name="org.libjpegturbo.turbojpeg.TJ.PF_RGB">
|
|
||||||
<!-- -->
|
|
||||||
</a><code>public static final int</code></td>
|
|
||||||
<td><code><a href="org/libjpegturbo/turbojpeg/TJ.html#PF_RGB">PF_RGB</a></code></td>
|
|
||||||
<td class="colLast"><code>0</code></td>
|
|
||||||
</tr>
|
|
||||||
<tr class="altColor">
|
|
||||||
<td class="colFirst"><a name="org.libjpegturbo.turbojpeg.TJ.PF_RGBA">
|
|
||||||
<!-- -->
|
|
||||||
</a><code>public static final int</code></td>
|
|
||||||
<td><code><a href="org/libjpegturbo/turbojpeg/TJ.html#PF_RGBA">PF_RGBA</a></code></td>
|
|
||||||
<td class="colLast"><code>7</code></td>
|
<td class="colLast"><code>7</code></td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr class="rowColor">
|
<tr class="rowColor">
|
||||||
<td class="colFirst"><a name="org.libjpegturbo.turbojpeg.TJ.PF_RGBX">
|
<td class="colFirst"><a id="org.libjpegturbo.turbojpeg.TJ.PARAM_PROGRESSIVE">
|
||||||
<!-- -->
|
<!-- -->
|
||||||
</a><code>public static final int</code></td>
|
</a><code>public static final int</code></td>
|
||||||
<td><code><a href="org/libjpegturbo/turbojpeg/TJ.html#PF_RGBX">PF_RGBX</a></code></td>
|
<th class="colSecond" scope="row"><code><a href="org/libjpegturbo/turbojpeg/TJ.html#PARAM_PROGRESSIVE">PARAM_PROGRESSIVE</a></code></th>
|
||||||
<td class="colLast"><code>2</code></td>
|
<td class="colLast"><code>12</code></td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr class="altColor">
|
<tr class="altColor">
|
||||||
<td class="colFirst"><a name="org.libjpegturbo.turbojpeg.TJ.PF_XBGR">
|
<td class="colFirst"><a id="org.libjpegturbo.turbojpeg.TJ.PARAM_QUALITY">
|
||||||
<!-- -->
|
<!-- -->
|
||||||
</a><code>public static final int</code></td>
|
</a><code>public static final int</code></td>
|
||||||
<td><code><a href="org/libjpegturbo/turbojpeg/TJ.html#PF_XBGR">PF_XBGR</a></code></td>
|
<th class="colSecond" scope="row"><code><a href="org/libjpegturbo/turbojpeg/TJ.html#PARAM_QUALITY">PARAM_QUALITY</a></code></th>
|
||||||
<td class="colLast"><code>4</code></td>
|
<td class="colLast"><code>3</code></td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr class="rowColor">
|
<tr class="rowColor">
|
||||||
<td class="colFirst"><a name="org.libjpegturbo.turbojpeg.TJ.PF_XRGB">
|
<td class="colFirst"><a id="org.libjpegturbo.turbojpeg.TJ.PARAM_RESTARTBLOCKS">
|
||||||
<!-- -->
|
<!-- -->
|
||||||
</a><code>public static final int</code></td>
|
</a><code>public static final int</code></td>
|
||||||
<td><code><a href="org/libjpegturbo/turbojpeg/TJ.html#PF_XRGB">PF_XRGB</a></code></td>
|
<th class="colSecond" scope="row"><code><a href="org/libjpegturbo/turbojpeg/TJ.html#PARAM_RESTARTBLOCKS">PARAM_RESTARTBLOCKS</a></code></th>
|
||||||
<td class="colLast"><code>5</code></td>
|
<td class="colLast"><code>18</code></td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr class="altColor">
|
<tr class="altColor">
|
||||||
<td class="colFirst"><a name="org.libjpegturbo.turbojpeg.TJ.SAMP_411">
|
<td class="colFirst"><a id="org.libjpegturbo.turbojpeg.TJ.PARAM_RESTARTROWS">
|
||||||
<!-- -->
|
<!-- -->
|
||||||
</a><code>public static final int</code></td>
|
</a><code>public static final int</code></td>
|
||||||
<td><code><a href="org/libjpegturbo/turbojpeg/TJ.html#SAMP_411">SAMP_411</a></code></td>
|
<th class="colSecond" scope="row"><code><a href="org/libjpegturbo/turbojpeg/TJ.html#PARAM_RESTARTROWS">PARAM_RESTARTROWS</a></code></th>
|
||||||
<td class="colLast"><code>5</code></td>
|
<td class="colLast"><code>19</code></td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr class="rowColor">
|
<tr class="rowColor">
|
||||||
<td class="colFirst"><a name="org.libjpegturbo.turbojpeg.TJ.SAMP_420">
|
<td class="colFirst"><a id="org.libjpegturbo.turbojpeg.TJ.PARAM_SCANLIMIT">
|
||||||
<!-- -->
|
<!-- -->
|
||||||
</a><code>public static final int</code></td>
|
</a><code>public static final int</code></td>
|
||||||
<td><code><a href="org/libjpegturbo/turbojpeg/TJ.html#SAMP_420">SAMP_420</a></code></td>
|
<th class="colSecond" scope="row"><code><a href="org/libjpegturbo/turbojpeg/TJ.html#PARAM_SCANLIMIT">PARAM_SCANLIMIT</a></code></th>
|
||||||
<td class="colLast"><code>2</code></td>
|
<td class="colLast"><code>13</code></td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr class="altColor">
|
<tr class="altColor">
|
||||||
<td class="colFirst"><a name="org.libjpegturbo.turbojpeg.TJ.SAMP_422">
|
<td class="colFirst"><a id="org.libjpegturbo.turbojpeg.TJ.PARAM_STOPONWARNING">
|
||||||
<!-- -->
|
<!-- -->
|
||||||
</a><code>public static final int</code></td>
|
</a><code>public static final int</code></td>
|
||||||
<td><code><a href="org/libjpegturbo/turbojpeg/TJ.html#SAMP_422">SAMP_422</a></code></td>
|
<th class="colSecond" scope="row"><code><a href="org/libjpegturbo/turbojpeg/TJ.html#PARAM_STOPONWARNING">PARAM_STOPONWARNING</a></code></th>
|
||||||
<td class="colLast"><code>1</code></td>
|
|
||||||
</tr>
|
|
||||||
<tr class="rowColor">
|
|
||||||
<td class="colFirst"><a name="org.libjpegturbo.turbojpeg.TJ.SAMP_440">
|
|
||||||
<!-- -->
|
|
||||||
</a><code>public static final int</code></td>
|
|
||||||
<td><code><a href="org/libjpegturbo/turbojpeg/TJ.html#SAMP_440">SAMP_440</a></code></td>
|
|
||||||
<td class="colLast"><code>4</code></td>
|
|
||||||
</tr>
|
|
||||||
<tr class="altColor">
|
|
||||||
<td class="colFirst"><a name="org.libjpegturbo.turbojpeg.TJ.SAMP_444">
|
|
||||||
<!-- -->
|
|
||||||
</a><code>public static final int</code></td>
|
|
||||||
<td><code><a href="org/libjpegturbo/turbojpeg/TJ.html#SAMP_444">SAMP_444</a></code></td>
|
|
||||||
<td class="colLast"><code>0</code></td>
|
<td class="colLast"><code>0</code></td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr class="rowColor">
|
<tr class="rowColor">
|
||||||
<td class="colFirst"><a name="org.libjpegturbo.turbojpeg.TJ.SAMP_GRAY">
|
<td class="colFirst"><a id="org.libjpegturbo.turbojpeg.TJ.PARAM_SUBSAMP">
|
||||||
<!-- -->
|
<!-- -->
|
||||||
</a><code>public static final int</code></td>
|
</a><code>public static final int</code></td>
|
||||||
<td><code><a href="org/libjpegturbo/turbojpeg/TJ.html#SAMP_GRAY">SAMP_GRAY</a></code></td>
|
<th class="colSecond" scope="row"><code><a href="org/libjpegturbo/turbojpeg/TJ.html#PARAM_SUBSAMP">PARAM_SUBSAMP</a></code></th>
|
||||||
|
<td class="colLast"><code>4</code></td>
|
||||||
|
</tr>
|
||||||
|
<tr class="altColor">
|
||||||
|
<td class="colFirst"><a id="org.libjpegturbo.turbojpeg.TJ.PARAM_XDENSITY">
|
||||||
|
<!-- -->
|
||||||
|
</a><code>public static final int</code></td>
|
||||||
|
<th class="colSecond" scope="row"><code><a href="org/libjpegturbo/turbojpeg/TJ.html#PARAM_XDENSITY">PARAM_XDENSITY</a></code></th>
|
||||||
|
<td class="colLast"><code>20</code></td>
|
||||||
|
</tr>
|
||||||
|
<tr class="rowColor">
|
||||||
|
<td class="colFirst"><a id="org.libjpegturbo.turbojpeg.TJ.PARAM_YDENSITY">
|
||||||
|
<!-- -->
|
||||||
|
</a><code>public static final int</code></td>
|
||||||
|
<th class="colSecond" scope="row"><code><a href="org/libjpegturbo/turbojpeg/TJ.html#PARAM_YDENSITY">PARAM_YDENSITY</a></code></th>
|
||||||
|
<td class="colLast"><code>21</code></td>
|
||||||
|
</tr>
|
||||||
|
<tr class="altColor">
|
||||||
|
<td class="colFirst"><a id="org.libjpegturbo.turbojpeg.TJ.PF_ABGR">
|
||||||
|
<!-- -->
|
||||||
|
</a><code>public static final int</code></td>
|
||||||
|
<th class="colSecond" scope="row"><code><a href="org/libjpegturbo/turbojpeg/TJ.html#PF_ABGR">PF_ABGR</a></code></th>
|
||||||
|
<td class="colLast"><code>9</code></td>
|
||||||
|
</tr>
|
||||||
|
<tr class="rowColor">
|
||||||
|
<td class="colFirst"><a id="org.libjpegturbo.turbojpeg.TJ.PF_ARGB">
|
||||||
|
<!-- -->
|
||||||
|
</a><code>public static final int</code></td>
|
||||||
|
<th class="colSecond" scope="row"><code><a href="org/libjpegturbo/turbojpeg/TJ.html#PF_ARGB">PF_ARGB</a></code></th>
|
||||||
|
<td class="colLast"><code>10</code></td>
|
||||||
|
</tr>
|
||||||
|
<tr class="altColor">
|
||||||
|
<td class="colFirst"><a id="org.libjpegturbo.turbojpeg.TJ.PF_BGR">
|
||||||
|
<!-- -->
|
||||||
|
</a><code>public static final int</code></td>
|
||||||
|
<th class="colSecond" scope="row"><code><a href="org/libjpegturbo/turbojpeg/TJ.html#PF_BGR">PF_BGR</a></code></th>
|
||||||
|
<td class="colLast"><code>1</code></td>
|
||||||
|
</tr>
|
||||||
|
<tr class="rowColor">
|
||||||
|
<td class="colFirst"><a id="org.libjpegturbo.turbojpeg.TJ.PF_BGRA">
|
||||||
|
<!-- -->
|
||||||
|
</a><code>public static final int</code></td>
|
||||||
|
<th class="colSecond" scope="row"><code><a href="org/libjpegturbo/turbojpeg/TJ.html#PF_BGRA">PF_BGRA</a></code></th>
|
||||||
|
<td class="colLast"><code>8</code></td>
|
||||||
|
</tr>
|
||||||
|
<tr class="altColor">
|
||||||
|
<td class="colFirst"><a id="org.libjpegturbo.turbojpeg.TJ.PF_BGRX">
|
||||||
|
<!-- -->
|
||||||
|
</a><code>public static final int</code></td>
|
||||||
|
<th class="colSecond" scope="row"><code><a href="org/libjpegturbo/turbojpeg/TJ.html#PF_BGRX">PF_BGRX</a></code></th>
|
||||||
<td class="colLast"><code>3</code></td>
|
<td class="colLast"><code>3</code></td>
|
||||||
</tr>
|
</tr>
|
||||||
|
<tr class="rowColor">
|
||||||
|
<td class="colFirst"><a id="org.libjpegturbo.turbojpeg.TJ.PF_CMYK">
|
||||||
|
<!-- -->
|
||||||
|
</a><code>public static final int</code></td>
|
||||||
|
<th class="colSecond" scope="row"><code><a href="org/libjpegturbo/turbojpeg/TJ.html#PF_CMYK">PF_CMYK</a></code></th>
|
||||||
|
<td class="colLast"><code>11</code></td>
|
||||||
|
</tr>
|
||||||
|
<tr class="altColor">
|
||||||
|
<td class="colFirst"><a id="org.libjpegturbo.turbojpeg.TJ.PF_GRAY">
|
||||||
|
<!-- -->
|
||||||
|
</a><code>public static final int</code></td>
|
||||||
|
<th class="colSecond" scope="row"><code><a href="org/libjpegturbo/turbojpeg/TJ.html#PF_GRAY">PF_GRAY</a></code></th>
|
||||||
|
<td class="colLast"><code>6</code></td>
|
||||||
|
</tr>
|
||||||
|
<tr class="rowColor">
|
||||||
|
<td class="colFirst"><a id="org.libjpegturbo.turbojpeg.TJ.PF_RGB">
|
||||||
|
<!-- -->
|
||||||
|
</a><code>public static final int</code></td>
|
||||||
|
<th class="colSecond" scope="row"><code><a href="org/libjpegturbo/turbojpeg/TJ.html#PF_RGB">PF_RGB</a></code></th>
|
||||||
|
<td class="colLast"><code>0</code></td>
|
||||||
|
</tr>
|
||||||
|
<tr class="altColor">
|
||||||
|
<td class="colFirst"><a id="org.libjpegturbo.turbojpeg.TJ.PF_RGBA">
|
||||||
|
<!-- -->
|
||||||
|
</a><code>public static final int</code></td>
|
||||||
|
<th class="colSecond" scope="row"><code><a href="org/libjpegturbo/turbojpeg/TJ.html#PF_RGBA">PF_RGBA</a></code></th>
|
||||||
|
<td class="colLast"><code>7</code></td>
|
||||||
|
</tr>
|
||||||
|
<tr class="rowColor">
|
||||||
|
<td class="colFirst"><a id="org.libjpegturbo.turbojpeg.TJ.PF_RGBX">
|
||||||
|
<!-- -->
|
||||||
|
</a><code>public static final int</code></td>
|
||||||
|
<th class="colSecond" scope="row"><code><a href="org/libjpegturbo/turbojpeg/TJ.html#PF_RGBX">PF_RGBX</a></code></th>
|
||||||
|
<td class="colLast"><code>2</code></td>
|
||||||
|
</tr>
|
||||||
|
<tr class="altColor">
|
||||||
|
<td class="colFirst"><a id="org.libjpegturbo.turbojpeg.TJ.PF_XBGR">
|
||||||
|
<!-- -->
|
||||||
|
</a><code>public static final int</code></td>
|
||||||
|
<th class="colSecond" scope="row"><code><a href="org/libjpegturbo/turbojpeg/TJ.html#PF_XBGR">PF_XBGR</a></code></th>
|
||||||
|
<td class="colLast"><code>4</code></td>
|
||||||
|
</tr>
|
||||||
|
<tr class="rowColor">
|
||||||
|
<td class="colFirst"><a id="org.libjpegturbo.turbojpeg.TJ.PF_XRGB">
|
||||||
|
<!-- -->
|
||||||
|
</a><code>public static final int</code></td>
|
||||||
|
<th class="colSecond" scope="row"><code><a href="org/libjpegturbo/turbojpeg/TJ.html#PF_XRGB">PF_XRGB</a></code></th>
|
||||||
|
<td class="colLast"><code>5</code></td>
|
||||||
|
</tr>
|
||||||
|
<tr class="altColor">
|
||||||
|
<td class="colFirst"><a id="org.libjpegturbo.turbojpeg.TJ.SAMP_411">
|
||||||
|
<!-- -->
|
||||||
|
</a><code>public static final int</code></td>
|
||||||
|
<th class="colSecond" scope="row"><code><a href="org/libjpegturbo/turbojpeg/TJ.html#SAMP_411">SAMP_411</a></code></th>
|
||||||
|
<td class="colLast"><code>5</code></td>
|
||||||
|
</tr>
|
||||||
|
<tr class="rowColor">
|
||||||
|
<td class="colFirst"><a id="org.libjpegturbo.turbojpeg.TJ.SAMP_420">
|
||||||
|
<!-- -->
|
||||||
|
</a><code>public static final int</code></td>
|
||||||
|
<th class="colSecond" scope="row"><code><a href="org/libjpegturbo/turbojpeg/TJ.html#SAMP_420">SAMP_420</a></code></th>
|
||||||
|
<td class="colLast"><code>2</code></td>
|
||||||
|
</tr>
|
||||||
|
<tr class="altColor">
|
||||||
|
<td class="colFirst"><a id="org.libjpegturbo.turbojpeg.TJ.SAMP_422">
|
||||||
|
<!-- -->
|
||||||
|
</a><code>public static final int</code></td>
|
||||||
|
<th class="colSecond" scope="row"><code><a href="org/libjpegturbo/turbojpeg/TJ.html#SAMP_422">SAMP_422</a></code></th>
|
||||||
|
<td class="colLast"><code>1</code></td>
|
||||||
|
</tr>
|
||||||
|
<tr class="rowColor">
|
||||||
|
<td class="colFirst"><a id="org.libjpegturbo.turbojpeg.TJ.SAMP_440">
|
||||||
|
<!-- -->
|
||||||
|
</a><code>public static final int</code></td>
|
||||||
|
<th class="colSecond" scope="row"><code><a href="org/libjpegturbo/turbojpeg/TJ.html#SAMP_440">SAMP_440</a></code></th>
|
||||||
|
<td class="colLast"><code>4</code></td>
|
||||||
|
</tr>
|
||||||
|
<tr class="altColor">
|
||||||
|
<td class="colFirst"><a id="org.libjpegturbo.turbojpeg.TJ.SAMP_441">
|
||||||
|
<!-- -->
|
||||||
|
</a><code>public static final int</code></td>
|
||||||
|
<th class="colSecond" scope="row"><code><a href="org/libjpegturbo/turbojpeg/TJ.html#SAMP_441">SAMP_441</a></code></th>
|
||||||
|
<td class="colLast"><code>6</code></td>
|
||||||
|
</tr>
|
||||||
|
<tr class="rowColor">
|
||||||
|
<td class="colFirst"><a id="org.libjpegturbo.turbojpeg.TJ.SAMP_444">
|
||||||
|
<!-- -->
|
||||||
|
</a><code>public static final int</code></td>
|
||||||
|
<th class="colSecond" scope="row"><code><a href="org/libjpegturbo/turbojpeg/TJ.html#SAMP_444">SAMP_444</a></code></th>
|
||||||
|
<td class="colLast"><code>0</code></td>
|
||||||
|
</tr>
|
||||||
|
<tr class="altColor">
|
||||||
|
<td class="colFirst"><a id="org.libjpegturbo.turbojpeg.TJ.SAMP_GRAY">
|
||||||
|
<!-- -->
|
||||||
|
</a><code>public static final int</code></td>
|
||||||
|
<th class="colSecond" scope="row"><code><a href="org/libjpegturbo/turbojpeg/TJ.html#SAMP_GRAY">SAMP_GRAY</a></code></th>
|
||||||
|
<td class="colLast"><code>3</code></td>
|
||||||
|
</tr>
|
||||||
|
<tr class="rowColor">
|
||||||
|
<td class="colFirst"><a id="org.libjpegturbo.turbojpeg.TJ.SAMP_UNKNOWN">
|
||||||
|
<!-- -->
|
||||||
|
</a><code>public static final int</code></td>
|
||||||
|
<th class="colSecond" scope="row"><code><a href="org/libjpegturbo/turbojpeg/TJ.html#SAMP_UNKNOWN">SAMP_UNKNOWN</a></code></th>
|
||||||
|
<td class="colLast"><code>-1</code></td>
|
||||||
|
</tr>
|
||||||
</tbody>
|
</tbody>
|
||||||
</table>
|
</table>
|
||||||
</li>
|
</li>
|
||||||
<li class="blockList">
|
<li class="blockList">
|
||||||
<table border="0" cellpadding="3" cellspacing="0" summary="Constant Field Values table, listing constant fields, and values">
|
<table class="constantsSummary">
|
||||||
<caption><span>org.libjpegturbo.turbojpeg.<a href="org/libjpegturbo/turbojpeg/TJTransform.html" title="class in org.libjpegturbo.turbojpeg">TJTransform</a></span><span class="tabEnd"> </span></caption>
|
<caption><span>org.libjpegturbo.turbojpeg.<a href="org/libjpegturbo/turbojpeg/TJTransform.html" title="class in org.libjpegturbo.turbojpeg">TJTransform</a></span><span class="tabEnd"> </span></caption>
|
||||||
<tr>
|
<tr>
|
||||||
<th class="colFirst" scope="col">Modifier and Type</th>
|
<th class="colFirst" scope="col">Modifier and Type</th>
|
||||||
<th scope="col">Constant Field</th>
|
<th class="colSecond" scope="col">Constant Field</th>
|
||||||
<th class="colLast" scope="col">Value</th>
|
<th class="colLast" scope="col">Value</th>
|
||||||
</tr>
|
</tr>
|
||||||
<tbody>
|
<tbody>
|
||||||
<tr class="altColor">
|
<tr class="altColor">
|
||||||
<td class="colFirst"><a name="org.libjpegturbo.turbojpeg.TJTransform.NUMOP">
|
<td class="colFirst"><a id="org.libjpegturbo.turbojpeg.TJTransform.NUMOP">
|
||||||
<!-- -->
|
<!-- -->
|
||||||
</a><code>public static final int</code></td>
|
</a><code>public static final int</code></td>
|
||||||
<td><code><a href="org/libjpegturbo/turbojpeg/TJTransform.html#NUMOP">NUMOP</a></code></td>
|
<th class="colSecond" scope="row"><code><a href="org/libjpegturbo/turbojpeg/TJTransform.html#NUMOP">NUMOP</a></code></th>
|
||||||
<td class="colLast"><code>8</code></td>
|
<td class="colLast"><code>8</code></td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr class="rowColor">
|
<tr class="rowColor">
|
||||||
<td class="colFirst"><a name="org.libjpegturbo.turbojpeg.TJTransform.OP_HFLIP">
|
<td class="colFirst"><a id="org.libjpegturbo.turbojpeg.TJTransform.OP_HFLIP">
|
||||||
<!-- -->
|
<!-- -->
|
||||||
</a><code>public static final int</code></td>
|
</a><code>public static final int</code></td>
|
||||||
<td><code><a href="org/libjpegturbo/turbojpeg/TJTransform.html#OP_HFLIP">OP_HFLIP</a></code></td>
|
<th class="colSecond" scope="row"><code><a href="org/libjpegturbo/turbojpeg/TJTransform.html#OP_HFLIP">OP_HFLIP</a></code></th>
|
||||||
<td class="colLast"><code>1</code></td>
|
<td class="colLast"><code>1</code></td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr class="altColor">
|
<tr class="altColor">
|
||||||
<td class="colFirst"><a name="org.libjpegturbo.turbojpeg.TJTransform.OP_NONE">
|
<td class="colFirst"><a id="org.libjpegturbo.turbojpeg.TJTransform.OP_NONE">
|
||||||
<!-- -->
|
<!-- -->
|
||||||
</a><code>public static final int</code></td>
|
</a><code>public static final int</code></td>
|
||||||
<td><code><a href="org/libjpegturbo/turbojpeg/TJTransform.html#OP_NONE">OP_NONE</a></code></td>
|
<th class="colSecond" scope="row"><code><a href="org/libjpegturbo/turbojpeg/TJTransform.html#OP_NONE">OP_NONE</a></code></th>
|
||||||
<td class="colLast"><code>0</code></td>
|
<td class="colLast"><code>0</code></td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr class="rowColor">
|
<tr class="rowColor">
|
||||||
<td class="colFirst"><a name="org.libjpegturbo.turbojpeg.TJTransform.OP_ROT180">
|
<td class="colFirst"><a id="org.libjpegturbo.turbojpeg.TJTransform.OP_ROT180">
|
||||||
<!-- -->
|
<!-- -->
|
||||||
</a><code>public static final int</code></td>
|
</a><code>public static final int</code></td>
|
||||||
<td><code><a href="org/libjpegturbo/turbojpeg/TJTransform.html#OP_ROT180">OP_ROT180</a></code></td>
|
<th class="colSecond" scope="row"><code><a href="org/libjpegturbo/turbojpeg/TJTransform.html#OP_ROT180">OP_ROT180</a></code></th>
|
||||||
<td class="colLast"><code>6</code></td>
|
<td class="colLast"><code>6</code></td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr class="altColor">
|
<tr class="altColor">
|
||||||
<td class="colFirst"><a name="org.libjpegturbo.turbojpeg.TJTransform.OP_ROT270">
|
<td class="colFirst"><a id="org.libjpegturbo.turbojpeg.TJTransform.OP_ROT270">
|
||||||
<!-- -->
|
<!-- -->
|
||||||
</a><code>public static final int</code></td>
|
</a><code>public static final int</code></td>
|
||||||
<td><code><a href="org/libjpegturbo/turbojpeg/TJTransform.html#OP_ROT270">OP_ROT270</a></code></td>
|
<th class="colSecond" scope="row"><code><a href="org/libjpegturbo/turbojpeg/TJTransform.html#OP_ROT270">OP_ROT270</a></code></th>
|
||||||
<td class="colLast"><code>7</code></td>
|
<td class="colLast"><code>7</code></td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr class="rowColor">
|
<tr class="rowColor">
|
||||||
<td class="colFirst"><a name="org.libjpegturbo.turbojpeg.TJTransform.OP_ROT90">
|
<td class="colFirst"><a id="org.libjpegturbo.turbojpeg.TJTransform.OP_ROT90">
|
||||||
<!-- -->
|
<!-- -->
|
||||||
</a><code>public static final int</code></td>
|
</a><code>public static final int</code></td>
|
||||||
<td><code><a href="org/libjpegturbo/turbojpeg/TJTransform.html#OP_ROT90">OP_ROT90</a></code></td>
|
<th class="colSecond" scope="row"><code><a href="org/libjpegturbo/turbojpeg/TJTransform.html#OP_ROT90">OP_ROT90</a></code></th>
|
||||||
<td class="colLast"><code>5</code></td>
|
<td class="colLast"><code>5</code></td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr class="altColor">
|
<tr class="altColor">
|
||||||
<td class="colFirst"><a name="org.libjpegturbo.turbojpeg.TJTransform.OP_TRANSPOSE">
|
<td class="colFirst"><a id="org.libjpegturbo.turbojpeg.TJTransform.OP_TRANSPOSE">
|
||||||
<!-- -->
|
<!-- -->
|
||||||
</a><code>public static final int</code></td>
|
</a><code>public static final int</code></td>
|
||||||
<td><code><a href="org/libjpegturbo/turbojpeg/TJTransform.html#OP_TRANSPOSE">OP_TRANSPOSE</a></code></td>
|
<th class="colSecond" scope="row"><code><a href="org/libjpegturbo/turbojpeg/TJTransform.html#OP_TRANSPOSE">OP_TRANSPOSE</a></code></th>
|
||||||
<td class="colLast"><code>3</code></td>
|
<td class="colLast"><code>3</code></td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr class="rowColor">
|
<tr class="rowColor">
|
||||||
<td class="colFirst"><a name="org.libjpegturbo.turbojpeg.TJTransform.OP_TRANSVERSE">
|
<td class="colFirst"><a id="org.libjpegturbo.turbojpeg.TJTransform.OP_TRANSVERSE">
|
||||||
<!-- -->
|
<!-- -->
|
||||||
</a><code>public static final int</code></td>
|
</a><code>public static final int</code></td>
|
||||||
<td><code><a href="org/libjpegturbo/turbojpeg/TJTransform.html#OP_TRANSVERSE">OP_TRANSVERSE</a></code></td>
|
<th class="colSecond" scope="row"><code><a href="org/libjpegturbo/turbojpeg/TJTransform.html#OP_TRANSVERSE">OP_TRANSVERSE</a></code></th>
|
||||||
<td class="colLast"><code>4</code></td>
|
<td class="colLast"><code>4</code></td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr class="altColor">
|
<tr class="altColor">
|
||||||
<td class="colFirst"><a name="org.libjpegturbo.turbojpeg.TJTransform.OP_VFLIP">
|
<td class="colFirst"><a id="org.libjpegturbo.turbojpeg.TJTransform.OP_VFLIP">
|
||||||
<!-- -->
|
<!-- -->
|
||||||
</a><code>public static final int</code></td>
|
</a><code>public static final int</code></td>
|
||||||
<td><code><a href="org/libjpegturbo/turbojpeg/TJTransform.html#OP_VFLIP">OP_VFLIP</a></code></td>
|
<th class="colSecond" scope="row"><code><a href="org/libjpegturbo/turbojpeg/TJTransform.html#OP_VFLIP">OP_VFLIP</a></code></th>
|
||||||
<td class="colLast"><code>2</code></td>
|
<td class="colLast"><code>2</code></td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr class="rowColor">
|
<tr class="rowColor">
|
||||||
<td class="colFirst"><a name="org.libjpegturbo.turbojpeg.TJTransform.OPT_COPYNONE">
|
<td class="colFirst"><a id="org.libjpegturbo.turbojpeg.TJTransform.OPT_ARITHMETIC">
|
||||||
<!-- -->
|
<!-- -->
|
||||||
</a><code>public static final int</code></td>
|
</a><code>public static final int</code></td>
|
||||||
<td><code><a href="org/libjpegturbo/turbojpeg/TJTransform.html#OPT_COPYNONE">OPT_COPYNONE</a></code></td>
|
<th class="colSecond" scope="row"><code><a href="org/libjpegturbo/turbojpeg/TJTransform.html#OPT_ARITHMETIC">OPT_ARITHMETIC</a></code></th>
|
||||||
|
<td class="colLast"><code>128</code></td>
|
||||||
|
</tr>
|
||||||
|
<tr class="altColor">
|
||||||
|
<td class="colFirst"><a id="org.libjpegturbo.turbojpeg.TJTransform.OPT_COPYNONE">
|
||||||
|
<!-- -->
|
||||||
|
</a><code>public static final int</code></td>
|
||||||
|
<th class="colSecond" scope="row"><code><a href="org/libjpegturbo/turbojpeg/TJTransform.html#OPT_COPYNONE">OPT_COPYNONE</a></code></th>
|
||||||
<td class="colLast"><code>64</code></td>
|
<td class="colLast"><code>64</code></td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr class="altColor">
|
<tr class="rowColor">
|
||||||
<td class="colFirst"><a name="org.libjpegturbo.turbojpeg.TJTransform.OPT_CROP">
|
<td class="colFirst"><a id="org.libjpegturbo.turbojpeg.TJTransform.OPT_CROP">
|
||||||
<!-- -->
|
<!-- -->
|
||||||
</a><code>public static final int</code></td>
|
</a><code>public static final int</code></td>
|
||||||
<td><code><a href="org/libjpegturbo/turbojpeg/TJTransform.html#OPT_CROP">OPT_CROP</a></code></td>
|
<th class="colSecond" scope="row"><code><a href="org/libjpegturbo/turbojpeg/TJTransform.html#OPT_CROP">OPT_CROP</a></code></th>
|
||||||
<td class="colLast"><code>4</code></td>
|
<td class="colLast"><code>4</code></td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr class="rowColor">
|
<tr class="altColor">
|
||||||
<td class="colFirst"><a name="org.libjpegturbo.turbojpeg.TJTransform.OPT_GRAY">
|
<td class="colFirst"><a id="org.libjpegturbo.turbojpeg.TJTransform.OPT_GRAY">
|
||||||
<!-- -->
|
<!-- -->
|
||||||
</a><code>public static final int</code></td>
|
</a><code>public static final int</code></td>
|
||||||
<td><code><a href="org/libjpegturbo/turbojpeg/TJTransform.html#OPT_GRAY">OPT_GRAY</a></code></td>
|
<th class="colSecond" scope="row"><code><a href="org/libjpegturbo/turbojpeg/TJTransform.html#OPT_GRAY">OPT_GRAY</a></code></th>
|
||||||
<td class="colLast"><code>8</code></td>
|
<td class="colLast"><code>8</code></td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr class="altColor">
|
<tr class="rowColor">
|
||||||
<td class="colFirst"><a name="org.libjpegturbo.turbojpeg.TJTransform.OPT_NOOUTPUT">
|
<td class="colFirst"><a id="org.libjpegturbo.turbojpeg.TJTransform.OPT_NOOUTPUT">
|
||||||
<!-- -->
|
<!-- -->
|
||||||
</a><code>public static final int</code></td>
|
</a><code>public static final int</code></td>
|
||||||
<td><code><a href="org/libjpegturbo/turbojpeg/TJTransform.html#OPT_NOOUTPUT">OPT_NOOUTPUT</a></code></td>
|
<th class="colSecond" scope="row"><code><a href="org/libjpegturbo/turbojpeg/TJTransform.html#OPT_NOOUTPUT">OPT_NOOUTPUT</a></code></th>
|
||||||
<td class="colLast"><code>16</code></td>
|
<td class="colLast"><code>16</code></td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr class="rowColor">
|
<tr class="altColor">
|
||||||
<td class="colFirst"><a name="org.libjpegturbo.turbojpeg.TJTransform.OPT_PERFECT">
|
<td class="colFirst"><a id="org.libjpegturbo.turbojpeg.TJTransform.OPT_OPTIMIZE">
|
||||||
<!-- -->
|
<!-- -->
|
||||||
</a><code>public static final int</code></td>
|
</a><code>public static final int</code></td>
|
||||||
<td><code><a href="org/libjpegturbo/turbojpeg/TJTransform.html#OPT_PERFECT">OPT_PERFECT</a></code></td>
|
<th class="colSecond" scope="row"><code><a href="org/libjpegturbo/turbojpeg/TJTransform.html#OPT_OPTIMIZE">OPT_OPTIMIZE</a></code></th>
|
||||||
|
<td class="colLast"><code>256</code></td>
|
||||||
|
</tr>
|
||||||
|
<tr class="rowColor">
|
||||||
|
<td class="colFirst"><a id="org.libjpegturbo.turbojpeg.TJTransform.OPT_PERFECT">
|
||||||
|
<!-- -->
|
||||||
|
</a><code>public static final int</code></td>
|
||||||
|
<th class="colSecond" scope="row"><code><a href="org/libjpegturbo/turbojpeg/TJTransform.html#OPT_PERFECT">OPT_PERFECT</a></code></th>
|
||||||
<td class="colLast"><code>1</code></td>
|
<td class="colLast"><code>1</code></td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr class="altColor">
|
<tr class="altColor">
|
||||||
<td class="colFirst"><a name="org.libjpegturbo.turbojpeg.TJTransform.OPT_PROGRESSIVE">
|
<td class="colFirst"><a id="org.libjpegturbo.turbojpeg.TJTransform.OPT_PROGRESSIVE">
|
||||||
<!-- -->
|
<!-- -->
|
||||||
</a><code>public static final int</code></td>
|
</a><code>public static final int</code></td>
|
||||||
<td><code><a href="org/libjpegturbo/turbojpeg/TJTransform.html#OPT_PROGRESSIVE">OPT_PROGRESSIVE</a></code></td>
|
<th class="colSecond" scope="row"><code><a href="org/libjpegturbo/turbojpeg/TJTransform.html#OPT_PROGRESSIVE">OPT_PROGRESSIVE</a></code></th>
|
||||||
<td class="colLast"><code>32</code></td>
|
<td class="colLast"><code>32</code></td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr class="rowColor">
|
<tr class="rowColor">
|
||||||
<td class="colFirst"><a name="org.libjpegturbo.turbojpeg.TJTransform.OPT_TRIM">
|
<td class="colFirst"><a id="org.libjpegturbo.turbojpeg.TJTransform.OPT_TRIM">
|
||||||
<!-- -->
|
<!-- -->
|
||||||
</a><code>public static final int</code></td>
|
</a><code>public static final int</code></td>
|
||||||
<td><code><a href="org/libjpegturbo/turbojpeg/TJTransform.html#OPT_TRIM">OPT_TRIM</a></code></td>
|
<th class="colSecond" scope="row"><code><a href="org/libjpegturbo/turbojpeg/TJTransform.html#OPT_TRIM">OPT_TRIM</a></code></th>
|
||||||
<td class="colLast"><code>2</code></td>
|
<td class="colLast"><code>2</code></td>
|
||||||
</tr>
|
</tr>
|
||||||
</tbody>
|
</tbody>
|
||||||
</table>
|
</table>
|
||||||
</li>
|
</li>
|
||||||
</ul>
|
</ul>
|
||||||
|
</section>
|
||||||
</div>
|
</div>
|
||||||
|
</main>
|
||||||
|
<footer role="contentinfo">
|
||||||
|
<nav role="navigation">
|
||||||
<!-- ======= START OF BOTTOM NAVBAR ====== -->
|
<!-- ======= START OF BOTTOM NAVBAR ====== -->
|
||||||
<div class="bottomNav"><a name="navbar_bottom">
|
<div class="bottomNav"><a id="navbar.bottom">
|
||||||
<!-- -->
|
<!-- -->
|
||||||
</a><a href="#skip-navbar_bottom" title="Skip navigation links"></a><a name="navbar_bottom_firstrow">
|
</a>
|
||||||
|
<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
|
||||||
|
<a id="navbar.bottom.firstrow">
|
||||||
<!-- -->
|
<!-- -->
|
||||||
</a>
|
</a>
|
||||||
<ul class="navList" title="Navigation">
|
<ul class="navList" title="Navigation">
|
||||||
@@ -508,16 +700,8 @@
|
|||||||
</ul>
|
</ul>
|
||||||
</div>
|
</div>
|
||||||
<div class="subNav">
|
<div class="subNav">
|
||||||
<ul class="navList">
|
|
||||||
<li>Prev</li>
|
|
||||||
<li>Next</li>
|
|
||||||
</ul>
|
|
||||||
<ul class="navList">
|
|
||||||
<li><a href="index.html?constant-values.html" target="_top">Frames</a></li>
|
|
||||||
<li><a href="constant-values.html" target="_top">No Frames</a></li>
|
|
||||||
</ul>
|
|
||||||
<ul class="navList" id="allclasses_navbar_bottom">
|
<ul class="navList" id="allclasses_navbar_bottom">
|
||||||
<li><a href="allclasses-noframe.html">All Classes</a></li>
|
<li><a href="allclasses.html">All Classes</a></li>
|
||||||
</ul>
|
</ul>
|
||||||
<div>
|
<div>
|
||||||
<script type="text/javascript"><!--
|
<script type="text/javascript"><!--
|
||||||
@@ -530,10 +714,15 @@
|
|||||||
}
|
}
|
||||||
//-->
|
//-->
|
||||||
</script>
|
</script>
|
||||||
|
<noscript>
|
||||||
|
<div>JavaScript is disabled on your browser.</div>
|
||||||
|
</noscript>
|
||||||
</div>
|
</div>
|
||||||
<a name="skip-navbar_bottom">
|
<a id="skip.navbar.bottom">
|
||||||
<!-- -->
|
<!-- -->
|
||||||
</a></div>
|
</a></div>
|
||||||
<!-- ======== END OF BOTTOM NAVBAR ======= -->
|
<!-- ======== END OF BOTTOM NAVBAR ======= -->
|
||||||
|
</nav>
|
||||||
|
</footer>
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
|
|||||||
@@ -1,9 +1,21 @@
|
|||||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
|
<!DOCTYPE HTML>
|
||||||
<!-- NewPage -->
|
<!-- NewPage -->
|
||||||
<html lang="en">
|
<html lang="en">
|
||||||
<head>
|
<head>
|
||||||
|
<!-- Generated by javadoc -->
|
||||||
<title>Deprecated List</title>
|
<title>Deprecated List</title>
|
||||||
|
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
|
||||||
<link rel="stylesheet" type="text/css" href="stylesheet.css" title="Style">
|
<link rel="stylesheet" type="text/css" href="stylesheet.css" title="Style">
|
||||||
|
<link rel="stylesheet" type="text/css" href="jquery/jquery-ui.min.css" title="Style">
|
||||||
|
<link rel="stylesheet" type="text/css" href="jquery-ui.overrides.css" title="Style">
|
||||||
|
<script type="text/javascript" src="script.js"></script>
|
||||||
|
<script type="text/javascript" src="jquery/jszip/dist/jszip.min.js"></script>
|
||||||
|
<script type="text/javascript" src="jquery/jszip-utils/dist/jszip-utils.min.js"></script>
|
||||||
|
<!--[if IE]>
|
||||||
|
<script type="text/javascript" src="jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
|
||||||
|
<![endif]-->
|
||||||
|
<script type="text/javascript" src="jquery/jquery-3.6.0.min.js"></script>
|
||||||
|
<script type="text/javascript" src="jquery/jquery-ui.min.js"></script>
|
||||||
</head>
|
</head>
|
||||||
<body>
|
<body>
|
||||||
<script type="text/javascript"><!--
|
<script type="text/javascript"><!--
|
||||||
@@ -15,14 +27,21 @@
|
|||||||
catch(err) {
|
catch(err) {
|
||||||
}
|
}
|
||||||
//-->
|
//-->
|
||||||
</script>
|
var pathtoroot = "./";
|
||||||
|
var useModuleDirectories = true;
|
||||||
|
loadScripts(document, 'script');</script>
|
||||||
<noscript>
|
<noscript>
|
||||||
<div>JavaScript is disabled on your browser.</div>
|
<div>JavaScript is disabled on your browser.</div>
|
||||||
</noscript>
|
</noscript>
|
||||||
|
<header role="banner">
|
||||||
|
<nav role="navigation">
|
||||||
|
<div class="fixedNav">
|
||||||
<!-- ========= START OF TOP NAVBAR ======= -->
|
<!-- ========= START OF TOP NAVBAR ======= -->
|
||||||
<div class="topNav"><a name="navbar_top">
|
<div class="topNav"><a id="navbar.top">
|
||||||
<!-- -->
|
<!-- -->
|
||||||
</a><a href="#skip-navbar_top" title="Skip navigation links"></a><a name="navbar_top_firstrow">
|
</a>
|
||||||
|
<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
|
||||||
|
<a id="navbar.top.firstrow">
|
||||||
<!-- -->
|
<!-- -->
|
||||||
</a>
|
</a>
|
||||||
<ul class="navList" title="Navigation">
|
<ul class="navList" title="Navigation">
|
||||||
@@ -35,16 +54,14 @@
|
|||||||
</ul>
|
</ul>
|
||||||
</div>
|
</div>
|
||||||
<div class="subNav">
|
<div class="subNav">
|
||||||
<ul class="navList">
|
|
||||||
<li>Prev</li>
|
|
||||||
<li>Next</li>
|
|
||||||
</ul>
|
|
||||||
<ul class="navList">
|
|
||||||
<li><a href="index.html?deprecated-list.html" target="_top">Frames</a></li>
|
|
||||||
<li><a href="deprecated-list.html" target="_top">No Frames</a></li>
|
|
||||||
</ul>
|
|
||||||
<ul class="navList" id="allclasses_navbar_top">
|
<ul class="navList" id="allclasses_navbar_top">
|
||||||
<li><a href="allclasses-noframe.html">All Classes</a></li>
|
<li><a href="allclasses.html">All Classes</a></li>
|
||||||
|
</ul>
|
||||||
|
<ul class="navListSearch">
|
||||||
|
<li><label for="search">SEARCH:</label>
|
||||||
|
<input type="text" id="search" value="search" disabled="disabled">
|
||||||
|
<input type="reset" id="reset" value="reset" disabled="disabled">
|
||||||
|
</li>
|
||||||
</ul>
|
</ul>
|
||||||
<div>
|
<div>
|
||||||
<script type="text/javascript"><!--
|
<script type="text/javascript"><!--
|
||||||
@@ -57,147 +74,175 @@
|
|||||||
}
|
}
|
||||||
//-->
|
//-->
|
||||||
</script>
|
</script>
|
||||||
|
<noscript>
|
||||||
|
<div>JavaScript is disabled on your browser.</div>
|
||||||
|
</noscript>
|
||||||
</div>
|
</div>
|
||||||
<a name="skip-navbar_top">
|
<a id="skip.navbar.top">
|
||||||
<!-- -->
|
<!-- -->
|
||||||
</a></div>
|
</a></div>
|
||||||
<!-- ========= END OF TOP NAVBAR ========= -->
|
<!-- ========= END OF TOP NAVBAR ========= -->
|
||||||
|
</div>
|
||||||
|
<div class="navPadding"> </div>
|
||||||
|
<script type="text/javascript"><!--
|
||||||
|
$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
|
||||||
|
//-->
|
||||||
|
</script>
|
||||||
|
</nav>
|
||||||
|
</header>
|
||||||
|
<main role="main">
|
||||||
<div class="header">
|
<div class="header">
|
||||||
<h1 title="Deprecated API" class="title">Deprecated API</h1>
|
<h1 title="Deprecated API" class="title">Deprecated API</h1>
|
||||||
<h2 title="Contents">Contents</h2>
|
<h2 title="Contents">Contents</h2>
|
||||||
<ul>
|
<ul>
|
||||||
<li><a href="#field">Deprecated Fields</a></li>
|
<li><a href="#field">Fields</a></li>
|
||||||
<li><a href="#method">Deprecated Methods</a></li>
|
<li><a href="#method">Methods</a></li>
|
||||||
<li><a href="#constructor">Deprecated Constructors</a></li>
|
|
||||||
</ul>
|
</ul>
|
||||||
</div>
|
</div>
|
||||||
<div class="contentContainer"><a name="field">
|
<div class="contentContainer"><a id="field">
|
||||||
<!-- -->
|
<!-- -->
|
||||||
</a>
|
</a>
|
||||||
<ul class="blockList">
|
<ul class="blockList">
|
||||||
<li class="blockList">
|
<li class="blockList">
|
||||||
<table border="0" cellpadding="3" cellspacing="0" summary="Deprecated Fields table, listing deprecated fields, and an explanation">
|
<table class="deprecatedSummary">
|
||||||
<caption><span>Deprecated Fields</span><span class="tabEnd"> </span></caption>
|
<caption><span>Fields</span><span class="tabEnd"> </span></caption>
|
||||||
<tr>
|
<tr>
|
||||||
<th class="colOne" scope="col">Field and Description</th>
|
<th class="colFirst" scope="col">Field</th>
|
||||||
|
<th class="colLast" scope="col">Description</th>
|
||||||
</tr>
|
</tr>
|
||||||
<tbody>
|
<tbody>
|
||||||
<tr class="altColor">
|
<tr class="altColor">
|
||||||
<td class="colOne"><a href="org/libjpegturbo/turbojpeg/TJ.html#FLAG_FORCEMMX">org.libjpegturbo.turbojpeg.TJ.FLAG_FORCEMMX</a></td>
|
<th class="colDeprecatedItemName" scope="row"><a href="org/libjpegturbo/turbojpeg/TJ.html#FLAG_ACCURATEDCT">org.libjpegturbo.turbojpeg.TJ.FLAG_ACCURATEDCT</a></th>
|
||||||
</tr>
|
<td class="colLast">
|
||||||
<tr class="rowColor">
|
<div class="deprecationComment">Use <a href="org/libjpegturbo/turbojpeg/TJ.html#PARAM_FASTDCT"><code>TJ.PARAM_FASTDCT</code></a> instead.</div>
|
||||||
<td class="colOne"><a href="org/libjpegturbo/turbojpeg/TJ.html#FLAG_FORCESSE">org.libjpegturbo.turbojpeg.TJ.FLAG_FORCESSE</a></td>
|
|
||||||
</tr>
|
|
||||||
<tr class="altColor">
|
|
||||||
<td class="colOne"><a href="org/libjpegturbo/turbojpeg/TJ.html#FLAG_FORCESSE2">org.libjpegturbo.turbojpeg.TJ.FLAG_FORCESSE2</a></td>
|
|
||||||
</tr>
|
|
||||||
<tr class="rowColor">
|
|
||||||
<td class="colOne"><a href="org/libjpegturbo/turbojpeg/TJ.html#FLAG_FORCESSE3">org.libjpegturbo.turbojpeg.TJ.FLAG_FORCESSE3</a></td>
|
|
||||||
</tr>
|
|
||||||
</tbody>
|
|
||||||
</table>
|
|
||||||
</li>
|
|
||||||
</ul>
|
|
||||||
<a name="method">
|
|
||||||
<!-- -->
|
|
||||||
</a>
|
|
||||||
<ul class="blockList">
|
|
||||||
<li class="blockList">
|
|
||||||
<table border="0" cellpadding="3" cellspacing="0" summary="Deprecated Methods table, listing deprecated methods, and an explanation">
|
|
||||||
<caption><span>Deprecated Methods</span><span class="tabEnd"> </span></caption>
|
|
||||||
<tr>
|
|
||||||
<th class="colOne" scope="col">Method and Description</th>
|
|
||||||
</tr>
|
|
||||||
<tbody>
|
|
||||||
<tr class="altColor">
|
|
||||||
<td class="colOne"><a href="org/libjpegturbo/turbojpeg/TJ.html#bufSizeYUV(int,%20int,%20int)">org.libjpegturbo.turbojpeg.TJ.bufSizeYUV(int, int, int)</a>
|
|
||||||
<div class="block"><i>Use <a href="org/libjpegturbo/turbojpeg/TJ.html#bufSizeYUV(int,%20int,%20int,%20int)"><code>TJ.bufSizeYUV(int, int, int, int)</code></a> instead.</i></div>
|
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr class="rowColor">
|
<tr class="rowColor">
|
||||||
<td class="colOne"><a href="org/libjpegturbo/turbojpeg/TJCompressor.html#compress(java.awt.image.BufferedImage,%20byte[],%20int)">org.libjpegturbo.turbojpeg.TJCompressor.compress(BufferedImage, byte[], int)</a>
|
<th class="colDeprecatedItemName" scope="row"><a href="org/libjpegturbo/turbojpeg/TJ.html#FLAG_BOTTOMUP">org.libjpegturbo.turbojpeg.TJ.FLAG_BOTTOMUP</a></th>
|
||||||
<div class="block"><i>Use
|
<td class="colLast">
|
||||||
<a href="org/libjpegturbo/turbojpeg/TJCompressor.html#setSourceImage(java.awt.image.BufferedImage,%20int,%20int,%20int,%20int)"><code>TJCompressor.setSourceImage(BufferedImage, int, int, int, int)</code></a> and
|
<div class="deprecationComment">Use <a href="org/libjpegturbo/turbojpeg/TJ.html#PARAM_BOTTOMUP"><code>TJ.PARAM_BOTTOMUP</code></a> instead.</div>
|
||||||
<a href="org/libjpegturbo/turbojpeg/TJCompressor.html#compress(byte[],%20int)"><code>TJCompressor.compress(byte[], int)</code></a> instead.</i></div>
|
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr class="altColor">
|
<tr class="altColor">
|
||||||
<td class="colOne"><a href="org/libjpegturbo/turbojpeg/TJCompressor.html#compress(java.awt.image.BufferedImage,%20int)">org.libjpegturbo.turbojpeg.TJCompressor.compress(BufferedImage, int)</a>
|
<th class="colDeprecatedItemName" scope="row"><a href="org/libjpegturbo/turbojpeg/TJ.html#FLAG_FASTDCT">org.libjpegturbo.turbojpeg.TJ.FLAG_FASTDCT</a></th>
|
||||||
<div class="block"><i>Use
|
<td class="colLast">
|
||||||
<a href="org/libjpegturbo/turbojpeg/TJCompressor.html#setSourceImage(java.awt.image.BufferedImage,%20int,%20int,%20int,%20int)"><code>TJCompressor.setSourceImage(BufferedImage, int, int, int, int)</code></a> and
|
<div class="deprecationComment">Use <a href="org/libjpegturbo/turbojpeg/TJ.html#PARAM_FASTDCT"><code>TJ.PARAM_FASTDCT</code></a> instead.</div>
|
||||||
<a href="org/libjpegturbo/turbojpeg/TJCompressor.html#compress(int)"><code>TJCompressor.compress(int)</code></a> instead.</i></div>
|
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr class="rowColor">
|
<tr class="rowColor">
|
||||||
<td class="colOne"><a href="org/libjpegturbo/turbojpeg/TJDecompressor.html#decompress(byte[],%20int,%20int,%20int,%20int,%20int)">org.libjpegturbo.turbojpeg.TJDecompressor.decompress(byte[], int, int, int, int, int)</a>
|
<th class="colDeprecatedItemName" scope="row"><a href="org/libjpegturbo/turbojpeg/TJ.html#FLAG_FASTUPSAMPLE">org.libjpegturbo.turbojpeg.TJ.FLAG_FASTUPSAMPLE</a></th>
|
||||||
<div class="block"><i>Use
|
<td class="colLast">
|
||||||
<a href="org/libjpegturbo/turbojpeg/TJDecompressor.html#decompress(byte[],%20int,%20int,%20int,%20int,%20int,%20int,%20int)"><code>TJDecompressor.decompress(byte[], int, int, int, int, int, int, int)</code></a> instead.</i></div>
|
<div class="deprecationComment">Use <a href="org/libjpegturbo/turbojpeg/TJ.html#PARAM_FASTUPSAMPLE"><code>TJ.PARAM_FASTUPSAMPLE</code></a> instead.</div>
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr class="altColor">
|
<tr class="altColor">
|
||||||
<td class="colOne"><a href="org/libjpegturbo/turbojpeg/TJDecompressor.html#decompressToYUV(byte[],%20int)">org.libjpegturbo.turbojpeg.TJDecompressor.decompressToYUV(byte[], int)</a>
|
<th class="colDeprecatedItemName" scope="row"><a href="org/libjpegturbo/turbojpeg/TJ.html#FLAG_LIMITSCANS">org.libjpegturbo.turbojpeg.TJ.FLAG_LIMITSCANS</a></th>
|
||||||
<div class="block"><i>Use <a href="org/libjpegturbo/turbojpeg/TJDecompressor.html#decompressToYUV(org.libjpegturbo.turbojpeg.YUVImage,%20int)"><code>TJDecompressor.decompressToYUV(YUVImage, int)</code></a> instead.</i></div>
|
<td class="colLast">
|
||||||
|
<div class="deprecationComment">Use <a href="org/libjpegturbo/turbojpeg/TJ.html#PARAM_SCANLIMIT"><code>TJ.PARAM_SCANLIMIT</code></a> instead.</div>
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr class="rowColor">
|
<tr class="rowColor">
|
||||||
<td class="colOne"><a href="org/libjpegturbo/turbojpeg/TJDecompressor.html#decompressToYUV(int)">org.libjpegturbo.turbojpeg.TJDecompressor.decompressToYUV(int)</a>
|
<th class="colDeprecatedItemName" scope="row"><a href="org/libjpegturbo/turbojpeg/TJ.html#FLAG_PROGRESSIVE">org.libjpegturbo.turbojpeg.TJ.FLAG_PROGRESSIVE</a></th>
|
||||||
<div class="block"><i>Use <a href="org/libjpegturbo/turbojpeg/TJDecompressor.html#decompressToYUV(int,%20int,%20int,%20int)"><code>TJDecompressor.decompressToYUV(int, int, int, int)</code></a> instead.</i></div>
|
<td class="colLast">
|
||||||
|
<div class="deprecationComment">Use <a href="org/libjpegturbo/turbojpeg/TJ.html#PARAM_PROGRESSIVE"><code>TJ.PARAM_PROGRESSIVE</code></a> instead.</div>
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr class="altColor">
|
<tr class="altColor">
|
||||||
<td class="colOne"><a href="org/libjpegturbo/turbojpeg/TJCompressor.html#encodeYUV(java.awt.image.BufferedImage,%20byte[],%20int)">org.libjpegturbo.turbojpeg.TJCompressor.encodeYUV(BufferedImage, byte[], int)</a>
|
<th class="colDeprecatedItemName" scope="row"><a href="org/libjpegturbo/turbojpeg/TJ.html#FLAG_STOPONWARNING">org.libjpegturbo.turbojpeg.TJ.FLAG_STOPONWARNING</a></th>
|
||||||
<div class="block"><i>Use
|
<td class="colLast">
|
||||||
<a href="org/libjpegturbo/turbojpeg/TJCompressor.html#setSourceImage(java.awt.image.BufferedImage,%20int,%20int,%20int,%20int)"><code>TJCompressor.setSourceImage(BufferedImage, int, int, int, int)</code></a> and
|
<div class="deprecationComment">Use <a href="org/libjpegturbo/turbojpeg/TJ.html#PARAM_STOPONWARNING"><code>TJ.PARAM_STOPONWARNING</code></a> instead.</div>
|
||||||
<a href="org/libjpegturbo/turbojpeg/TJCompressor.html#encodeYUV(byte[],%20int)"><code>TJCompressor.encodeYUV(byte[], int)</code></a> instead.</i></div>
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr class="rowColor">
|
|
||||||
<td class="colOne"><a href="org/libjpegturbo/turbojpeg/TJCompressor.html#encodeYUV(java.awt.image.BufferedImage,%20int)">org.libjpegturbo.turbojpeg.TJCompressor.encodeYUV(BufferedImage, int)</a>
|
|
||||||
<div class="block"><i>Use
|
|
||||||
<a href="org/libjpegturbo/turbojpeg/TJCompressor.html#setSourceImage(java.awt.image.BufferedImage,%20int,%20int,%20int,%20int)"><code>TJCompressor.setSourceImage(BufferedImage, int, int, int, int)</code></a> and
|
|
||||||
<a href="org/libjpegturbo/turbojpeg/TJCompressor.html#encodeYUV(int,%20int)"><code>TJCompressor.encodeYUV(int, int)</code></a> instead.</i></div>
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr class="altColor">
|
|
||||||
<td class="colOne"><a href="org/libjpegturbo/turbojpeg/TJCompressor.html#encodeYUV(byte[],%20int)">org.libjpegturbo.turbojpeg.TJCompressor.encodeYUV(byte[], int)</a>
|
|
||||||
<div class="block"><i>Use <a href="org/libjpegturbo/turbojpeg/TJCompressor.html#encodeYUV(org.libjpegturbo.turbojpeg.YUVImage,%20int)"><code>TJCompressor.encodeYUV(YUVImage, int)</code></a> instead.</i></div>
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr class="rowColor">
|
|
||||||
<td class="colOne"><a href="org/libjpegturbo/turbojpeg/TJCompressor.html#encodeYUV(int)">org.libjpegturbo.turbojpeg.TJCompressor.encodeYUV(int)</a>
|
|
||||||
<div class="block"><i>Use <a href="org/libjpegturbo/turbojpeg/TJCompressor.html#encodeYUV(int,%20int)"><code>TJCompressor.encodeYUV(int, int)</code></a> instead.</i></div>
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr class="altColor">
|
|
||||||
<td class="colOne"><a href="org/libjpegturbo/turbojpeg/TJDecompressor.html#setJPEGImage(byte[],%20int)">org.libjpegturbo.turbojpeg.TJDecompressor.setJPEGImage(byte[], int)</a>
|
|
||||||
<div class="block"><i>Use <a href="org/libjpegturbo/turbojpeg/TJDecompressor.html#setSourceImage(byte[],%20int)"><code>TJDecompressor.setSourceImage(byte[], int)</code></a> instead.</i></div>
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr class="rowColor">
|
|
||||||
<td class="colOne"><a href="org/libjpegturbo/turbojpeg/TJCompressor.html#setSourceImage(byte[],%20int,%20int,%20int,%20int)">org.libjpegturbo.turbojpeg.TJCompressor.setSourceImage(byte[], int, int, int, int)</a>
|
|
||||||
<div class="block"><i>Use
|
|
||||||
<a href="org/libjpegturbo/turbojpeg/TJCompressor.html#setSourceImage(byte[],%20int,%20int,%20int,%20int,%20int,%20int)"><code>TJCompressor.setSourceImage(byte[], int, int, int, int, int, int)</code></a> instead.</i></div>
|
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
</tbody>
|
</tbody>
|
||||||
</table>
|
</table>
|
||||||
</li>
|
</li>
|
||||||
</ul>
|
</ul>
|
||||||
<a name="constructor">
|
<a id="method">
|
||||||
<!-- -->
|
<!-- -->
|
||||||
</a>
|
</a>
|
||||||
<ul class="blockList">
|
<ul class="blockList">
|
||||||
<li class="blockList">
|
<li class="blockList">
|
||||||
<table border="0" cellpadding="3" cellspacing="0" summary="Deprecated Constructors table, listing deprecated constructors, and an explanation">
|
<table class="deprecatedSummary">
|
||||||
<caption><span>Deprecated Constructors</span><span class="tabEnd"> </span></caption>
|
<caption><span>Methods</span><span class="tabEnd"> </span></caption>
|
||||||
<tr>
|
<tr>
|
||||||
<th class="colOne" scope="col">Constructor and Description</th>
|
<th class="colFirst" scope="col">Method</th>
|
||||||
|
<th class="colLast" scope="col">Description</th>
|
||||||
</tr>
|
</tr>
|
||||||
<tbody>
|
<tbody>
|
||||||
<tr class="altColor">
|
<tr class="altColor">
|
||||||
<td class="colOne"><a href="org/libjpegturbo/turbojpeg/TJCompressor.html#TJCompressor(byte[],%20int,%20int,%20int,%20int)">org.libjpegturbo.turbojpeg.TJCompressor(byte[], int, int, int, int)</a>
|
<th class="colDeprecatedItemName" scope="row"><a href="org/libjpegturbo/turbojpeg/TJCompressor.html#compress(byte%5B%5D,int)">org.libjpegturbo.turbojpeg.TJCompressor.compress​(byte[], int)</a></th>
|
||||||
<div class="block"><i>Use
|
<td class="colLast">
|
||||||
<a href="org/libjpegturbo/turbojpeg/TJCompressor.html#TJCompressor(byte[],%20int,%20int,%20int,%20int,%20int,%20int)"><code>TJCompressor.TJCompressor(byte[], int, int, int, int, int, int)</code></a> instead.</i></div>
|
<div class="deprecationComment">Use <a href="org/libjpegturbo/turbojpeg/TJCompressor.html#set(int,int)"><code>set()</code></a> and <a href="org/libjpegturbo/turbojpeg/TJCompressor.html#compress(byte%5B%5D)"><code>TJCompressor.compress(byte[])</code></a> instead.</div>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr class="rowColor">
|
||||||
|
<th class="colDeprecatedItemName" scope="row"><a href="org/libjpegturbo/turbojpeg/TJCompressor.html#encodeYUV(org.libjpegturbo.turbojpeg.YUVImage,int)">org.libjpegturbo.turbojpeg.TJCompressor.encodeYUV​(YUVImage, int)</a></th>
|
||||||
|
<td class="colLast">
|
||||||
|
<div class="deprecationComment">Use <a href="org/libjpegturbo/turbojpeg/TJCompressor.html#set(int,int)"><code>set()</code></a> and <a href="org/libjpegturbo/turbojpeg/TJCompressor.html#encodeYUV(org.libjpegturbo.turbojpeg.YUVImage)"><code>TJCompressor.encodeYUV(YUVImage)</code></a>
|
||||||
|
instead.</div>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr class="altColor">
|
||||||
|
<th class="colDeprecatedItemName" scope="row"><a href="org/libjpegturbo/turbojpeg/TJCompressor.html#setJPEGQuality(int)">org.libjpegturbo.turbojpeg.TJCompressor.setJPEGQuality​(int)</a></th>
|
||||||
|
<td class="colLast">
|
||||||
|
<div class="deprecationComment">Use
|
||||||
|
<code><a href="org/libjpegturbo/turbojpeg/TJCompressor.html#set(int,int)"><code>set</code></a>(<a href="org/libjpegturbo/turbojpeg/TJ.html#PARAM_QUALITY"><code>TJ.PARAM_QUALITY</code></a>, ...)</code> instead.</div>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr class="rowColor">
|
||||||
|
<th class="colDeprecatedItemName" scope="row"><a href="org/libjpegturbo/turbojpeg/TJCompressor.html#setSubsamp(int)">org.libjpegturbo.turbojpeg.TJCompressor.setSubsamp​(int)</a></th>
|
||||||
|
<td class="colLast">
|
||||||
|
<div class="deprecationComment">Use
|
||||||
|
<code><a href="org/libjpegturbo/turbojpeg/TJCompressor.html#set(int,int)"><code>set</code></a>(<a href="org/libjpegturbo/turbojpeg/TJ.html#PARAM_SUBSAMP"><code>TJ.PARAM_SUBSAMP</code></a>, ...)</code> instead.</div>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr class="altColor">
|
||||||
|
<th class="colDeprecatedItemName" scope="row"><a href="org/libjpegturbo/turbojpeg/TJDecompressor.html#decompress(byte%5B%5D,int,int,int,int,int,int,int)">org.libjpegturbo.turbojpeg.TJDecompressor.decompress​(byte[], int, int, int, int, int, int, int)</a></th>
|
||||||
|
<td class="colLast">
|
||||||
|
<div class="deprecationComment">Use <a href="org/libjpegturbo/turbojpeg/TJDecompressor.html#set(int,int)"><code>set()</code></a>,
|
||||||
|
<a href="org/libjpegturbo/turbojpeg/TJDecompressor.html#setScalingFactor(org.libjpegturbo.turbojpeg.TJScalingFactor)"><code>setScalingFactor()</code></a>, and
|
||||||
|
<a href="org/libjpegturbo/turbojpeg/TJDecompressor.html#decompress8(byte%5B%5D,int,int,int,int)"><code>TJDecompressor.decompress8(byte[], int, int, int, int)</code></a> instead.</div>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr class="rowColor">
|
||||||
|
<th class="colDeprecatedItemName" scope="row"><a href="org/libjpegturbo/turbojpeg/TJDecompressor.html#decompressToYUV(org.libjpegturbo.turbojpeg.YUVImage,int)">org.libjpegturbo.turbojpeg.TJDecompressor.decompressToYUV​(YUVImage, int)</a></th>
|
||||||
|
<td class="colLast">
|
||||||
|
<div class="deprecationComment">Use <a href="org/libjpegturbo/turbojpeg/TJDecompressor.html#set(int,int)"><code>set()</code></a>, <a href="org/libjpegturbo/turbojpeg/TJDecompressor.html#setScalingFactor(org.libjpegturbo.turbojpeg.TJScalingFactor)"><code>setScalingFactor()</code></a>, and <a href="org/libjpegturbo/turbojpeg/TJDecompressor.html#decompressToYUV(org.libjpegturbo.turbojpeg.YUVImage)"><code>TJDecompressor.decompressToYUV(YUVImage)</code></a> instead.</div>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr class="altColor">
|
||||||
|
<th class="colDeprecatedItemName" scope="row"><a href="org/libjpegturbo/turbojpeg/TJDecompressor.html#getColorspace()">org.libjpegturbo.turbojpeg.TJDecompressor.getColorspace()</a></th>
|
||||||
|
<td class="colLast">
|
||||||
|
<div class="deprecationComment">Use <code><a href="org/libjpegturbo/turbojpeg/TJDecompressor.html#get(int)"><code>get</code></a>(<a href="org/libjpegturbo/turbojpeg/TJ.html#PARAM_COLORSPACE"><code>TJ.PARAM_COLORSPACE</code></a>)</code>
|
||||||
|
instead.</div>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr class="rowColor">
|
||||||
|
<th class="colDeprecatedItemName" scope="row"><a href="org/libjpegturbo/turbojpeg/TJDecompressor.html#getScaledHeight(int,int)">org.libjpegturbo.turbojpeg.TJDecompressor.getScaledHeight​(int, int)</a></th>
|
||||||
|
<td class="colLast">
|
||||||
|
<div class="deprecationComment">Use <a href="org/libjpegturbo/turbojpeg/TJDecompressor.html#setScalingFactor(org.libjpegturbo.turbojpeg.TJScalingFactor)"><code>setScalingFactor()</code></a> and
|
||||||
|
<a href="org/libjpegturbo/turbojpeg/TJScalingFactor.html#getScaled(int)"><code>TJScalingFactor.getScaled()</code></a> instead.</div>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr class="altColor">
|
||||||
|
<th class="colDeprecatedItemName" scope="row"><a href="org/libjpegturbo/turbojpeg/TJDecompressor.html#getScaledWidth(int,int)">org.libjpegturbo.turbojpeg.TJDecompressor.getScaledWidth​(int, int)</a></th>
|
||||||
|
<td class="colLast">
|
||||||
|
<div class="deprecationComment">Use <a href="org/libjpegturbo/turbojpeg/TJDecompressor.html#setScalingFactor(org.libjpegturbo.turbojpeg.TJScalingFactor)"><code>setScalingFactor()</code></a> and
|
||||||
|
<a href="org/libjpegturbo/turbojpeg/TJScalingFactor.html#getScaled(int)"><code>TJScalingFactor.getScaled()</code></a> instead.</div>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr class="rowColor">
|
||||||
|
<th class="colDeprecatedItemName" scope="row"><a href="org/libjpegturbo/turbojpeg/TJDecompressor.html#getSubsamp()">org.libjpegturbo.turbojpeg.TJDecompressor.getSubsamp()</a></th>
|
||||||
|
<td class="colLast">
|
||||||
|
<div class="deprecationComment">Use <code><a href="org/libjpegturbo/turbojpeg/TJDecompressor.html#get(int)"><code>get</code></a>(<a href="org/libjpegturbo/turbojpeg/TJ.html#PARAM_SUBSAMP"><code>TJ.PARAM_SUBSAMP</code></a>)</code>
|
||||||
|
instead.</div>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr class="altColor">
|
||||||
|
<th class="colDeprecatedItemName" scope="row"><a href="org/libjpegturbo/turbojpeg/TJTransformer.html#transform(byte%5B%5D%5B%5D,org.libjpegturbo.turbojpeg.TJTransform%5B%5D,int)">org.libjpegturbo.turbojpeg.TJTransformer.transform​(byte[][], TJTransform[], int)</a></th>
|
||||||
|
<td class="colLast">
|
||||||
|
<div class="deprecationComment">Use <a href="org/libjpegturbo/turbojpeg/TJDecompressor.html#set(int,int)"><code>TJDecompressor.set()</code></a> and
|
||||||
|
<a href="org/libjpegturbo/turbojpeg/TJTransformer.html#transform(byte%5B%5D%5B%5D,org.libjpegturbo.turbojpeg.TJTransform%5B%5D)"><code>TJTransformer.transform(byte[][], TJTransform[])</code></a> instead.</div>
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
</tbody>
|
</tbody>
|
||||||
@@ -205,10 +250,15 @@
|
|||||||
</li>
|
</li>
|
||||||
</ul>
|
</ul>
|
||||||
</div>
|
</div>
|
||||||
|
</main>
|
||||||
|
<footer role="contentinfo">
|
||||||
|
<nav role="navigation">
|
||||||
<!-- ======= START OF BOTTOM NAVBAR ====== -->
|
<!-- ======= START OF BOTTOM NAVBAR ====== -->
|
||||||
<div class="bottomNav"><a name="navbar_bottom">
|
<div class="bottomNav"><a id="navbar.bottom">
|
||||||
<!-- -->
|
<!-- -->
|
||||||
</a><a href="#skip-navbar_bottom" title="Skip navigation links"></a><a name="navbar_bottom_firstrow">
|
</a>
|
||||||
|
<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
|
||||||
|
<a id="navbar.bottom.firstrow">
|
||||||
<!-- -->
|
<!-- -->
|
||||||
</a>
|
</a>
|
||||||
<ul class="navList" title="Navigation">
|
<ul class="navList" title="Navigation">
|
||||||
@@ -221,16 +271,8 @@
|
|||||||
</ul>
|
</ul>
|
||||||
</div>
|
</div>
|
||||||
<div class="subNav">
|
<div class="subNav">
|
||||||
<ul class="navList">
|
|
||||||
<li>Prev</li>
|
|
||||||
<li>Next</li>
|
|
||||||
</ul>
|
|
||||||
<ul class="navList">
|
|
||||||
<li><a href="index.html?deprecated-list.html" target="_top">Frames</a></li>
|
|
||||||
<li><a href="deprecated-list.html" target="_top">No Frames</a></li>
|
|
||||||
</ul>
|
|
||||||
<ul class="navList" id="allclasses_navbar_bottom">
|
<ul class="navList" id="allclasses_navbar_bottom">
|
||||||
<li><a href="allclasses-noframe.html">All Classes</a></li>
|
<li><a href="allclasses.html">All Classes</a></li>
|
||||||
</ul>
|
</ul>
|
||||||
<div>
|
<div>
|
||||||
<script type="text/javascript"><!--
|
<script type="text/javascript"><!--
|
||||||
@@ -243,10 +285,15 @@
|
|||||||
}
|
}
|
||||||
//-->
|
//-->
|
||||||
</script>
|
</script>
|
||||||
|
<noscript>
|
||||||
|
<div>JavaScript is disabled on your browser.</div>
|
||||||
|
</noscript>
|
||||||
</div>
|
</div>
|
||||||
<a name="skip-navbar_bottom">
|
<a id="skip.navbar.bottom">
|
||||||
<!-- -->
|
<!-- -->
|
||||||
</a></div>
|
</a></div>
|
||||||
<!-- ======== END OF BOTTOM NAVBAR ======= -->
|
<!-- ======== END OF BOTTOM NAVBAR ======= -->
|
||||||
|
</nav>
|
||||||
|
</footer>
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
|
|||||||
@@ -1,9 +1,21 @@
|
|||||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
|
<!DOCTYPE HTML>
|
||||||
<!-- NewPage -->
|
<!-- NewPage -->
|
||||||
<html lang="en">
|
<html lang="en">
|
||||||
<head>
|
<head>
|
||||||
|
<!-- Generated by javadoc -->
|
||||||
<title>API Help</title>
|
<title>API Help</title>
|
||||||
|
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
|
||||||
<link rel="stylesheet" type="text/css" href="stylesheet.css" title="Style">
|
<link rel="stylesheet" type="text/css" href="stylesheet.css" title="Style">
|
||||||
|
<link rel="stylesheet" type="text/css" href="jquery/jquery-ui.min.css" title="Style">
|
||||||
|
<link rel="stylesheet" type="text/css" href="jquery-ui.overrides.css" title="Style">
|
||||||
|
<script type="text/javascript" src="script.js"></script>
|
||||||
|
<script type="text/javascript" src="jquery/jszip/dist/jszip.min.js"></script>
|
||||||
|
<script type="text/javascript" src="jquery/jszip-utils/dist/jszip-utils.min.js"></script>
|
||||||
|
<!--[if IE]>
|
||||||
|
<script type="text/javascript" src="jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
|
||||||
|
<![endif]-->
|
||||||
|
<script type="text/javascript" src="jquery/jquery-3.6.0.min.js"></script>
|
||||||
|
<script type="text/javascript" src="jquery/jquery-ui.min.js"></script>
|
||||||
</head>
|
</head>
|
||||||
<body>
|
<body>
|
||||||
<script type="text/javascript"><!--
|
<script type="text/javascript"><!--
|
||||||
@@ -15,14 +27,21 @@
|
|||||||
catch(err) {
|
catch(err) {
|
||||||
}
|
}
|
||||||
//-->
|
//-->
|
||||||
</script>
|
var pathtoroot = "./";
|
||||||
|
var useModuleDirectories = true;
|
||||||
|
loadScripts(document, 'script');</script>
|
||||||
<noscript>
|
<noscript>
|
||||||
<div>JavaScript is disabled on your browser.</div>
|
<div>JavaScript is disabled on your browser.</div>
|
||||||
</noscript>
|
</noscript>
|
||||||
|
<header role="banner">
|
||||||
|
<nav role="navigation">
|
||||||
|
<div class="fixedNav">
|
||||||
<!-- ========= START OF TOP NAVBAR ======= -->
|
<!-- ========= START OF TOP NAVBAR ======= -->
|
||||||
<div class="topNav"><a name="navbar_top">
|
<div class="topNav"><a id="navbar.top">
|
||||||
<!-- -->
|
<!-- -->
|
||||||
</a><a href="#skip-navbar_top" title="Skip navigation links"></a><a name="navbar_top_firstrow">
|
</a>
|
||||||
|
<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
|
||||||
|
<a id="navbar.top.firstrow">
|
||||||
<!-- -->
|
<!-- -->
|
||||||
</a>
|
</a>
|
||||||
<ul class="navList" title="Navigation">
|
<ul class="navList" title="Navigation">
|
||||||
@@ -35,16 +54,14 @@
|
|||||||
</ul>
|
</ul>
|
||||||
</div>
|
</div>
|
||||||
<div class="subNav">
|
<div class="subNav">
|
||||||
<ul class="navList">
|
|
||||||
<li>Prev</li>
|
|
||||||
<li>Next</li>
|
|
||||||
</ul>
|
|
||||||
<ul class="navList">
|
|
||||||
<li><a href="index.html?help-doc.html" target="_top">Frames</a></li>
|
|
||||||
<li><a href="help-doc.html" target="_top">No Frames</a></li>
|
|
||||||
</ul>
|
|
||||||
<ul class="navList" id="allclasses_navbar_top">
|
<ul class="navList" id="allclasses_navbar_top">
|
||||||
<li><a href="allclasses-noframe.html">All Classes</a></li>
|
<li><a href="allclasses.html">All Classes</a></li>
|
||||||
|
</ul>
|
||||||
|
<ul class="navListSearch">
|
||||||
|
<li><label for="search">SEARCH:</label>
|
||||||
|
<input type="text" id="search" value="search" disabled="disabled">
|
||||||
|
<input type="reset" id="reset" value="reset" disabled="disabled">
|
||||||
|
</li>
|
||||||
</ul>
|
</ul>
|
||||||
<div>
|
<div>
|
||||||
<script type="text/javascript"><!--
|
<script type="text/javascript"><!--
|
||||||
@@ -57,11 +74,23 @@
|
|||||||
}
|
}
|
||||||
//-->
|
//-->
|
||||||
</script>
|
</script>
|
||||||
|
<noscript>
|
||||||
|
<div>JavaScript is disabled on your browser.</div>
|
||||||
|
</noscript>
|
||||||
</div>
|
</div>
|
||||||
<a name="skip-navbar_top">
|
<a id="skip.navbar.top">
|
||||||
<!-- -->
|
<!-- -->
|
||||||
</a></div>
|
</a></div>
|
||||||
<!-- ========= END OF TOP NAVBAR ========= -->
|
<!-- ========= END OF TOP NAVBAR ========= -->
|
||||||
|
</div>
|
||||||
|
<div class="navPadding"> </div>
|
||||||
|
<script type="text/javascript"><!--
|
||||||
|
$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
|
||||||
|
//-->
|
||||||
|
</script>
|
||||||
|
</nav>
|
||||||
|
</header>
|
||||||
|
<main role="main">
|
||||||
<div class="header">
|
<div class="header">
|
||||||
<h1 class="title">How This API Document Is Organized</h1>
|
<h1 class="title">How This API Document Is Organized</h1>
|
||||||
<div class="subTitle">This API (Application Programming Interface) document has pages corresponding to the items in the navigation bar, described as follows.</div>
|
<div class="subTitle">This API (Application Programming Interface) document has pages corresponding to the items in the navigation bar, described as follows.</div>
|
||||||
@@ -69,104 +98,132 @@
|
|||||||
<div class="contentContainer">
|
<div class="contentContainer">
|
||||||
<ul class="blockList">
|
<ul class="blockList">
|
||||||
<li class="blockList">
|
<li class="blockList">
|
||||||
|
<section>
|
||||||
<h2>Package</h2>
|
<h2>Package</h2>
|
||||||
<p>Each package has a page that contains a list of its classes and interfaces, with a summary for each. This page can contain six categories:</p>
|
<p>Each package has a page that contains a list of its classes and interfaces, with a summary for each. These pages may contain six categories:</p>
|
||||||
<ul>
|
<ul>
|
||||||
<li>Interfaces (italic)</li>
|
<li>Interfaces</li>
|
||||||
<li>Classes</li>
|
<li>Classes</li>
|
||||||
<li>Enums</li>
|
<li>Enums</li>
|
||||||
<li>Exceptions</li>
|
<li>Exceptions</li>
|
||||||
<li>Errors</li>
|
<li>Errors</li>
|
||||||
<li>Annotation Types</li>
|
<li>Annotation Types</li>
|
||||||
</ul>
|
</ul>
|
||||||
|
</section>
|
||||||
</li>
|
</li>
|
||||||
<li class="blockList">
|
<li class="blockList">
|
||||||
<h2>Class/Interface</h2>
|
<section>
|
||||||
|
<h2>Class or Interface</h2>
|
||||||
<p>Each class, interface, nested class and nested interface has its own separate page. Each of these pages has three sections consisting of a class/interface description, summary tables, and detailed member descriptions:</p>
|
<p>Each class, interface, nested class and nested interface has its own separate page. Each of these pages has three sections consisting of a class/interface description, summary tables, and detailed member descriptions:</p>
|
||||||
<ul>
|
<ul>
|
||||||
<li>Class inheritance diagram</li>
|
<li>Class Inheritance Diagram</li>
|
||||||
<li>Direct Subclasses</li>
|
<li>Direct Subclasses</li>
|
||||||
<li>All Known Subinterfaces</li>
|
<li>All Known Subinterfaces</li>
|
||||||
<li>All Known Implementing Classes</li>
|
<li>All Known Implementing Classes</li>
|
||||||
<li>Class/interface declaration</li>
|
<li>Class or Interface Declaration</li>
|
||||||
<li>Class/interface description</li>
|
<li>Class or Interface Description</li>
|
||||||
</ul>
|
</ul>
|
||||||
|
<br>
|
||||||
<ul>
|
<ul>
|
||||||
<li>Nested Class Summary</li>
|
<li>Nested Class Summary</li>
|
||||||
<li>Field Summary</li>
|
<li>Field Summary</li>
|
||||||
|
<li>Property Summary</li>
|
||||||
<li>Constructor Summary</li>
|
<li>Constructor Summary</li>
|
||||||
<li>Method Summary</li>
|
<li>Method Summary</li>
|
||||||
</ul>
|
</ul>
|
||||||
|
<br>
|
||||||
<ul>
|
<ul>
|
||||||
<li>Field Detail</li>
|
<li>Field Detail</li>
|
||||||
|
<li>Property Detail</li>
|
||||||
<li>Constructor Detail</li>
|
<li>Constructor Detail</li>
|
||||||
<li>Method Detail</li>
|
<li>Method Detail</li>
|
||||||
</ul>
|
</ul>
|
||||||
<p>Each summary entry contains the first sentence from the detailed description for that item. The summary entries are alphabetical, while the detailed descriptions are in the order they appear in the source code. This preserves the logical groupings established by the programmer.</p>
|
<p>Each summary entry contains the first sentence from the detailed description for that item. The summary entries are alphabetical, while the detailed descriptions are in the order they appear in the source code. This preserves the logical groupings established by the programmer.</p>
|
||||||
|
</section>
|
||||||
</li>
|
</li>
|
||||||
<li class="blockList">
|
<li class="blockList">
|
||||||
|
<section>
|
||||||
<h2>Annotation Type</h2>
|
<h2>Annotation Type</h2>
|
||||||
<p>Each annotation type has its own separate page with the following sections:</p>
|
<p>Each annotation type has its own separate page with the following sections:</p>
|
||||||
<ul>
|
<ul>
|
||||||
<li>Annotation Type declaration</li>
|
<li>Annotation Type Declaration</li>
|
||||||
<li>Annotation Type description</li>
|
<li>Annotation Type Description</li>
|
||||||
<li>Required Element Summary</li>
|
<li>Required Element Summary</li>
|
||||||
<li>Optional Element Summary</li>
|
<li>Optional Element Summary</li>
|
||||||
<li>Element Detail</li>
|
<li>Element Detail</li>
|
||||||
</ul>
|
</ul>
|
||||||
|
</section>
|
||||||
</li>
|
</li>
|
||||||
<li class="blockList">
|
<li class="blockList">
|
||||||
|
<section>
|
||||||
<h2>Enum</h2>
|
<h2>Enum</h2>
|
||||||
<p>Each enum has its own separate page with the following sections:</p>
|
<p>Each enum has its own separate page with the following sections:</p>
|
||||||
<ul>
|
<ul>
|
||||||
<li>Enum declaration</li>
|
<li>Enum Declaration</li>
|
||||||
<li>Enum description</li>
|
<li>Enum Description</li>
|
||||||
<li>Enum Constant Summary</li>
|
<li>Enum Constant Summary</li>
|
||||||
<li>Enum Constant Detail</li>
|
<li>Enum Constant Detail</li>
|
||||||
</ul>
|
</ul>
|
||||||
|
</section>
|
||||||
</li>
|
</li>
|
||||||
<li class="blockList">
|
<li class="blockList">
|
||||||
|
<section>
|
||||||
<h2>Tree (Class Hierarchy)</h2>
|
<h2>Tree (Class Hierarchy)</h2>
|
||||||
<p>There is a <a href="overview-tree.html">Class Hierarchy</a> page for all packages, plus a hierarchy for each package. Each hierarchy page contains a list of classes and a list of interfaces. The classes are organized by inheritance structure starting with <code>java.lang.Object</code>. The interfaces do not inherit from <code>java.lang.Object</code>.</p>
|
<p>There is a <a href="overview-tree.html">Class Hierarchy</a> page for all packages, plus a hierarchy for each package. Each hierarchy page contains a list of classes and a list of interfaces. Classes are organized by inheritance structure starting with <code>java.lang.Object</code>. Interfaces do not inherit from <code>java.lang.Object</code>.</p>
|
||||||
<ul>
|
<ul>
|
||||||
<li>When viewing the Overview page, clicking on "Tree" displays the hierarchy for all packages.</li>
|
<li>When viewing the Overview page, clicking on "Tree" displays the hierarchy for all packages.</li>
|
||||||
<li>When viewing a particular package, class or interface page, clicking "Tree" displays the hierarchy for only that package.</li>
|
<li>When viewing a particular package, class or interface page, clicking on "Tree" displays the hierarchy for only that package.</li>
|
||||||
</ul>
|
</ul>
|
||||||
|
</section>
|
||||||
</li>
|
</li>
|
||||||
<li class="blockList">
|
<li class="blockList">
|
||||||
|
<section>
|
||||||
<h2>Deprecated API</h2>
|
<h2>Deprecated API</h2>
|
||||||
<p>The <a href="deprecated-list.html">Deprecated API</a> page lists all of the API that have been deprecated. A deprecated API is not recommended for use, generally due to improvements, and a replacement API is usually given. Deprecated APIs may be removed in future implementations.</p>
|
<p>The <a href="deprecated-list.html">Deprecated API</a> page lists all of the API that have been deprecated. A deprecated API is not recommended for use, generally due to improvements, and a replacement API is usually given. Deprecated APIs may be removed in future implementations.</p>
|
||||||
|
</section>
|
||||||
</li>
|
</li>
|
||||||
<li class="blockList">
|
<li class="blockList">
|
||||||
|
<section>
|
||||||
<h2>Index</h2>
|
<h2>Index</h2>
|
||||||
<p>The <a href="index-all.html">Index</a> contains an alphabetic list of all classes, interfaces, constructors, methods, and fields.</p>
|
<p>The <a href="index-all.html">Index</a> contains an alphabetic index of all classes, interfaces, constructors, methods, and fields, as well as lists of all packages and all classes.</p>
|
||||||
|
</section>
|
||||||
</li>
|
</li>
|
||||||
<li class="blockList">
|
<li class="blockList">
|
||||||
<h2>Prev/Next</h2>
|
<section>
|
||||||
<p>These links take you to the next or previous class, interface, package, or related page.</p>
|
<h2>All Classes</h2>
|
||||||
</li>
|
<p>The <a href="allclasses.html">All Classes</a> link shows all classes and interfaces except non-static nested types.</p>
|
||||||
<li class="blockList">
|
</section>
|
||||||
<h2>Frames/No Frames</h2>
|
|
||||||
<p>These links show and hide the HTML frames. All pages are available with or without frames.</p>
|
|
||||||
</li>
|
|
||||||
<li class="blockList">
|
|
||||||
<h2>All Classes</h2>
|
|
||||||
<p>The <a href="allclasses-noframe.html">All Classes</a> link shows all classes and interfaces except non-static nested types.</p>
|
|
||||||
</li>
|
</li>
|
||||||
<li class="blockList">
|
<li class="blockList">
|
||||||
|
<section>
|
||||||
<h2>Serialized Form</h2>
|
<h2>Serialized Form</h2>
|
||||||
<p>Each serializable or externalizable class has a description of its serialization fields and methods. This information is of interest to re-implementors, not to developers using the API. While there is no link in the navigation bar, you can get to this information by going to any serialized class and clicking "Serialized Form" in the "See also" section of the class description.</p>
|
<p>Each serializable or externalizable class has a description of its serialization fields and methods. This information is of interest to re-implementors, not to developers using the API. While there is no link in the navigation bar, you can get to this information by going to any serialized class and clicking "Serialized Form" in the "See also" section of the class description.</p>
|
||||||
|
</section>
|
||||||
</li>
|
</li>
|
||||||
<li class="blockList">
|
<li class="blockList">
|
||||||
|
<section>
|
||||||
<h2>Constant Field Values</h2>
|
<h2>Constant Field Values</h2>
|
||||||
<p>The <a href="constant-values.html">Constant Field Values</a> page lists the static final fields and their values.</p>
|
<p>The <a href="constant-values.html">Constant Field Values</a> page lists the static final fields and their values.</p>
|
||||||
|
</section>
|
||||||
|
</li>
|
||||||
|
<li class="blockList">
|
||||||
|
<section>
|
||||||
|
<h2>Search</h2>
|
||||||
|
<p>You can search for definitions of modules, packages, types, fields, methods and other terms defined in the API, using some or all of the name. "Camel-case" abbreviations are supported: for example, "InpStr" will find "InputStream" and "InputStreamReader".</p>
|
||||||
|
</section>
|
||||||
</li>
|
</li>
|
||||||
</ul>
|
</ul>
|
||||||
<em>This help file applies to API documentation generated using the standard doclet.</em></div>
|
<hr>
|
||||||
|
<span class="emphasizedPhrase">This help file applies to API documentation generated by the standard doclet.</span></div>
|
||||||
|
</main>
|
||||||
|
<footer role="contentinfo">
|
||||||
|
<nav role="navigation">
|
||||||
<!-- ======= START OF BOTTOM NAVBAR ====== -->
|
<!-- ======= START OF BOTTOM NAVBAR ====== -->
|
||||||
<div class="bottomNav"><a name="navbar_bottom">
|
<div class="bottomNav"><a id="navbar.bottom">
|
||||||
<!-- -->
|
<!-- -->
|
||||||
</a><a href="#skip-navbar_bottom" title="Skip navigation links"></a><a name="navbar_bottom_firstrow">
|
</a>
|
||||||
|
<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
|
||||||
|
<a id="navbar.bottom.firstrow">
|
||||||
<!-- -->
|
<!-- -->
|
||||||
</a>
|
</a>
|
||||||
<ul class="navList" title="Navigation">
|
<ul class="navList" title="Navigation">
|
||||||
@@ -179,16 +236,8 @@
|
|||||||
</ul>
|
</ul>
|
||||||
</div>
|
</div>
|
||||||
<div class="subNav">
|
<div class="subNav">
|
||||||
<ul class="navList">
|
|
||||||
<li>Prev</li>
|
|
||||||
<li>Next</li>
|
|
||||||
</ul>
|
|
||||||
<ul class="navList">
|
|
||||||
<li><a href="index.html?help-doc.html" target="_top">Frames</a></li>
|
|
||||||
<li><a href="help-doc.html" target="_top">No Frames</a></li>
|
|
||||||
</ul>
|
|
||||||
<ul class="navList" id="allclasses_navbar_bottom">
|
<ul class="navList" id="allclasses_navbar_bottom">
|
||||||
<li><a href="allclasses-noframe.html">All Classes</a></li>
|
<li><a href="allclasses.html">All Classes</a></li>
|
||||||
</ul>
|
</ul>
|
||||||
<div>
|
<div>
|
||||||
<script type="text/javascript"><!--
|
<script type="text/javascript"><!--
|
||||||
@@ -201,10 +250,15 @@
|
|||||||
}
|
}
|
||||||
//-->
|
//-->
|
||||||
</script>
|
</script>
|
||||||
|
<noscript>
|
||||||
|
<div>JavaScript is disabled on your browser.</div>
|
||||||
|
</noscript>
|
||||||
</div>
|
</div>
|
||||||
<a name="skip-navbar_bottom">
|
<a id="skip.navbar.bottom">
|
||||||
<!-- -->
|
<!-- -->
|
||||||
</a></div>
|
</a></div>
|
||||||
<!-- ======== END OF BOTTOM NAVBAR ======= -->
|
<!-- ======== END OF BOTTOM NAVBAR ======= -->
|
||||||
|
</nav>
|
||||||
|
</footer>
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
|
|||||||
File diff suppressed because it is too large
Load Diff
@@ -1,71 +1,23 @@
|
|||||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN" "http://www.w3.org/TR/html4/frameset.dtd">
|
<!DOCTYPE HTML>
|
||||||
<!-- NewPage -->
|
<!-- NewPage -->
|
||||||
<html lang="en">
|
<html lang="en">
|
||||||
<head>
|
<head>
|
||||||
|
<!-- Generated by javadoc -->
|
||||||
<title>Generated Documentation (Untitled)</title>
|
<title>Generated Documentation (Untitled)</title>
|
||||||
<script type="text/javascript">
|
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
|
||||||
tmpTargetPage = "" + window.location.search;
|
<script type="text/javascript">window.location.replace('org/libjpegturbo/turbojpeg/package-summary.html')</script>
|
||||||
if (tmpTargetPage != "" && tmpTargetPage != "undefined")
|
|
||||||
tmpTargetPage = tmpTargetPage.substring(1);
|
|
||||||
if (tmpTargetPage.indexOf(":") != -1 || (tmpTargetPage != "" && !validURL(tmpTargetPage)))
|
|
||||||
tmpTargetPage = "undefined";
|
|
||||||
targetPage = tmpTargetPage;
|
|
||||||
function validURL(url) {
|
|
||||||
try {
|
|
||||||
url = decodeURIComponent(url);
|
|
||||||
}
|
|
||||||
catch (error) {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
var pos = url.indexOf(".html");
|
|
||||||
if (pos == -1 || pos != url.length - 5)
|
|
||||||
return false;
|
|
||||||
var allowNumber = false;
|
|
||||||
var allowSep = false;
|
|
||||||
var seenDot = false;
|
|
||||||
for (var i = 0; i < url.length - 5; i++) {
|
|
||||||
var ch = url.charAt(i);
|
|
||||||
if ('a' <= ch && ch <= 'z' ||
|
|
||||||
'A' <= ch && ch <= 'Z' ||
|
|
||||||
ch == '$' ||
|
|
||||||
ch == '_' ||
|
|
||||||
ch.charCodeAt(0) > 127) {
|
|
||||||
allowNumber = true;
|
|
||||||
allowSep = true;
|
|
||||||
} else if ('0' <= ch && ch <= '9'
|
|
||||||
|| ch == '-') {
|
|
||||||
if (!allowNumber)
|
|
||||||
return false;
|
|
||||||
} else if (ch == '/' || ch == '.') {
|
|
||||||
if (!allowSep)
|
|
||||||
return false;
|
|
||||||
allowNumber = false;
|
|
||||||
allowSep = false;
|
|
||||||
if (ch == '.')
|
|
||||||
seenDot = true;
|
|
||||||
if (ch == '/' && seenDot)
|
|
||||||
return false;
|
|
||||||
} else {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
function loadFrames() {
|
|
||||||
if (targetPage != "" && targetPage != "undefined")
|
|
||||||
top.classFrame.location = top.targetPage;
|
|
||||||
}
|
|
||||||
</script>
|
|
||||||
</head>
|
|
||||||
<frameset cols="20%,80%" title="Documentation frame" onload="top.loadFrames()">
|
|
||||||
<frame src="allclasses-frame.html" name="packageFrame" title="All classes and interfaces (except non-static nested types)">
|
|
||||||
<frame src="org/libjpegturbo/turbojpeg/package-summary.html" name="classFrame" title="Package, class and interface descriptions" scrolling="yes">
|
|
||||||
<noframes>
|
|
||||||
<noscript>
|
<noscript>
|
||||||
<div>JavaScript is disabled on your browser.</div>
|
<meta http-equiv="Refresh" content="0;org/libjpegturbo/turbojpeg/package-summary.html">
|
||||||
</noscript>
|
</noscript>
|
||||||
<h2>Frame Alert</h2>
|
<link rel="canonical" href="org/libjpegturbo/turbojpeg/package-summary.html">
|
||||||
<p>This document is designed to be viewed using the frames feature. If you see this message, you are using a non-frame-capable web client. Link to <a href="org/libjpegturbo/turbojpeg/package-summary.html">Non-frame version</a>.</p>
|
<link rel="stylesheet" type="text/css" href="stylesheet.css" title="Style">
|
||||||
</noframes>
|
</head>
|
||||||
</frameset>
|
<body>
|
||||||
|
<main role="main">
|
||||||
|
<noscript>
|
||||||
|
<p>JavaScript is disabled on your browser.</p>
|
||||||
|
</noscript>
|
||||||
|
<p><a href="org/libjpegturbo/turbojpeg/package-summary.html">org/libjpegturbo/turbojpeg/package-summary.html</a></p>
|
||||||
|
</main>
|
||||||
|
</body>
|
||||||
</html>
|
</html>
|
||||||
|
|||||||
35
java/doc/jquery-ui.overrides.css
vendored
Normal file
35
java/doc/jquery-ui.overrides.css
vendored
Normal file
@@ -0,0 +1,35 @@
|
|||||||
|
/*
|
||||||
|
* Copyright (c) 2020, 2022, Oracle and/or its affiliates. All rights reserved.
|
||||||
|
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||||
|
*
|
||||||
|
* This code is free software; you can redistribute it and/or modify it
|
||||||
|
* under the terms of the GNU General Public License version 2 only, as
|
||||||
|
* published by the Free Software Foundation. Oracle designates this
|
||||||
|
* particular file as subject to the "Classpath" exception as provided
|
||||||
|
* by Oracle in the LICENSE file that accompanied this code.
|
||||||
|
*
|
||||||
|
* This code is distributed in the hope that it will be useful, but WITHOUT
|
||||||
|
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||||
|
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
||||||
|
* version 2 for more details (a copy is included in the LICENSE file that
|
||||||
|
* accompanied this code).
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License version
|
||||||
|
* 2 along with this work; if not, write to the Free Software Foundation,
|
||||||
|
* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||||
|
*
|
||||||
|
* Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
|
||||||
|
* or visit www.oracle.com if you need additional information or have any
|
||||||
|
* questions.
|
||||||
|
*/
|
||||||
|
|
||||||
|
.ui-state-active,
|
||||||
|
.ui-widget-content .ui-state-active,
|
||||||
|
.ui-widget-header .ui-state-active,
|
||||||
|
a.ui-button:active,
|
||||||
|
.ui-button:active,
|
||||||
|
.ui-button.ui-state-active:hover {
|
||||||
|
/* Overrides the color of selection used in jQuery UI */
|
||||||
|
background: #F8981D;
|
||||||
|
border: 1px solid #F8981D;
|
||||||
|
}
|
||||||
10872
java/doc/jquery/external/jquery/jquery.js
vendored
Normal file
10872
java/doc/jquery/external/jquery/jquery.js
vendored
Normal file
File diff suppressed because it is too large
Load Diff
2
java/doc/jquery/jquery-3.6.0.min.js
vendored
Normal file
2
java/doc/jquery/jquery-3.6.0.min.js
vendored
Normal file
File diff suppressed because one or more lines are too long
6
java/doc/jquery/jquery-ui.min.css
vendored
Normal file
6
java/doc/jquery/jquery-ui.min.css
vendored
Normal file
@@ -0,0 +1,6 @@
|
|||||||
|
/*! jQuery UI - v1.13.1 - 2022-05-12
|
||||||
|
* http://jqueryui.com
|
||||||
|
* Includes: core.css, autocomplete.css, menu.css
|
||||||
|
* Copyright jQuery Foundation and other contributors; Licensed MIT */
|
||||||
|
|
||||||
|
.ui-helper-hidden{display:none}.ui-helper-hidden-accessible{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.ui-helper-reset{margin:0;padding:0;border:0;outline:0;line-height:1.3;text-decoration:none;font-size:100%;list-style:none}.ui-helper-clearfix:before,.ui-helper-clearfix:after{content:"";display:table;border-collapse:collapse}.ui-helper-clearfix:after{clear:both}.ui-helper-zfix{width:100%;height:100%;top:0;left:0;position:absolute;opacity:0;-ms-filter:"alpha(opacity=0)"}.ui-front{z-index:100}.ui-state-disabled{cursor:default!important;pointer-events:none}.ui-icon{display:inline-block;vertical-align:middle;margin-top:-.25em;position:relative;text-indent:-99999px;overflow:hidden;background-repeat:no-repeat}.ui-widget-icon-block{left:50%;margin-left:-8px;display:block}.ui-widget-overlay{position:fixed;top:0;left:0;width:100%;height:100%}.ui-autocomplete{position:absolute;top:0;left:0;cursor:default}.ui-menu{list-style:none;padding:0;margin:0;display:block;outline:0}.ui-menu .ui-menu{position:absolute}.ui-menu .ui-menu-item{margin:0;cursor:pointer;list-style-image:url("data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7")}.ui-menu .ui-menu-item-wrapper{position:relative;padding:3px 1em 3px .4em}.ui-menu .ui-menu-divider{margin:5px 0;height:0;font-size:0;line-height:0;border-width:1px 0 0 0}.ui-menu .ui-state-focus,.ui-menu .ui-state-active{margin:-1px}.ui-menu-icons{position:relative}.ui-menu-icons .ui-menu-item-wrapper{padding-left:2em}.ui-menu .ui-icon{position:absolute;top:0;bottom:0;left:.2em;margin:auto 0}.ui-menu .ui-menu-icon{left:auto;right:0}
|
||||||
6
java/doc/jquery/jquery-ui.min.js
vendored
Normal file
6
java/doc/jquery/jquery-ui.min.js
vendored
Normal file
File diff suppressed because one or more lines are too long
56
java/doc/jquery/jszip-utils/dist/jszip-utils-ie.js
vendored
Normal file
56
java/doc/jquery/jszip-utils/dist/jszip-utils-ie.js
vendored
Normal file
@@ -0,0 +1,56 @@
|
|||||||
|
/*!
|
||||||
|
|
||||||
|
JSZipUtils - A collection of cross-browser utilities to go along with JSZip.
|
||||||
|
<http://stuk.github.io/jszip-utils>
|
||||||
|
|
||||||
|
(c) 2014 Stuart Knightley, David Duponchel
|
||||||
|
Dual licenced under the MIT license or GPLv3. See https://raw.github.com/Stuk/jszip-utils/master/LICENSE.markdown.
|
||||||
|
|
||||||
|
*/
|
||||||
|
;(function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require=="function"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);throw new Error("Cannot find module '"+o+"'")}var f=n[o]={exports:{}};t[o][0].call(f.exports,function(e){var n=t[o][1][e];return s(n?n:e)},f,f.exports,e,t,n,r)}return n[o].exports}var i=typeof require=="function"&&require;for(var o=0;o<r.length;o++)s(r[o]);return s})({1:[function(require,module,exports){
|
||||||
|
var global=typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {};/* jshint evil: true, newcap: false */
|
||||||
|
/* global IEBinaryToArray_ByteStr, IEBinaryToArray_ByteStr_Last */
|
||||||
|
"use strict";
|
||||||
|
|
||||||
|
// Adapted from http://stackoverflow.com/questions/1095102/how-do-i-load-binary-image-data-using-javascript-and-xmlhttprequest
|
||||||
|
var IEBinaryToArray_ByteStr_Script =
|
||||||
|
"<!-- IEBinaryToArray_ByteStr -->\r\n"+
|
||||||
|
"<script type='text/vbscript'>\r\n"+
|
||||||
|
"Function IEBinaryToArray_ByteStr(Binary)\r\n"+
|
||||||
|
" IEBinaryToArray_ByteStr = CStr(Binary)\r\n"+
|
||||||
|
"End Function\r\n"+
|
||||||
|
"Function IEBinaryToArray_ByteStr_Last(Binary)\r\n"+
|
||||||
|
" Dim lastIndex\r\n"+
|
||||||
|
" lastIndex = LenB(Binary)\r\n"+
|
||||||
|
" if lastIndex mod 2 Then\r\n"+
|
||||||
|
" IEBinaryToArray_ByteStr_Last = Chr( AscB( MidB( Binary, lastIndex, 1 ) ) )\r\n"+
|
||||||
|
" Else\r\n"+
|
||||||
|
" IEBinaryToArray_ByteStr_Last = "+'""'+"\r\n"+
|
||||||
|
" End If\r\n"+
|
||||||
|
"End Function\r\n"+
|
||||||
|
"</script>\r\n";
|
||||||
|
|
||||||
|
// inject VBScript
|
||||||
|
document.write(IEBinaryToArray_ByteStr_Script);
|
||||||
|
|
||||||
|
global.JSZipUtils._getBinaryFromXHR = function (xhr) {
|
||||||
|
var binary = xhr.responseBody;
|
||||||
|
var byteMapping = {};
|
||||||
|
for ( var i = 0; i < 256; i++ ) {
|
||||||
|
for ( var j = 0; j < 256; j++ ) {
|
||||||
|
byteMapping[ String.fromCharCode( i + (j << 8) ) ] =
|
||||||
|
String.fromCharCode(i) + String.fromCharCode(j);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
var rawBytes = IEBinaryToArray_ByteStr(binary);
|
||||||
|
var lastChr = IEBinaryToArray_ByteStr_Last(binary);
|
||||||
|
return rawBytes.replace(/[\s\S]/g, function( match ) {
|
||||||
|
return byteMapping[match];
|
||||||
|
}) + lastChr;
|
||||||
|
};
|
||||||
|
|
||||||
|
// enforcing Stuk's coding style
|
||||||
|
// vim: set shiftwidth=4 softtabstop=4:
|
||||||
|
|
||||||
|
},{}]},{},[1])
|
||||||
|
;
|
||||||
10
java/doc/jquery/jszip-utils/dist/jszip-utils-ie.min.js
vendored
Normal file
10
java/doc/jquery/jszip-utils/dist/jszip-utils-ie.min.js
vendored
Normal file
@@ -0,0 +1,10 @@
|
|||||||
|
/*!
|
||||||
|
|
||||||
|
JSZipUtils - A collection of cross-browser utilities to go along with JSZip.
|
||||||
|
<http://stuk.github.io/jszip-utils>
|
||||||
|
|
||||||
|
(c) 2014 Stuart Knightley, David Duponchel
|
||||||
|
Dual licenced under the MIT license or GPLv3. See https://raw.github.com/Stuk/jszip-utils/master/LICENSE.markdown.
|
||||||
|
|
||||||
|
*/
|
||||||
|
!function a(b,c,d){function e(g,h){if(!c[g]){if(!b[g]){var i="function"==typeof require&&require;if(!h&&i)return i(g,!0);if(f)return f(g,!0);throw new Error("Cannot find module '"+g+"'")}var j=c[g]={exports:{}};b[g][0].call(j.exports,function(a){var c=b[g][1][a];return e(c?c:a)},j,j.exports,a,b,c,d)}return c[g].exports}for(var f="function"==typeof require&&require,g=0;g<d.length;g++)e(d[g]);return e}({1:[function(){var a="undefined"!=typeof self?self:"undefined"!=typeof window?window:{},b="<!-- IEBinaryToArray_ByteStr -->\r\n<script type='text/vbscript'>\r\nFunction IEBinaryToArray_ByteStr(Binary)\r\n IEBinaryToArray_ByteStr = CStr(Binary)\r\nEnd Function\r\nFunction IEBinaryToArray_ByteStr_Last(Binary)\r\n Dim lastIndex\r\n lastIndex = LenB(Binary)\r\n if lastIndex mod 2 Then\r\n IEBinaryToArray_ByteStr_Last = Chr( AscB( MidB( Binary, lastIndex, 1 ) ) )\r\n Else\r\n IEBinaryToArray_ByteStr_Last = \"\"\r\n End If\r\nEnd Function\r\n</script>\r\n";document.write(b),a.JSZipUtils._getBinaryFromXHR=function(a){for(var b=a.responseBody,c={},d=0;256>d;d++)for(var e=0;256>e;e++)c[String.fromCharCode(d+(e<<8))]=String.fromCharCode(d)+String.fromCharCode(e);var f=IEBinaryToArray_ByteStr(b),g=IEBinaryToArray_ByteStr_Last(b);return f.replace(/[\s\S]/g,function(a){return c[a]})+g}},{}]},{},[1]);
|
||||||
118
java/doc/jquery/jszip-utils/dist/jszip-utils.js
vendored
Normal file
118
java/doc/jquery/jszip-utils/dist/jszip-utils.js
vendored
Normal file
@@ -0,0 +1,118 @@
|
|||||||
|
/*!
|
||||||
|
|
||||||
|
JSZipUtils - A collection of cross-browser utilities to go along with JSZip.
|
||||||
|
<http://stuk.github.io/jszip-utils>
|
||||||
|
|
||||||
|
(c) 2014 Stuart Knightley, David Duponchel
|
||||||
|
Dual licenced under the MIT license or GPLv3. See https://raw.github.com/Stuk/jszip-utils/master/LICENSE.markdown.
|
||||||
|
|
||||||
|
*/
|
||||||
|
!function(e){"object"==typeof exports?module.exports=e():"function"==typeof define&&define.amd?define(e):"undefined"!=typeof window?window.JSZipUtils=e():"undefined"!=typeof global?global.JSZipUtils=e():"undefined"!=typeof self&&(self.JSZipUtils=e())}(function(){var define,module,exports;return (function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require=="function"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);throw new Error("Cannot find module '"+o+"'")}var f=n[o]={exports:{}};t[o][0].call(f.exports,function(e){var n=t[o][1][e];return s(n?n:e)},f,f.exports,e,t,n,r)}return n[o].exports}var i=typeof require=="function"&&require;for(var o=0;o<r.length;o++)s(r[o]);return s})({1:[function(require,module,exports){
|
||||||
|
'use strict';
|
||||||
|
|
||||||
|
var JSZipUtils = {};
|
||||||
|
// just use the responseText with xhr1, response with xhr2.
|
||||||
|
// The transformation doesn't throw away high-order byte (with responseText)
|
||||||
|
// because JSZip handles that case. If not used with JSZip, you may need to
|
||||||
|
// do it, see https://developer.mozilla.org/En/Using_XMLHttpRequest#Handling_binary_data
|
||||||
|
JSZipUtils._getBinaryFromXHR = function (xhr) {
|
||||||
|
// for xhr.responseText, the 0xFF mask is applied by JSZip
|
||||||
|
return xhr.response || xhr.responseText;
|
||||||
|
};
|
||||||
|
|
||||||
|
// taken from jQuery
|
||||||
|
function createStandardXHR() {
|
||||||
|
try {
|
||||||
|
return new window.XMLHttpRequest();
|
||||||
|
} catch( e ) {}
|
||||||
|
}
|
||||||
|
|
||||||
|
function createActiveXHR() {
|
||||||
|
try {
|
||||||
|
return new window.ActiveXObject("Microsoft.XMLHTTP");
|
||||||
|
} catch( e ) {}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Create the request object
|
||||||
|
var createXHR = window.ActiveXObject ?
|
||||||
|
/* Microsoft failed to properly
|
||||||
|
* implement the XMLHttpRequest in IE7 (can't request local files),
|
||||||
|
* so we use the ActiveXObject when it is available
|
||||||
|
* Additionally XMLHttpRequest can be disabled in IE7/IE8 so
|
||||||
|
* we need a fallback.
|
||||||
|
*/
|
||||||
|
function() {
|
||||||
|
return createStandardXHR() || createActiveXHR();
|
||||||
|
} :
|
||||||
|
// For all other browsers, use the standard XMLHttpRequest object
|
||||||
|
createStandardXHR;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
JSZipUtils.getBinaryContent = function(path, callback) {
|
||||||
|
/*
|
||||||
|
* Here is the tricky part : getting the data.
|
||||||
|
* In firefox/chrome/opera/... setting the mimeType to 'text/plain; charset=x-user-defined'
|
||||||
|
* is enough, the result is in the standard xhr.responseText.
|
||||||
|
* cf https://developer.mozilla.org/En/XMLHttpRequest/Using_XMLHttpRequest#Receiving_binary_data_in_older_browsers
|
||||||
|
* In IE <= 9, we must use (the IE only) attribute responseBody
|
||||||
|
* (for binary data, its content is different from responseText).
|
||||||
|
* In IE 10, the 'charset=x-user-defined' trick doesn't work, only the
|
||||||
|
* responseType will work :
|
||||||
|
* http://msdn.microsoft.com/en-us/library/ie/hh673569%28v=vs.85%29.aspx#Binary_Object_upload_and_download
|
||||||
|
*
|
||||||
|
* I'd like to use jQuery to avoid this XHR madness, but it doesn't support
|
||||||
|
* the responseType attribute : http://bugs.jquery.com/ticket/11461
|
||||||
|
*/
|
||||||
|
try {
|
||||||
|
|
||||||
|
var xhr = createXHR();
|
||||||
|
|
||||||
|
xhr.open('GET', path, true);
|
||||||
|
|
||||||
|
// recent browsers
|
||||||
|
if ("responseType" in xhr) {
|
||||||
|
xhr.responseType = "arraybuffer";
|
||||||
|
}
|
||||||
|
|
||||||
|
// older browser
|
||||||
|
if(xhr.overrideMimeType) {
|
||||||
|
xhr.overrideMimeType("text/plain; charset=x-user-defined");
|
||||||
|
}
|
||||||
|
|
||||||
|
xhr.onreadystatechange = function(evt) {
|
||||||
|
var file, err;
|
||||||
|
// use `xhr` and not `this`... thanks IE
|
||||||
|
if (xhr.readyState === 4) {
|
||||||
|
if (xhr.status === 200 || xhr.status === 0) {
|
||||||
|
file = null;
|
||||||
|
err = null;
|
||||||
|
try {
|
||||||
|
file = JSZipUtils._getBinaryFromXHR(xhr);
|
||||||
|
} catch(e) {
|
||||||
|
err = new Error(e);
|
||||||
|
}
|
||||||
|
callback(err, file);
|
||||||
|
} else {
|
||||||
|
callback(new Error("Ajax error for " + path + " : " + this.status + " " + this.statusText), null);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
xhr.send();
|
||||||
|
|
||||||
|
} catch (e) {
|
||||||
|
callback(new Error(e), null);
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
// export
|
||||||
|
module.exports = JSZipUtils;
|
||||||
|
|
||||||
|
// enforcing Stuk's coding style
|
||||||
|
// vim: set shiftwidth=4 softtabstop=4:
|
||||||
|
|
||||||
|
},{}]},{},[1])
|
||||||
|
(1)
|
||||||
|
});
|
||||||
|
;
|
||||||
10
java/doc/jquery/jszip-utils/dist/jszip-utils.min.js
vendored
Normal file
10
java/doc/jquery/jszip-utils/dist/jszip-utils.min.js
vendored
Normal file
@@ -0,0 +1,10 @@
|
|||||||
|
/*!
|
||||||
|
|
||||||
|
JSZipUtils - A collection of cross-browser utilities to go along with JSZip.
|
||||||
|
<http://stuk.github.io/jszip-utils>
|
||||||
|
|
||||||
|
(c) 2014 Stuart Knightley, David Duponchel
|
||||||
|
Dual licenced under the MIT license or GPLv3. See https://raw.github.com/Stuk/jszip-utils/master/LICENSE.markdown.
|
||||||
|
|
||||||
|
*/
|
||||||
|
!function(a){"object"==typeof exports?module.exports=a():"function"==typeof define&&define.amd?define(a):"undefined"!=typeof window?window.JSZipUtils=a():"undefined"!=typeof global?global.JSZipUtils=a():"undefined"!=typeof self&&(self.JSZipUtils=a())}(function(){return function a(b,c,d){function e(g,h){if(!c[g]){if(!b[g]){var i="function"==typeof require&&require;if(!h&&i)return i(g,!0);if(f)return f(g,!0);throw new Error("Cannot find module '"+g+"'")}var j=c[g]={exports:{}};b[g][0].call(j.exports,function(a){var c=b[g][1][a];return e(c?c:a)},j,j.exports,a,b,c,d)}return c[g].exports}for(var f="function"==typeof require&&require,g=0;g<d.length;g++)e(d[g]);return e}({1:[function(a,b){"use strict";function c(){try{return new window.XMLHttpRequest}catch(a){}}function d(){try{return new window.ActiveXObject("Microsoft.XMLHTTP")}catch(a){}}var e={};e._getBinaryFromXHR=function(a){return a.response||a.responseText};var f=window.ActiveXObject?function(){return c()||d()}:c;e.getBinaryContent=function(a,b){try{var c=f();c.open("GET",a,!0),"responseType"in c&&(c.responseType="arraybuffer"),c.overrideMimeType&&c.overrideMimeType("text/plain; charset=x-user-defined"),c.onreadystatechange=function(){var d,f;if(4===c.readyState)if(200===c.status||0===c.status){d=null,f=null;try{d=e._getBinaryFromXHR(c)}catch(g){f=new Error(g)}b(f,d)}else b(new Error("Ajax error for "+a+" : "+this.status+" "+this.statusText),null)},c.send()}catch(d){b(new Error(d),null)}},b.exports=e},{}]},{},[1])(1)});
|
||||||
11370
java/doc/jquery/jszip/dist/jszip.js
vendored
Normal file
11370
java/doc/jquery/jszip/dist/jszip.js
vendored
Normal file
File diff suppressed because it is too large
Load Diff
13
java/doc/jquery/jszip/dist/jszip.min.js
vendored
Normal file
13
java/doc/jquery/jszip/dist/jszip.min.js
vendored
Normal file
File diff suppressed because one or more lines are too long
1
java/doc/member-search-index.js
Normal file
1
java/doc/member-search-index.js
Normal file
File diff suppressed because one or more lines are too long
BIN
java/doc/member-search-index.zip
Normal file
BIN
java/doc/member-search-index.zip
Normal file
Binary file not shown.
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@@ -1,9 +1,21 @@
|
|||||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
|
<!DOCTYPE HTML>
|
||||||
<!-- NewPage -->
|
<!-- NewPage -->
|
||||||
<html lang="en">
|
<html lang="en">
|
||||||
<head>
|
<head>
|
||||||
|
<!-- Generated by javadoc -->
|
||||||
<title>TJCustomFilter</title>
|
<title>TJCustomFilter</title>
|
||||||
|
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
|
||||||
<link rel="stylesheet" type="text/css" href="../../../stylesheet.css" title="Style">
|
<link rel="stylesheet" type="text/css" href="../../../stylesheet.css" title="Style">
|
||||||
|
<link rel="stylesheet" type="text/css" href="../../../jquery/jquery-ui.min.css" title="Style">
|
||||||
|
<link rel="stylesheet" type="text/css" href="../../../jquery-ui.overrides.css" title="Style">
|
||||||
|
<script type="text/javascript" src="../../../script.js"></script>
|
||||||
|
<script type="text/javascript" src="../../../jquery/jszip/dist/jszip.min.js"></script>
|
||||||
|
<script type="text/javascript" src="../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
|
||||||
|
<!--[if IE]>
|
||||||
|
<script type="text/javascript" src="../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
|
||||||
|
<![endif]-->
|
||||||
|
<script type="text/javascript" src="../../../jquery/jquery-3.6.0.min.js"></script>
|
||||||
|
<script type="text/javascript" src="../../../jquery/jquery-ui.min.js"></script>
|
||||||
</head>
|
</head>
|
||||||
<body>
|
<body>
|
||||||
<script type="text/javascript"><!--
|
<script type="text/javascript"><!--
|
||||||
@@ -15,18 +27,31 @@
|
|||||||
catch(err) {
|
catch(err) {
|
||||||
}
|
}
|
||||||
//-->
|
//-->
|
||||||
</script>
|
var data = {"i0":6};
|
||||||
|
var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"]};
|
||||||
|
var altColor = "altColor";
|
||||||
|
var rowColor = "rowColor";
|
||||||
|
var tableTab = "tableTab";
|
||||||
|
var activeTableTab = "activeTableTab";
|
||||||
|
var pathtoroot = "../../../";
|
||||||
|
var useModuleDirectories = true;
|
||||||
|
loadScripts(document, 'script');</script>
|
||||||
<noscript>
|
<noscript>
|
||||||
<div>JavaScript is disabled on your browser.</div>
|
<div>JavaScript is disabled on your browser.</div>
|
||||||
</noscript>
|
</noscript>
|
||||||
|
<header role="banner">
|
||||||
|
<nav role="navigation">
|
||||||
|
<div class="fixedNav">
|
||||||
<!-- ========= START OF TOP NAVBAR ======= -->
|
<!-- ========= START OF TOP NAVBAR ======= -->
|
||||||
<div class="topNav"><a name="navbar_top">
|
<div class="topNav"><a id="navbar.top">
|
||||||
<!-- -->
|
<!-- -->
|
||||||
</a><a href="#skip-navbar_top" title="Skip navigation links"></a><a name="navbar_top_firstrow">
|
</a>
|
||||||
|
<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
|
||||||
|
<a id="navbar.top.firstrow">
|
||||||
<!-- -->
|
<!-- -->
|
||||||
</a>
|
</a>
|
||||||
<ul class="navList" title="Navigation">
|
<ul class="navList" title="Navigation">
|
||||||
<li><a href="../../../org/libjpegturbo/turbojpeg/package-summary.html">Package</a></li>
|
<li><a href="package-summary.html">Package</a></li>
|
||||||
<li class="navBarCell1Rev">Class</li>
|
<li class="navBarCell1Rev">Class</li>
|
||||||
<li><a href="package-tree.html">Tree</a></li>
|
<li><a href="package-tree.html">Tree</a></li>
|
||||||
<li><a href="../../../deprecated-list.html">Deprecated</a></li>
|
<li><a href="../../../deprecated-list.html">Deprecated</a></li>
|
||||||
@@ -35,16 +60,14 @@
|
|||||||
</ul>
|
</ul>
|
||||||
</div>
|
</div>
|
||||||
<div class="subNav">
|
<div class="subNav">
|
||||||
<ul class="navList">
|
|
||||||
<li><a href="../../../org/libjpegturbo/turbojpeg/TJCompressor.html" title="class in org.libjpegturbo.turbojpeg"><span class="strong">Prev Class</span></a></li>
|
|
||||||
<li><a href="../../../org/libjpegturbo/turbojpeg/TJDecompressor.html" title="class in org.libjpegturbo.turbojpeg"><span class="strong">Next Class</span></a></li>
|
|
||||||
</ul>
|
|
||||||
<ul class="navList">
|
|
||||||
<li><a href="../../../index.html?org/libjpegturbo/turbojpeg/TJCustomFilter.html" target="_top">Frames</a></li>
|
|
||||||
<li><a href="TJCustomFilter.html" target="_top">No Frames</a></li>
|
|
||||||
</ul>
|
|
||||||
<ul class="navList" id="allclasses_navbar_top">
|
<ul class="navList" id="allclasses_navbar_top">
|
||||||
<li><a href="../../../allclasses-noframe.html">All Classes</a></li>
|
<li><a href="../../../allclasses.html">All Classes</a></li>
|
||||||
|
</ul>
|
||||||
|
<ul class="navListSearch">
|
||||||
|
<li><label for="search">SEARCH:</label>
|
||||||
|
<input type="text" id="search" value="search" disabled="disabled">
|
||||||
|
<input type="reset" id="reset" value="reset" disabled="disabled">
|
||||||
|
</li>
|
||||||
</ul>
|
</ul>
|
||||||
<div>
|
<div>
|
||||||
<script type="text/javascript"><!--
|
<script type="text/javascript"><!--
|
||||||
@@ -57,6 +80,9 @@
|
|||||||
}
|
}
|
||||||
//-->
|
//-->
|
||||||
</script>
|
</script>
|
||||||
|
<noscript>
|
||||||
|
<div>JavaScript is disabled on your browser.</div>
|
||||||
|
</noscript>
|
||||||
</div>
|
</div>
|
||||||
<div>
|
<div>
|
||||||
<ul class="subNavList">
|
<ul class="subNavList">
|
||||||
@@ -64,22 +90,31 @@
|
|||||||
<li>Nested | </li>
|
<li>Nested | </li>
|
||||||
<li>Field | </li>
|
<li>Field | </li>
|
||||||
<li>Constr | </li>
|
<li>Constr | </li>
|
||||||
<li><a href="#method_summary">Method</a></li>
|
<li><a href="#method.summary">Method</a></li>
|
||||||
</ul>
|
</ul>
|
||||||
<ul class="subNavList">
|
<ul class="subNavList">
|
||||||
<li>Detail: </li>
|
<li>Detail: </li>
|
||||||
<li>Field | </li>
|
<li>Field | </li>
|
||||||
<li>Constr | </li>
|
<li>Constr | </li>
|
||||||
<li><a href="#method_detail">Method</a></li>
|
<li><a href="#method.detail">Method</a></li>
|
||||||
</ul>
|
</ul>
|
||||||
</div>
|
</div>
|
||||||
<a name="skip-navbar_top">
|
<a id="skip.navbar.top">
|
||||||
<!-- -->
|
<!-- -->
|
||||||
</a></div>
|
</a></div>
|
||||||
<!-- ========= END OF TOP NAVBAR ========= -->
|
<!-- ========= END OF TOP NAVBAR ========= -->
|
||||||
|
</div>
|
||||||
|
<div class="navPadding"> </div>
|
||||||
|
<script type="text/javascript"><!--
|
||||||
|
$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
|
||||||
|
//-->
|
||||||
|
</script>
|
||||||
|
</nav>
|
||||||
|
</header>
|
||||||
<!-- ======== START OF CLASS DATA ======== -->
|
<!-- ======== START OF CLASS DATA ======== -->
|
||||||
|
<main role="main">
|
||||||
<div class="header">
|
<div class="header">
|
||||||
<div class="subTitle">org.libjpegturbo.turbojpeg</div>
|
<div class="subTitle"><span class="packageLabelInType">Package</span> <a href="package-summary.html">org.libjpegturbo.turbojpeg</a></div>
|
||||||
<h2 title="Interface TJCustomFilter" class="title">Interface TJCustomFilter</h2>
|
<h2 title="Interface TJCustomFilter" class="title">Interface TJCustomFilter</h2>
|
||||||
</div>
|
</div>
|
||||||
<div class="contentContainer">
|
<div class="contentContainer">
|
||||||
@@ -87,8 +122,7 @@
|
|||||||
<ul class="blockList">
|
<ul class="blockList">
|
||||||
<li class="blockList">
|
<li class="blockList">
|
||||||
<hr>
|
<hr>
|
||||||
<br>
|
<pre>public interface <span class="typeNameLabel">TJCustomFilter</span></pre>
|
||||||
<pre>public interface <span class="strong">TJCustomFilter</span></pre>
|
|
||||||
<div class="block">Custom filter callback interface</div>
|
<div class="block">Custom filter callback interface</div>
|
||||||
</li>
|
</li>
|
||||||
</ul>
|
</ul>
|
||||||
@@ -97,25 +131,28 @@
|
|||||||
<ul class="blockList">
|
<ul class="blockList">
|
||||||
<li class="blockList">
|
<li class="blockList">
|
||||||
<!-- ========== METHOD SUMMARY =========== -->
|
<!-- ========== METHOD SUMMARY =========== -->
|
||||||
|
<section>
|
||||||
<ul class="blockList">
|
<ul class="blockList">
|
||||||
<li class="blockList"><a name="method_summary">
|
<li class="blockList"><a id="method.summary">
|
||||||
<!-- -->
|
<!-- -->
|
||||||
</a>
|
</a>
|
||||||
<h3>Method Summary</h3>
|
<h3>Method Summary</h3>
|
||||||
<table class="overviewSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
|
<table class="memberSummary">
|
||||||
<caption><span>Methods</span><span class="tabEnd"> </span></caption>
|
<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd"> </span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd"> </span></span><span id="t3" class="tableTab"><span><a href="javascript:show(4);">Abstract Methods</a></span><span class="tabEnd"> </span></span></caption>
|
||||||
<tr>
|
<tr>
|
||||||
<th class="colFirst" scope="col">Modifier and Type</th>
|
<th class="colFirst" scope="col">Modifier and Type</th>
|
||||||
<th class="colLast" scope="col">Method and Description</th>
|
<th class="colSecond" scope="col">Method</th>
|
||||||
|
<th class="colLast" scope="col">Description</th>
|
||||||
</tr>
|
</tr>
|
||||||
<tr class="altColor">
|
<tr id="i0" class="altColor">
|
||||||
<td class="colFirst"><code>void</code></td>
|
<td class="colFirst"><code>void</code></td>
|
||||||
<td class="colLast"><code><strong><a href="../../../org/libjpegturbo/turbojpeg/TJCustomFilter.html#customFilter(java.nio.ShortBuffer,%20java.awt.Rectangle,%20java.awt.Rectangle,%20int,%20int,%20org.libjpegturbo.turbojpeg.TJTransform)">customFilter</a></strong>(java.nio.ShortBuffer coeffBuffer,
|
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#customFilter(java.nio.ShortBuffer,java.awt.Rectangle,java.awt.Rectangle,int,int,org.libjpegturbo.turbojpeg.TJTransform)">customFilter</a></span>​(java.nio.ShortBuffer coeffBuffer,
|
||||||
java.awt.Rectangle bufferRegion,
|
java.awt.Rectangle bufferRegion,
|
||||||
java.awt.Rectangle planeRegion,
|
java.awt.Rectangle planeRegion,
|
||||||
int componentID,
|
int componentID,
|
||||||
int transformID,
|
int transformID,
|
||||||
<a href="../../../org/libjpegturbo/turbojpeg/TJTransform.html" title="class in org.libjpegturbo.turbojpeg">TJTransform</a> transform)</code>
|
<a href="TJTransform.html" title="class in org.libjpegturbo.turbojpeg">TJTransform</a> transform)</code></th>
|
||||||
|
<td class="colLast">
|
||||||
<div class="block">A callback function that can be used to modify the DCT coefficients after
|
<div class="block">A callback function that can be used to modify the DCT coefficients after
|
||||||
they are losslessly transformed but before they are transcoded to a new
|
they are losslessly transformed but before they are transcoded to a new
|
||||||
JPEG image.</div>
|
JPEG image.</div>
|
||||||
@@ -124,6 +161,7 @@
|
|||||||
</table>
|
</table>
|
||||||
</li>
|
</li>
|
||||||
</ul>
|
</ul>
|
||||||
|
</section>
|
||||||
</li>
|
</li>
|
||||||
</ul>
|
</ul>
|
||||||
</div>
|
</div>
|
||||||
@@ -131,62 +169,78 @@
|
|||||||
<ul class="blockList">
|
<ul class="blockList">
|
||||||
<li class="blockList">
|
<li class="blockList">
|
||||||
<!-- ============ METHOD DETAIL ========== -->
|
<!-- ============ METHOD DETAIL ========== -->
|
||||||
|
<section>
|
||||||
<ul class="blockList">
|
<ul class="blockList">
|
||||||
<li class="blockList"><a name="method_detail">
|
<li class="blockList"><a id="method.detail">
|
||||||
<!-- -->
|
<!-- -->
|
||||||
</a>
|
</a>
|
||||||
<h3>Method Detail</h3>
|
<h3>Method Detail</h3>
|
||||||
<a name="customFilter(java.nio.ShortBuffer, java.awt.Rectangle, java.awt.Rectangle, int, int, org.libjpegturbo.turbojpeg.TJTransform)">
|
<a id="customFilter(java.nio.ShortBuffer,java.awt.Rectangle,java.awt.Rectangle,int,int,org.libjpegturbo.turbojpeg.TJTransform)">
|
||||||
<!-- -->
|
<!-- -->
|
||||||
</a>
|
</a>
|
||||||
<ul class="blockListLast">
|
<ul class="blockListLast">
|
||||||
<li class="blockList">
|
<li class="blockList">
|
||||||
<h4>customFilter</h4>
|
<h4>customFilter</h4>
|
||||||
<pre>void customFilter(java.nio.ShortBuffer coeffBuffer,
|
<pre class="methodSignature">void customFilter​(java.nio.ShortBuffer coeffBuffer,
|
||||||
java.awt.Rectangle bufferRegion,
|
java.awt.Rectangle bufferRegion,
|
||||||
java.awt.Rectangle planeRegion,
|
java.awt.Rectangle planeRegion,
|
||||||
int componentID,
|
int componentID,
|
||||||
int transformID,
|
int transformID,
|
||||||
<a href="../../../org/libjpegturbo/turbojpeg/TJTransform.html" title="class in org.libjpegturbo.turbojpeg">TJTransform</a> transform)
|
<a href="TJTransform.html" title="class in org.libjpegturbo.turbojpeg">TJTransform</a> transform)
|
||||||
throws <a href="../../../org/libjpegturbo/turbojpeg/TJException.html" title="class in org.libjpegturbo.turbojpeg">TJException</a></pre>
|
throws <a href="TJException.html" title="class in org.libjpegturbo.turbojpeg">TJException</a></pre>
|
||||||
<div class="block">A callback function that can be used to modify the DCT coefficients after
|
<div class="block">A callback function that can be used to modify the DCT coefficients after
|
||||||
they are losslessly transformed but before they are transcoded to a new
|
they are losslessly transformed but before they are transcoded to a new
|
||||||
JPEG image. This allows for custom filters or other transformations to be
|
JPEG image. This allows for custom filters or other transformations to be
|
||||||
applied in the frequency domain.</div>
|
applied in the frequency domain.</div>
|
||||||
<dl><dt><span class="strong">Parameters:</span></dt><dd><code>coeffBuffer</code> - a buffer containing transformed DCT coefficients.
|
<dl>
|
||||||
|
<dt><span class="paramLabel">Parameters:</span></dt>
|
||||||
|
<dd><code>coeffBuffer</code> - a buffer containing transformed DCT coefficients.
|
||||||
(NOTE: this buffer is not guaranteed to be valid once the callback
|
(NOTE: this buffer is not guaranteed to be valid once the callback
|
||||||
returns, so applications wishing to hand off the DCT coefficients to
|
returns, so applications wishing to hand off the DCT coefficients to
|
||||||
another function or library should make a copy of them within the body of
|
another function or library should make a copy of them within the body of
|
||||||
the callback.)</dd><dd><code>bufferRegion</code> - rectangle containing the width and height of
|
the callback.)</dd>
|
||||||
|
<dd><code>bufferRegion</code> - rectangle containing the width and height of
|
||||||
<code>coeffBuffer</code> as well as its offset relative to the component
|
<code>coeffBuffer</code> as well as its offset relative to the component
|
||||||
plane. TurboJPEG implementations may choose to split each component plane
|
plane. TurboJPEG implementations may choose to split each component plane
|
||||||
into multiple DCT coefficient buffers and call the callback function once
|
into multiple DCT coefficient buffers and call the callback function once
|
||||||
for each buffer.</dd><dd><code>planeRegion</code> - rectangle containing the width and height of the
|
for each buffer.</dd>
|
||||||
component plane to which <code>coeffBuffer</code> belongs</dd><dd><code>componentID</code> - ID number of the component plane to which
|
<dd><code>planeRegion</code> - rectangle containing the width and height of the
|
||||||
|
component plane to which <code>coeffBuffer</code> belongs</dd>
|
||||||
|
<dd><code>componentID</code> - ID number of the component plane to which
|
||||||
<code>coeffBuffer</code> belongs. (Y, Cb, and Cr have, respectively, ID's
|
<code>coeffBuffer</code> belongs. (Y, Cb, and Cr have, respectively, ID's
|
||||||
of 0, 1, and 2 in typical JPEG images.)</dd><dd><code>transformID</code> - ID number of the transformed image to which
|
of 0, 1, and 2 in typical JPEG images.)</dd>
|
||||||
|
<dd><code>transformID</code> - ID number of the transformed image to which
|
||||||
<code>coeffBuffer</code> belongs. This is the same as the index of the
|
<code>coeffBuffer</code> belongs. This is the same as the index of the
|
||||||
transform in the <code>transforms</code> array that was passed to <a href="../../../org/libjpegturbo/turbojpeg/TJTransformer.html#transform(byte[][],%20org.libjpegturbo.turbojpeg.TJTransform[],%20int)"><code>TJTransformer.transform()</code></a>.</dd><dd><code>transform</code> - a <a href="../../../org/libjpegturbo/turbojpeg/TJTransform.html" title="class in org.libjpegturbo.turbojpeg"><code>TJTransform</code></a> instance that specifies the
|
transform in the <code>transforms</code> array that was passed to
|
||||||
|
<a href="TJTransformer.html#transform(byte%5B%5D%5B%5D,org.libjpegturbo.turbojpeg.TJTransform%5B%5D)"><code>TJTransformer.transform()</code></a>.</dd>
|
||||||
|
<dd><code>transform</code> - a <a href="TJTransform.html" title="class in org.libjpegturbo.turbojpeg"><code>TJTransform</code></a> instance that specifies the
|
||||||
parameters and/or cropping region for this transform</dd>
|
parameters and/or cropping region for this transform</dd>
|
||||||
<dt><span class="strong">Throws:</span></dt>
|
<dt><span class="throwsLabel">Throws:</span></dt>
|
||||||
<dd><code><a href="../../../org/libjpegturbo/turbojpeg/TJException.html" title="class in org.libjpegturbo.turbojpeg">TJException</a></code></dd></dl>
|
<dd><code><a href="TJException.html" title="class in org.libjpegturbo.turbojpeg">TJException</a></code></dd>
|
||||||
|
</dl>
|
||||||
</li>
|
</li>
|
||||||
</ul>
|
</ul>
|
||||||
</li>
|
</li>
|
||||||
</ul>
|
</ul>
|
||||||
|
</section>
|
||||||
</li>
|
</li>
|
||||||
</ul>
|
</ul>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
</main>
|
||||||
<!-- ========= END OF CLASS DATA ========= -->
|
<!-- ========= END OF CLASS DATA ========= -->
|
||||||
|
<footer role="contentinfo">
|
||||||
|
<nav role="navigation">
|
||||||
<!-- ======= START OF BOTTOM NAVBAR ====== -->
|
<!-- ======= START OF BOTTOM NAVBAR ====== -->
|
||||||
<div class="bottomNav"><a name="navbar_bottom">
|
<div class="bottomNav"><a id="navbar.bottom">
|
||||||
<!-- -->
|
<!-- -->
|
||||||
</a><a href="#skip-navbar_bottom" title="Skip navigation links"></a><a name="navbar_bottom_firstrow">
|
</a>
|
||||||
|
<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
|
||||||
|
<a id="navbar.bottom.firstrow">
|
||||||
<!-- -->
|
<!-- -->
|
||||||
</a>
|
</a>
|
||||||
<ul class="navList" title="Navigation">
|
<ul class="navList" title="Navigation">
|
||||||
<li><a href="../../../org/libjpegturbo/turbojpeg/package-summary.html">Package</a></li>
|
<li><a href="package-summary.html">Package</a></li>
|
||||||
<li class="navBarCell1Rev">Class</li>
|
<li class="navBarCell1Rev">Class</li>
|
||||||
<li><a href="package-tree.html">Tree</a></li>
|
<li><a href="package-tree.html">Tree</a></li>
|
||||||
<li><a href="../../../deprecated-list.html">Deprecated</a></li>
|
<li><a href="../../../deprecated-list.html">Deprecated</a></li>
|
||||||
@@ -195,16 +249,8 @@
|
|||||||
</ul>
|
</ul>
|
||||||
</div>
|
</div>
|
||||||
<div class="subNav">
|
<div class="subNav">
|
||||||
<ul class="navList">
|
|
||||||
<li><a href="../../../org/libjpegturbo/turbojpeg/TJCompressor.html" title="class in org.libjpegturbo.turbojpeg"><span class="strong">Prev Class</span></a></li>
|
|
||||||
<li><a href="../../../org/libjpegturbo/turbojpeg/TJDecompressor.html" title="class in org.libjpegturbo.turbojpeg"><span class="strong">Next Class</span></a></li>
|
|
||||||
</ul>
|
|
||||||
<ul class="navList">
|
|
||||||
<li><a href="../../../index.html?org/libjpegturbo/turbojpeg/TJCustomFilter.html" target="_top">Frames</a></li>
|
|
||||||
<li><a href="TJCustomFilter.html" target="_top">No Frames</a></li>
|
|
||||||
</ul>
|
|
||||||
<ul class="navList" id="allclasses_navbar_bottom">
|
<ul class="navList" id="allclasses_navbar_bottom">
|
||||||
<li><a href="../../../allclasses-noframe.html">All Classes</a></li>
|
<li><a href="../../../allclasses.html">All Classes</a></li>
|
||||||
</ul>
|
</ul>
|
||||||
<div>
|
<div>
|
||||||
<script type="text/javascript"><!--
|
<script type="text/javascript"><!--
|
||||||
@@ -217,6 +263,9 @@
|
|||||||
}
|
}
|
||||||
//-->
|
//-->
|
||||||
</script>
|
</script>
|
||||||
|
<noscript>
|
||||||
|
<div>JavaScript is disabled on your browser.</div>
|
||||||
|
</noscript>
|
||||||
</div>
|
</div>
|
||||||
<div>
|
<div>
|
||||||
<ul class="subNavList">
|
<ul class="subNavList">
|
||||||
@@ -224,18 +273,20 @@
|
|||||||
<li>Nested | </li>
|
<li>Nested | </li>
|
||||||
<li>Field | </li>
|
<li>Field | </li>
|
||||||
<li>Constr | </li>
|
<li>Constr | </li>
|
||||||
<li><a href="#method_summary">Method</a></li>
|
<li><a href="#method.summary">Method</a></li>
|
||||||
</ul>
|
</ul>
|
||||||
<ul class="subNavList">
|
<ul class="subNavList">
|
||||||
<li>Detail: </li>
|
<li>Detail: </li>
|
||||||
<li>Field | </li>
|
<li>Field | </li>
|
||||||
<li>Constr | </li>
|
<li>Constr | </li>
|
||||||
<li><a href="#method_detail">Method</a></li>
|
<li><a href="#method.detail">Method</a></li>
|
||||||
</ul>
|
</ul>
|
||||||
</div>
|
</div>
|
||||||
<a name="skip-navbar_bottom">
|
<a id="skip.navbar.bottom">
|
||||||
<!-- -->
|
<!-- -->
|
||||||
</a></div>
|
</a></div>
|
||||||
<!-- ======== END OF BOTTOM NAVBAR ======= -->
|
<!-- ======== END OF BOTTOM NAVBAR ======= -->
|
||||||
|
</nav>
|
||||||
|
</footer>
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
|
|||||||
File diff suppressed because it is too large
Load Diff
@@ -1,9 +1,21 @@
|
|||||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
|
<!DOCTYPE HTML>
|
||||||
<!-- NewPage -->
|
<!-- NewPage -->
|
||||||
<html lang="en">
|
<html lang="en">
|
||||||
<head>
|
<head>
|
||||||
|
<!-- Generated by javadoc -->
|
||||||
<title>TJException</title>
|
<title>TJException</title>
|
||||||
|
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
|
||||||
<link rel="stylesheet" type="text/css" href="../../../stylesheet.css" title="Style">
|
<link rel="stylesheet" type="text/css" href="../../../stylesheet.css" title="Style">
|
||||||
|
<link rel="stylesheet" type="text/css" href="../../../jquery/jquery-ui.min.css" title="Style">
|
||||||
|
<link rel="stylesheet" type="text/css" href="../../../jquery-ui.overrides.css" title="Style">
|
||||||
|
<script type="text/javascript" src="../../../script.js"></script>
|
||||||
|
<script type="text/javascript" src="../../../jquery/jszip/dist/jszip.min.js"></script>
|
||||||
|
<script type="text/javascript" src="../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
|
||||||
|
<!--[if IE]>
|
||||||
|
<script type="text/javascript" src="../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
|
||||||
|
<![endif]-->
|
||||||
|
<script type="text/javascript" src="../../../jquery/jquery-3.6.0.min.js"></script>
|
||||||
|
<script type="text/javascript" src="../../../jquery/jquery-ui.min.js"></script>
|
||||||
</head>
|
</head>
|
||||||
<body>
|
<body>
|
||||||
<script type="text/javascript"><!--
|
<script type="text/javascript"><!--
|
||||||
@@ -15,18 +27,31 @@
|
|||||||
catch(err) {
|
catch(err) {
|
||||||
}
|
}
|
||||||
//-->
|
//-->
|
||||||
</script>
|
var data = {"i0":10};
|
||||||
|
var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
|
||||||
|
var altColor = "altColor";
|
||||||
|
var rowColor = "rowColor";
|
||||||
|
var tableTab = "tableTab";
|
||||||
|
var activeTableTab = "activeTableTab";
|
||||||
|
var pathtoroot = "../../../";
|
||||||
|
var useModuleDirectories = true;
|
||||||
|
loadScripts(document, 'script');</script>
|
||||||
<noscript>
|
<noscript>
|
||||||
<div>JavaScript is disabled on your browser.</div>
|
<div>JavaScript is disabled on your browser.</div>
|
||||||
</noscript>
|
</noscript>
|
||||||
|
<header role="banner">
|
||||||
|
<nav role="navigation">
|
||||||
|
<div class="fixedNav">
|
||||||
<!-- ========= START OF TOP NAVBAR ======= -->
|
<!-- ========= START OF TOP NAVBAR ======= -->
|
||||||
<div class="topNav"><a name="navbar_top">
|
<div class="topNav"><a id="navbar.top">
|
||||||
<!-- -->
|
<!-- -->
|
||||||
</a><a href="#skip-navbar_top" title="Skip navigation links"></a><a name="navbar_top_firstrow">
|
</a>
|
||||||
|
<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
|
||||||
|
<a id="navbar.top.firstrow">
|
||||||
<!-- -->
|
<!-- -->
|
||||||
</a>
|
</a>
|
||||||
<ul class="navList" title="Navigation">
|
<ul class="navList" title="Navigation">
|
||||||
<li><a href="../../../org/libjpegturbo/turbojpeg/package-summary.html">Package</a></li>
|
<li><a href="package-summary.html">Package</a></li>
|
||||||
<li class="navBarCell1Rev">Class</li>
|
<li class="navBarCell1Rev">Class</li>
|
||||||
<li><a href="package-tree.html">Tree</a></li>
|
<li><a href="package-tree.html">Tree</a></li>
|
||||||
<li><a href="../../../deprecated-list.html">Deprecated</a></li>
|
<li><a href="../../../deprecated-list.html">Deprecated</a></li>
|
||||||
@@ -35,16 +60,14 @@
|
|||||||
</ul>
|
</ul>
|
||||||
</div>
|
</div>
|
||||||
<div class="subNav">
|
<div class="subNav">
|
||||||
<ul class="navList">
|
|
||||||
<li><a href="../../../org/libjpegturbo/turbojpeg/TJDecompressor.html" title="class in org.libjpegturbo.turbojpeg"><span class="strong">Prev Class</span></a></li>
|
|
||||||
<li><a href="../../../org/libjpegturbo/turbojpeg/TJScalingFactor.html" title="class in org.libjpegturbo.turbojpeg"><span class="strong">Next Class</span></a></li>
|
|
||||||
</ul>
|
|
||||||
<ul class="navList">
|
|
||||||
<li><a href="../../../index.html?org/libjpegturbo/turbojpeg/TJException.html" target="_top">Frames</a></li>
|
|
||||||
<li><a href="TJException.html" target="_top">No Frames</a></li>
|
|
||||||
</ul>
|
|
||||||
<ul class="navList" id="allclasses_navbar_top">
|
<ul class="navList" id="allclasses_navbar_top">
|
||||||
<li><a href="../../../allclasses-noframe.html">All Classes</a></li>
|
<li><a href="../../../allclasses.html">All Classes</a></li>
|
||||||
|
</ul>
|
||||||
|
<ul class="navListSearch">
|
||||||
|
<li><label for="search">SEARCH:</label>
|
||||||
|
<input type="text" id="search" value="search" disabled="disabled">
|
||||||
|
<input type="reset" id="reset" value="reset" disabled="disabled">
|
||||||
|
</li>
|
||||||
</ul>
|
</ul>
|
||||||
<div>
|
<div>
|
||||||
<script type="text/javascript"><!--
|
<script type="text/javascript"><!--
|
||||||
@@ -57,29 +80,41 @@
|
|||||||
}
|
}
|
||||||
//-->
|
//-->
|
||||||
</script>
|
</script>
|
||||||
|
<noscript>
|
||||||
|
<div>JavaScript is disabled on your browser.</div>
|
||||||
|
</noscript>
|
||||||
</div>
|
</div>
|
||||||
<div>
|
<div>
|
||||||
<ul class="subNavList">
|
<ul class="subNavList">
|
||||||
<li>Summary: </li>
|
<li>Summary: </li>
|
||||||
<li>Nested | </li>
|
<li>Nested | </li>
|
||||||
<li>Field | </li>
|
<li>Field | </li>
|
||||||
<li><a href="#constructor_summary">Constr</a> | </li>
|
<li><a href="#constructor.summary">Constr</a> | </li>
|
||||||
<li><a href="#method_summary">Method</a></li>
|
<li><a href="#method.summary">Method</a></li>
|
||||||
</ul>
|
</ul>
|
||||||
<ul class="subNavList">
|
<ul class="subNavList">
|
||||||
<li>Detail: </li>
|
<li>Detail: </li>
|
||||||
<li>Field | </li>
|
<li>Field | </li>
|
||||||
<li><a href="#constructor_detail">Constr</a> | </li>
|
<li><a href="#constructor.detail">Constr</a> | </li>
|
||||||
<li><a href="#method_detail">Method</a></li>
|
<li><a href="#method.detail">Method</a></li>
|
||||||
</ul>
|
</ul>
|
||||||
</div>
|
</div>
|
||||||
<a name="skip-navbar_top">
|
<a id="skip.navbar.top">
|
||||||
<!-- -->
|
<!-- -->
|
||||||
</a></div>
|
</a></div>
|
||||||
<!-- ========= END OF TOP NAVBAR ========= -->
|
<!-- ========= END OF TOP NAVBAR ========= -->
|
||||||
|
</div>
|
||||||
|
<div class="navPadding"> </div>
|
||||||
|
<script type="text/javascript"><!--
|
||||||
|
$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
|
||||||
|
//-->
|
||||||
|
</script>
|
||||||
|
</nav>
|
||||||
|
</header>
|
||||||
<!-- ======== START OF CLASS DATA ======== -->
|
<!-- ======== START OF CLASS DATA ======== -->
|
||||||
|
<main role="main">
|
||||||
<div class="header">
|
<div class="header">
|
||||||
<div class="subTitle">org.libjpegturbo.turbojpeg</div>
|
<div class="subTitle"><span class="packageLabelInType">Package</span> <a href="package-summary.html">org.libjpegturbo.turbojpeg</a></div>
|
||||||
<h2 title="Class TJException" class="title">Class TJException</h2>
|
<h2 title="Class TJException" class="title">Class TJException</h2>
|
||||||
</div>
|
</div>
|
||||||
<div class="contentContainer">
|
<div class="contentContainer">
|
||||||
@@ -111,13 +146,15 @@
|
|||||||
<li class="blockList">
|
<li class="blockList">
|
||||||
<dl>
|
<dl>
|
||||||
<dt>All Implemented Interfaces:</dt>
|
<dt>All Implemented Interfaces:</dt>
|
||||||
<dd>java.io.Serializable</dd>
|
<dd><code>java.io.Serializable</code></dd>
|
||||||
</dl>
|
</dl>
|
||||||
<hr>
|
<hr>
|
||||||
<br>
|
<pre>public class <span class="typeNameLabel">TJException</span>
|
||||||
<pre>public class <span class="strong">TJException</span>
|
|
||||||
extends java.io.IOException</pre>
|
extends java.io.IOException</pre>
|
||||||
<dl><dt><span class="strong">See Also:</span></dt><dd><a href="../../../serialized-form.html#org.libjpegturbo.turbojpeg.TJException">Serialized Form</a></dd></dl>
|
<dl>
|
||||||
|
<dt><span class="seeLabel">See Also:</span></dt>
|
||||||
|
<dd><a href="../../../serialized-form.html#org.libjpegturbo.turbojpeg.TJException">Serialized Form</a></dd>
|
||||||
|
</dl>
|
||||||
</li>
|
</li>
|
||||||
</ul>
|
</ul>
|
||||||
</div>
|
</div>
|
||||||
@@ -125,65 +162,76 @@ extends java.io.IOException</pre>
|
|||||||
<ul class="blockList">
|
<ul class="blockList">
|
||||||
<li class="blockList">
|
<li class="blockList">
|
||||||
<!-- ======== CONSTRUCTOR SUMMARY ======== -->
|
<!-- ======== CONSTRUCTOR SUMMARY ======== -->
|
||||||
|
<section>
|
||||||
<ul class="blockList">
|
<ul class="blockList">
|
||||||
<li class="blockList"><a name="constructor_summary">
|
<li class="blockList"><a id="constructor.summary">
|
||||||
<!-- -->
|
<!-- -->
|
||||||
</a>
|
</a>
|
||||||
<h3>Constructor Summary</h3>
|
<h3>Constructor Summary</h3>
|
||||||
<table class="overviewSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
|
<table class="memberSummary">
|
||||||
<caption><span>Constructors</span><span class="tabEnd"> </span></caption>
|
<caption><span>Constructors</span><span class="tabEnd"> </span></caption>
|
||||||
<tr>
|
<tr>
|
||||||
<th class="colOne" scope="col">Constructor and Description</th>
|
<th class="colFirst" scope="col">Constructor</th>
|
||||||
|
<th class="colLast" scope="col">Description</th>
|
||||||
</tr>
|
</tr>
|
||||||
<tr class="altColor">
|
<tr class="altColor">
|
||||||
<td class="colOne"><code><strong><a href="../../../org/libjpegturbo/turbojpeg/TJException.html#TJException()">TJException</a></strong>()</code> </td>
|
<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E()">TJException</a></span>()</code></th>
|
||||||
|
<td class="colLast"> </td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr class="rowColor">
|
<tr class="rowColor">
|
||||||
<td class="colOne"><code><strong><a href="../../../org/libjpegturbo/turbojpeg/TJException.html#TJException(java.lang.String)">TJException</a></strong>(java.lang.String message)</code> </td>
|
<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(java.lang.String)">TJException</a></span>​(java.lang.String message)</code></th>
|
||||||
|
<td class="colLast"> </td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr class="altColor">
|
<tr class="altColor">
|
||||||
<td class="colOne"><code><strong><a href="../../../org/libjpegturbo/turbojpeg/TJException.html#TJException(java.lang.String,%20int)">TJException</a></strong>(java.lang.String message,
|
<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(java.lang.String,int)">TJException</a></span>​(java.lang.String message,
|
||||||
int code)</code> </td>
|
int code)</code></th>
|
||||||
|
<td class="colLast"> </td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr class="rowColor">
|
<tr class="rowColor">
|
||||||
<td class="colOne"><code><strong><a href="../../../org/libjpegturbo/turbojpeg/TJException.html#TJException(java.lang.String,%20java.lang.Throwable)">TJException</a></strong>(java.lang.String message,
|
<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(java.lang.String,java.lang.Throwable)">TJException</a></span>​(java.lang.String message,
|
||||||
java.lang.Throwable cause)</code> </td>
|
java.lang.Throwable cause)</code></th>
|
||||||
|
<td class="colLast"> </td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr class="altColor">
|
<tr class="altColor">
|
||||||
<td class="colOne"><code><strong><a href="../../../org/libjpegturbo/turbojpeg/TJException.html#TJException(java.lang.Throwable)">TJException</a></strong>(java.lang.Throwable cause)</code> </td>
|
<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(java.lang.Throwable)">TJException</a></span>​(java.lang.Throwable cause)</code></th>
|
||||||
|
<td class="colLast"> </td>
|
||||||
</tr>
|
</tr>
|
||||||
</table>
|
</table>
|
||||||
</li>
|
</li>
|
||||||
</ul>
|
</ul>
|
||||||
|
</section>
|
||||||
<!-- ========== METHOD SUMMARY =========== -->
|
<!-- ========== METHOD SUMMARY =========== -->
|
||||||
|
<section>
|
||||||
<ul class="blockList">
|
<ul class="blockList">
|
||||||
<li class="blockList"><a name="method_summary">
|
<li class="blockList"><a id="method.summary">
|
||||||
<!-- -->
|
<!-- -->
|
||||||
</a>
|
</a>
|
||||||
<h3>Method Summary</h3>
|
<h3>Method Summary</h3>
|
||||||
<table class="overviewSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
|
<table class="memberSummary">
|
||||||
<caption><span>Methods</span><span class="tabEnd"> </span></caption>
|
<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd"> </span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd"> </span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd"> </span></span></caption>
|
||||||
<tr>
|
<tr>
|
||||||
<th class="colFirst" scope="col">Modifier and Type</th>
|
<th class="colFirst" scope="col">Modifier and Type</th>
|
||||||
<th class="colLast" scope="col">Method and Description</th>
|
<th class="colSecond" scope="col">Method</th>
|
||||||
|
<th class="colLast" scope="col">Description</th>
|
||||||
</tr>
|
</tr>
|
||||||
<tr class="altColor">
|
<tr id="i0" class="altColor">
|
||||||
<td class="colFirst"><code>int</code></td>
|
<td class="colFirst"><code>int</code></td>
|
||||||
<td class="colLast"><code><strong><a href="../../../org/libjpegturbo/turbojpeg/TJException.html#getErrorCode()">getErrorCode</a></strong>()</code>
|
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getErrorCode()">getErrorCode</a></span>()</code></th>
|
||||||
<div class="block">Returns a code (one of <a href="../../../org/libjpegturbo/turbojpeg/TJ.html" title="class in org.libjpegturbo.turbojpeg"><code>TJ.ERR_*</code></a>) indicating the severity of the
|
<td class="colLast">
|
||||||
|
<div class="block">Returns a code (one of <a href="TJ.html" title="class in org.libjpegturbo.turbojpeg"><code>TJ.ERR_*</code></a>) indicating the severity of the
|
||||||
last error.</div>
|
last error.</div>
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
</table>
|
</table>
|
||||||
<ul class="blockList">
|
<ul class="blockList">
|
||||||
<li class="blockList"><a name="methods_inherited_from_class_java.lang.Throwable">
|
<li class="blockList"><a id="methods.inherited.from.class.java.lang.Throwable">
|
||||||
<!-- -->
|
<!-- -->
|
||||||
</a>
|
</a>
|
||||||
<h3>Methods inherited from class java.lang.Throwable</h3>
|
<h3>Methods inherited from class java.lang.Throwable</h3>
|
||||||
<code>addSuppressed, fillInStackTrace, getCause, getLocalizedMessage, getMessage, getStackTrace, getSuppressed, initCause, printStackTrace, printStackTrace, printStackTrace, setStackTrace, toString</code></li>
|
<code>addSuppressed, fillInStackTrace, getCause, getLocalizedMessage, getMessage, getStackTrace, getSuppressed, initCause, printStackTrace, printStackTrace, printStackTrace, setStackTrace, toString</code></li>
|
||||||
</ul>
|
</ul>
|
||||||
<ul class="blockList">
|
<ul class="blockList">
|
||||||
<li class="blockList"><a name="methods_inherited_from_class_java.lang.Object">
|
<li class="blockList"><a id="methods.inherited.from.class.java.lang.Object">
|
||||||
<!-- -->
|
<!-- -->
|
||||||
</a>
|
</a>
|
||||||
<h3>Methods inherited from class java.lang.Object</h3>
|
<h3>Methods inherited from class java.lang.Object</h3>
|
||||||
@@ -191,6 +239,7 @@ extends java.io.IOException</pre>
|
|||||||
</ul>
|
</ul>
|
||||||
</li>
|
</li>
|
||||||
</ul>
|
</ul>
|
||||||
|
</section>
|
||||||
</li>
|
</li>
|
||||||
</ul>
|
</ul>
|
||||||
</div>
|
</div>
|
||||||
@@ -198,12 +247,13 @@ extends java.io.IOException</pre>
|
|||||||
<ul class="blockList">
|
<ul class="blockList">
|
||||||
<li class="blockList">
|
<li class="blockList">
|
||||||
<!-- ========= CONSTRUCTOR DETAIL ======== -->
|
<!-- ========= CONSTRUCTOR DETAIL ======== -->
|
||||||
|
<section>
|
||||||
<ul class="blockList">
|
<ul class="blockList">
|
||||||
<li class="blockList"><a name="constructor_detail">
|
<li class="blockList"><a id="constructor.detail">
|
||||||
<!-- -->
|
<!-- -->
|
||||||
</a>
|
</a>
|
||||||
<h3>Constructor Detail</h3>
|
<h3>Constructor Detail</h3>
|
||||||
<a name="TJException()">
|
<a id="<init>()">
|
||||||
<!-- -->
|
<!-- -->
|
||||||
</a>
|
</a>
|
||||||
<ul class="blockList">
|
<ul class="blockList">
|
||||||
@@ -212,80 +262,91 @@ extends java.io.IOException</pre>
|
|||||||
<pre>public TJException()</pre>
|
<pre>public TJException()</pre>
|
||||||
</li>
|
</li>
|
||||||
</ul>
|
</ul>
|
||||||
<a name="TJException(java.lang.String, java.lang.Throwable)">
|
<a id="<init>(java.lang.String,java.lang.Throwable)">
|
||||||
<!-- -->
|
<!-- -->
|
||||||
</a>
|
</a>
|
||||||
<ul class="blockList">
|
<ul class="blockList">
|
||||||
<li class="blockList">
|
<li class="blockList">
|
||||||
<h4>TJException</h4>
|
<h4>TJException</h4>
|
||||||
<pre>public TJException(java.lang.String message,
|
<pre>public TJException​(java.lang.String message,
|
||||||
java.lang.Throwable cause)</pre>
|
java.lang.Throwable cause)</pre>
|
||||||
</li>
|
</li>
|
||||||
</ul>
|
</ul>
|
||||||
<a name="TJException(java.lang.String)">
|
<a id="<init>(java.lang.String)">
|
||||||
<!-- -->
|
<!-- -->
|
||||||
</a>
|
</a>
|
||||||
<ul class="blockList">
|
<ul class="blockList">
|
||||||
<li class="blockList">
|
<li class="blockList">
|
||||||
<h4>TJException</h4>
|
<h4>TJException</h4>
|
||||||
<pre>public TJException(java.lang.String message)</pre>
|
<pre>public TJException​(java.lang.String message)</pre>
|
||||||
</li>
|
</li>
|
||||||
</ul>
|
</ul>
|
||||||
<a name="TJException(java.lang.String, int)">
|
<a id="<init>(java.lang.String,int)">
|
||||||
<!-- -->
|
<!-- -->
|
||||||
</a>
|
</a>
|
||||||
<ul class="blockList">
|
<ul class="blockList">
|
||||||
<li class="blockList">
|
<li class="blockList">
|
||||||
<h4>TJException</h4>
|
<h4>TJException</h4>
|
||||||
<pre>public TJException(java.lang.String message,
|
<pre>public TJException​(java.lang.String message,
|
||||||
int code)</pre>
|
int code)</pre>
|
||||||
</li>
|
</li>
|
||||||
</ul>
|
</ul>
|
||||||
<a name="TJException(java.lang.Throwable)">
|
<a id="<init>(java.lang.Throwable)">
|
||||||
<!-- -->
|
<!-- -->
|
||||||
</a>
|
</a>
|
||||||
<ul class="blockListLast">
|
<ul class="blockListLast">
|
||||||
<li class="blockList">
|
<li class="blockList">
|
||||||
<h4>TJException</h4>
|
<h4>TJException</h4>
|
||||||
<pre>public TJException(java.lang.Throwable cause)</pre>
|
<pre>public TJException​(java.lang.Throwable cause)</pre>
|
||||||
</li>
|
</li>
|
||||||
</ul>
|
</ul>
|
||||||
</li>
|
</li>
|
||||||
</ul>
|
</ul>
|
||||||
|
</section>
|
||||||
<!-- ============ METHOD DETAIL ========== -->
|
<!-- ============ METHOD DETAIL ========== -->
|
||||||
|
<section>
|
||||||
<ul class="blockList">
|
<ul class="blockList">
|
||||||
<li class="blockList"><a name="method_detail">
|
<li class="blockList"><a id="method.detail">
|
||||||
<!-- -->
|
<!-- -->
|
||||||
</a>
|
</a>
|
||||||
<h3>Method Detail</h3>
|
<h3>Method Detail</h3>
|
||||||
<a name="getErrorCode()">
|
<a id="getErrorCode()">
|
||||||
<!-- -->
|
<!-- -->
|
||||||
</a>
|
</a>
|
||||||
<ul class="blockListLast">
|
<ul class="blockListLast">
|
||||||
<li class="blockList">
|
<li class="blockList">
|
||||||
<h4>getErrorCode</h4>
|
<h4>getErrorCode</h4>
|
||||||
<pre>public int getErrorCode()</pre>
|
<pre class="methodSignature">public int getErrorCode()</pre>
|
||||||
<div class="block">Returns a code (one of <a href="../../../org/libjpegturbo/turbojpeg/TJ.html" title="class in org.libjpegturbo.turbojpeg"><code>TJ.ERR_*</code></a>) indicating the severity of the
|
<div class="block">Returns a code (one of <a href="TJ.html" title="class in org.libjpegturbo.turbojpeg"><code>TJ.ERR_*</code></a>) indicating the severity of the
|
||||||
last error.</div>
|
last error.</div>
|
||||||
<dl><dt><span class="strong">Returns:</span></dt><dd>a code (one of <a href="../../../org/libjpegturbo/turbojpeg/TJ.html" title="class in org.libjpegturbo.turbojpeg"><code>TJ.ERR_*</code></a>) indicating the severity of the
|
<dl>
|
||||||
last error.</dd></dl>
|
<dt><span class="returnLabel">Returns:</span></dt>
|
||||||
|
<dd>a code (one of <a href="TJ.html" title="class in org.libjpegturbo.turbojpeg"><code>TJ.ERR_*</code></a>) indicating the severity of the
|
||||||
|
last error.</dd>
|
||||||
|
</dl>
|
||||||
</li>
|
</li>
|
||||||
</ul>
|
</ul>
|
||||||
</li>
|
</li>
|
||||||
</ul>
|
</ul>
|
||||||
|
</section>
|
||||||
</li>
|
</li>
|
||||||
</ul>
|
</ul>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
</main>
|
||||||
<!-- ========= END OF CLASS DATA ========= -->
|
<!-- ========= END OF CLASS DATA ========= -->
|
||||||
|
<footer role="contentinfo">
|
||||||
|
<nav role="navigation">
|
||||||
<!-- ======= START OF BOTTOM NAVBAR ====== -->
|
<!-- ======= START OF BOTTOM NAVBAR ====== -->
|
||||||
<div class="bottomNav"><a name="navbar_bottom">
|
<div class="bottomNav"><a id="navbar.bottom">
|
||||||
<!-- -->
|
<!-- -->
|
||||||
</a><a href="#skip-navbar_bottom" title="Skip navigation links"></a><a name="navbar_bottom_firstrow">
|
</a>
|
||||||
|
<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
|
||||||
|
<a id="navbar.bottom.firstrow">
|
||||||
<!-- -->
|
<!-- -->
|
||||||
</a>
|
</a>
|
||||||
<ul class="navList" title="Navigation">
|
<ul class="navList" title="Navigation">
|
||||||
<li><a href="../../../org/libjpegturbo/turbojpeg/package-summary.html">Package</a></li>
|
<li><a href="package-summary.html">Package</a></li>
|
||||||
<li class="navBarCell1Rev">Class</li>
|
<li class="navBarCell1Rev">Class</li>
|
||||||
<li><a href="package-tree.html">Tree</a></li>
|
<li><a href="package-tree.html">Tree</a></li>
|
||||||
<li><a href="../../../deprecated-list.html">Deprecated</a></li>
|
<li><a href="../../../deprecated-list.html">Deprecated</a></li>
|
||||||
@@ -294,16 +355,8 @@ extends java.io.IOException</pre>
|
|||||||
</ul>
|
</ul>
|
||||||
</div>
|
</div>
|
||||||
<div class="subNav">
|
<div class="subNav">
|
||||||
<ul class="navList">
|
|
||||||
<li><a href="../../../org/libjpegturbo/turbojpeg/TJDecompressor.html" title="class in org.libjpegturbo.turbojpeg"><span class="strong">Prev Class</span></a></li>
|
|
||||||
<li><a href="../../../org/libjpegturbo/turbojpeg/TJScalingFactor.html" title="class in org.libjpegturbo.turbojpeg"><span class="strong">Next Class</span></a></li>
|
|
||||||
</ul>
|
|
||||||
<ul class="navList">
|
|
||||||
<li><a href="../../../index.html?org/libjpegturbo/turbojpeg/TJException.html" target="_top">Frames</a></li>
|
|
||||||
<li><a href="TJException.html" target="_top">No Frames</a></li>
|
|
||||||
</ul>
|
|
||||||
<ul class="navList" id="allclasses_navbar_bottom">
|
<ul class="navList" id="allclasses_navbar_bottom">
|
||||||
<li><a href="../../../allclasses-noframe.html">All Classes</a></li>
|
<li><a href="../../../allclasses.html">All Classes</a></li>
|
||||||
</ul>
|
</ul>
|
||||||
<div>
|
<div>
|
||||||
<script type="text/javascript"><!--
|
<script type="text/javascript"><!--
|
||||||
@@ -316,25 +369,30 @@ extends java.io.IOException</pre>
|
|||||||
}
|
}
|
||||||
//-->
|
//-->
|
||||||
</script>
|
</script>
|
||||||
|
<noscript>
|
||||||
|
<div>JavaScript is disabled on your browser.</div>
|
||||||
|
</noscript>
|
||||||
</div>
|
</div>
|
||||||
<div>
|
<div>
|
||||||
<ul class="subNavList">
|
<ul class="subNavList">
|
||||||
<li>Summary: </li>
|
<li>Summary: </li>
|
||||||
<li>Nested | </li>
|
<li>Nested | </li>
|
||||||
<li>Field | </li>
|
<li>Field | </li>
|
||||||
<li><a href="#constructor_summary">Constr</a> | </li>
|
<li><a href="#constructor.summary">Constr</a> | </li>
|
||||||
<li><a href="#method_summary">Method</a></li>
|
<li><a href="#method.summary">Method</a></li>
|
||||||
</ul>
|
</ul>
|
||||||
<ul class="subNavList">
|
<ul class="subNavList">
|
||||||
<li>Detail: </li>
|
<li>Detail: </li>
|
||||||
<li>Field | </li>
|
<li>Field | </li>
|
||||||
<li><a href="#constructor_detail">Constr</a> | </li>
|
<li><a href="#constructor.detail">Constr</a> | </li>
|
||||||
<li><a href="#method_detail">Method</a></li>
|
<li><a href="#method.detail">Method</a></li>
|
||||||
</ul>
|
</ul>
|
||||||
</div>
|
</div>
|
||||||
<a name="skip-navbar_bottom">
|
<a id="skip.navbar.bottom">
|
||||||
<!-- -->
|
<!-- -->
|
||||||
</a></div>
|
</a></div>
|
||||||
<!-- ======== END OF BOTTOM NAVBAR ======= -->
|
<!-- ======== END OF BOTTOM NAVBAR ======= -->
|
||||||
|
</nav>
|
||||||
|
</footer>
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
|
|||||||
@@ -1,9 +1,21 @@
|
|||||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
|
<!DOCTYPE HTML>
|
||||||
<!-- NewPage -->
|
<!-- NewPage -->
|
||||||
<html lang="en">
|
<html lang="en">
|
||||||
<head>
|
<head>
|
||||||
|
<!-- Generated by javadoc -->
|
||||||
<title>TJScalingFactor</title>
|
<title>TJScalingFactor</title>
|
||||||
|
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
|
||||||
<link rel="stylesheet" type="text/css" href="../../../stylesheet.css" title="Style">
|
<link rel="stylesheet" type="text/css" href="../../../stylesheet.css" title="Style">
|
||||||
|
<link rel="stylesheet" type="text/css" href="../../../jquery/jquery-ui.min.css" title="Style">
|
||||||
|
<link rel="stylesheet" type="text/css" href="../../../jquery-ui.overrides.css" title="Style">
|
||||||
|
<script type="text/javascript" src="../../../script.js"></script>
|
||||||
|
<script type="text/javascript" src="../../../jquery/jszip/dist/jszip.min.js"></script>
|
||||||
|
<script type="text/javascript" src="../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
|
||||||
|
<!--[if IE]>
|
||||||
|
<script type="text/javascript" src="../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
|
||||||
|
<![endif]-->
|
||||||
|
<script type="text/javascript" src="../../../jquery/jquery-3.6.0.min.js"></script>
|
||||||
|
<script type="text/javascript" src="../../../jquery/jquery-ui.min.js"></script>
|
||||||
</head>
|
</head>
|
||||||
<body>
|
<body>
|
||||||
<script type="text/javascript"><!--
|
<script type="text/javascript"><!--
|
||||||
@@ -15,18 +27,31 @@
|
|||||||
catch(err) {
|
catch(err) {
|
||||||
}
|
}
|
||||||
//-->
|
//-->
|
||||||
</script>
|
var data = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10};
|
||||||
|
var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
|
||||||
|
var altColor = "altColor";
|
||||||
|
var rowColor = "rowColor";
|
||||||
|
var tableTab = "tableTab";
|
||||||
|
var activeTableTab = "activeTableTab";
|
||||||
|
var pathtoroot = "../../../";
|
||||||
|
var useModuleDirectories = true;
|
||||||
|
loadScripts(document, 'script');</script>
|
||||||
<noscript>
|
<noscript>
|
||||||
<div>JavaScript is disabled on your browser.</div>
|
<div>JavaScript is disabled on your browser.</div>
|
||||||
</noscript>
|
</noscript>
|
||||||
|
<header role="banner">
|
||||||
|
<nav role="navigation">
|
||||||
|
<div class="fixedNav">
|
||||||
<!-- ========= START OF TOP NAVBAR ======= -->
|
<!-- ========= START OF TOP NAVBAR ======= -->
|
||||||
<div class="topNav"><a name="navbar_top">
|
<div class="topNav"><a id="navbar.top">
|
||||||
<!-- -->
|
<!-- -->
|
||||||
</a><a href="#skip-navbar_top" title="Skip navigation links"></a><a name="navbar_top_firstrow">
|
</a>
|
||||||
|
<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
|
||||||
|
<a id="navbar.top.firstrow">
|
||||||
<!-- -->
|
<!-- -->
|
||||||
</a>
|
</a>
|
||||||
<ul class="navList" title="Navigation">
|
<ul class="navList" title="Navigation">
|
||||||
<li><a href="../../../org/libjpegturbo/turbojpeg/package-summary.html">Package</a></li>
|
<li><a href="package-summary.html">Package</a></li>
|
||||||
<li class="navBarCell1Rev">Class</li>
|
<li class="navBarCell1Rev">Class</li>
|
||||||
<li><a href="package-tree.html">Tree</a></li>
|
<li><a href="package-tree.html">Tree</a></li>
|
||||||
<li><a href="../../../deprecated-list.html">Deprecated</a></li>
|
<li><a href="../../../deprecated-list.html">Deprecated</a></li>
|
||||||
@@ -35,16 +60,14 @@
|
|||||||
</ul>
|
</ul>
|
||||||
</div>
|
</div>
|
||||||
<div class="subNav">
|
<div class="subNav">
|
||||||
<ul class="navList">
|
|
||||||
<li><a href="../../../org/libjpegturbo/turbojpeg/TJException.html" title="class in org.libjpegturbo.turbojpeg"><span class="strong">Prev Class</span></a></li>
|
|
||||||
<li><a href="../../../org/libjpegturbo/turbojpeg/TJTransform.html" title="class in org.libjpegturbo.turbojpeg"><span class="strong">Next Class</span></a></li>
|
|
||||||
</ul>
|
|
||||||
<ul class="navList">
|
|
||||||
<li><a href="../../../index.html?org/libjpegturbo/turbojpeg/TJScalingFactor.html" target="_top">Frames</a></li>
|
|
||||||
<li><a href="TJScalingFactor.html" target="_top">No Frames</a></li>
|
|
||||||
</ul>
|
|
||||||
<ul class="navList" id="allclasses_navbar_top">
|
<ul class="navList" id="allclasses_navbar_top">
|
||||||
<li><a href="../../../allclasses-noframe.html">All Classes</a></li>
|
<li><a href="../../../allclasses.html">All Classes</a></li>
|
||||||
|
</ul>
|
||||||
|
<ul class="navListSearch">
|
||||||
|
<li><label for="search">SEARCH:</label>
|
||||||
|
<input type="text" id="search" value="search" disabled="disabled">
|
||||||
|
<input type="reset" id="reset" value="reset" disabled="disabled">
|
||||||
|
</li>
|
||||||
</ul>
|
</ul>
|
||||||
<div>
|
<div>
|
||||||
<script type="text/javascript"><!--
|
<script type="text/javascript"><!--
|
||||||
@@ -57,29 +80,41 @@
|
|||||||
}
|
}
|
||||||
//-->
|
//-->
|
||||||
</script>
|
</script>
|
||||||
|
<noscript>
|
||||||
|
<div>JavaScript is disabled on your browser.</div>
|
||||||
|
</noscript>
|
||||||
</div>
|
</div>
|
||||||
<div>
|
<div>
|
||||||
<ul class="subNavList">
|
<ul class="subNavList">
|
||||||
<li>Summary: </li>
|
<li>Summary: </li>
|
||||||
<li>Nested | </li>
|
<li>Nested | </li>
|
||||||
<li>Field | </li>
|
<li>Field | </li>
|
||||||
<li><a href="#constructor_summary">Constr</a> | </li>
|
<li><a href="#constructor.summary">Constr</a> | </li>
|
||||||
<li><a href="#method_summary">Method</a></li>
|
<li><a href="#method.summary">Method</a></li>
|
||||||
</ul>
|
</ul>
|
||||||
<ul class="subNavList">
|
<ul class="subNavList">
|
||||||
<li>Detail: </li>
|
<li>Detail: </li>
|
||||||
<li>Field | </li>
|
<li>Field | </li>
|
||||||
<li><a href="#constructor_detail">Constr</a> | </li>
|
<li><a href="#constructor.detail">Constr</a> | </li>
|
||||||
<li><a href="#method_detail">Method</a></li>
|
<li><a href="#method.detail">Method</a></li>
|
||||||
</ul>
|
</ul>
|
||||||
</div>
|
</div>
|
||||||
<a name="skip-navbar_top">
|
<a id="skip.navbar.top">
|
||||||
<!-- -->
|
<!-- -->
|
||||||
</a></div>
|
</a></div>
|
||||||
<!-- ========= END OF TOP NAVBAR ========= -->
|
<!-- ========= END OF TOP NAVBAR ========= -->
|
||||||
|
</div>
|
||||||
|
<div class="navPadding"> </div>
|
||||||
|
<script type="text/javascript"><!--
|
||||||
|
$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
|
||||||
|
//-->
|
||||||
|
</script>
|
||||||
|
</nav>
|
||||||
|
</header>
|
||||||
<!-- ======== START OF CLASS DATA ======== -->
|
<!-- ======== START OF CLASS DATA ======== -->
|
||||||
|
<main role="main">
|
||||||
<div class="header">
|
<div class="header">
|
||||||
<div class="subTitle">org.libjpegturbo.turbojpeg</div>
|
<div class="subTitle"><span class="packageLabelInType">Package</span> <a href="package-summary.html">org.libjpegturbo.turbojpeg</a></div>
|
||||||
<h2 title="Class TJScalingFactor" class="title">Class TJScalingFactor</h2>
|
<h2 title="Class TJScalingFactor" class="title">Class TJScalingFactor</h2>
|
||||||
</div>
|
</div>
|
||||||
<div class="contentContainer">
|
<div class="contentContainer">
|
||||||
@@ -95,8 +130,7 @@
|
|||||||
<ul class="blockList">
|
<ul class="blockList">
|
||||||
<li class="blockList">
|
<li class="blockList">
|
||||||
<hr>
|
<hr>
|
||||||
<br>
|
<pre>public class <span class="typeNameLabel">TJScalingFactor</span>
|
||||||
<pre>public class <span class="strong">TJScalingFactor</span>
|
|
||||||
extends java.lang.Object</pre>
|
extends java.lang.Object</pre>
|
||||||
<div class="block">Fractional scaling factor</div>
|
<div class="block">Fractional scaling factor</div>
|
||||||
</li>
|
</li>
|
||||||
@@ -106,72 +140,83 @@ extends java.lang.Object</pre>
|
|||||||
<ul class="blockList">
|
<ul class="blockList">
|
||||||
<li class="blockList">
|
<li class="blockList">
|
||||||
<!-- ======== CONSTRUCTOR SUMMARY ======== -->
|
<!-- ======== CONSTRUCTOR SUMMARY ======== -->
|
||||||
|
<section>
|
||||||
<ul class="blockList">
|
<ul class="blockList">
|
||||||
<li class="blockList"><a name="constructor_summary">
|
<li class="blockList"><a id="constructor.summary">
|
||||||
<!-- -->
|
<!-- -->
|
||||||
</a>
|
</a>
|
||||||
<h3>Constructor Summary</h3>
|
<h3>Constructor Summary</h3>
|
||||||
<table class="overviewSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
|
<table class="memberSummary">
|
||||||
<caption><span>Constructors</span><span class="tabEnd"> </span></caption>
|
<caption><span>Constructors</span><span class="tabEnd"> </span></caption>
|
||||||
<tr>
|
<tr>
|
||||||
<th class="colOne" scope="col">Constructor and Description</th>
|
<th class="colFirst" scope="col">Constructor</th>
|
||||||
|
<th class="colLast" scope="col">Description</th>
|
||||||
</tr>
|
</tr>
|
||||||
<tr class="altColor">
|
<tr class="altColor">
|
||||||
<td class="colOne"><code><strong><a href="../../../org/libjpegturbo/turbojpeg/TJScalingFactor.html#TJScalingFactor(int,%20int)">TJScalingFactor</a></strong>(int num,
|
<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(int,int)">TJScalingFactor</a></span>​(int num,
|
||||||
int denom)</code>
|
int denom)</code></th>
|
||||||
|
<td class="colLast">
|
||||||
<div class="block">Create a TurboJPEG scaling factor instance.</div>
|
<div class="block">Create a TurboJPEG scaling factor instance.</div>
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
</table>
|
</table>
|
||||||
</li>
|
</li>
|
||||||
</ul>
|
</ul>
|
||||||
|
</section>
|
||||||
<!-- ========== METHOD SUMMARY =========== -->
|
<!-- ========== METHOD SUMMARY =========== -->
|
||||||
|
<section>
|
||||||
<ul class="blockList">
|
<ul class="blockList">
|
||||||
<li class="blockList"><a name="method_summary">
|
<li class="blockList"><a id="method.summary">
|
||||||
<!-- -->
|
<!-- -->
|
||||||
</a>
|
</a>
|
||||||
<h3>Method Summary</h3>
|
<h3>Method Summary</h3>
|
||||||
<table class="overviewSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
|
<table class="memberSummary">
|
||||||
<caption><span>Methods</span><span class="tabEnd"> </span></caption>
|
<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd"> </span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd"> </span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd"> </span></span></caption>
|
||||||
<tr>
|
<tr>
|
||||||
<th class="colFirst" scope="col">Modifier and Type</th>
|
<th class="colFirst" scope="col">Modifier and Type</th>
|
||||||
<th class="colLast" scope="col">Method and Description</th>
|
<th class="colSecond" scope="col">Method</th>
|
||||||
|
<th class="colLast" scope="col">Description</th>
|
||||||
</tr>
|
</tr>
|
||||||
<tr class="altColor">
|
<tr id="i0" class="altColor">
|
||||||
<td class="colFirst"><code>boolean</code></td>
|
<td class="colFirst"><code>boolean</code></td>
|
||||||
<td class="colLast"><code><strong><a href="../../../org/libjpegturbo/turbojpeg/TJScalingFactor.html#equals(org.libjpegturbo.turbojpeg.TJScalingFactor)">equals</a></strong>(<a href="../../../org/libjpegturbo/turbojpeg/TJScalingFactor.html" title="class in org.libjpegturbo.turbojpeg">TJScalingFactor</a> other)</code>
|
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#equals(org.libjpegturbo.turbojpeg.TJScalingFactor)">equals</a></span>​(<a href="TJScalingFactor.html" title="class in org.libjpegturbo.turbojpeg">TJScalingFactor</a> other)</code></th>
|
||||||
|
<td class="colLast">
|
||||||
<div class="block">Returns true or false, depending on whether this instance and
|
<div class="block">Returns true or false, depending on whether this instance and
|
||||||
<code>other</code> have the same numerator and denominator.</div>
|
<code>other</code> have the same numerator and denominator.</div>
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr class="rowColor">
|
<tr id="i1" class="rowColor">
|
||||||
<td class="colFirst"><code>int</code></td>
|
<td class="colFirst"><code>int</code></td>
|
||||||
<td class="colLast"><code><strong><a href="../../../org/libjpegturbo/turbojpeg/TJScalingFactor.html#getDenom()">getDenom</a></strong>()</code>
|
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getDenom()">getDenom</a></span>()</code></th>
|
||||||
|
<td class="colLast">
|
||||||
<div class="block">Returns denominator</div>
|
<div class="block">Returns denominator</div>
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr class="altColor">
|
<tr id="i2" class="altColor">
|
||||||
<td class="colFirst"><code>int</code></td>
|
<td class="colFirst"><code>int</code></td>
|
||||||
<td class="colLast"><code><strong><a href="../../../org/libjpegturbo/turbojpeg/TJScalingFactor.html#getNum()">getNum</a></strong>()</code>
|
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getNum()">getNum</a></span>()</code></th>
|
||||||
|
<td class="colLast">
|
||||||
<div class="block">Returns numerator</div>
|
<div class="block">Returns numerator</div>
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr class="rowColor">
|
<tr id="i3" class="rowColor">
|
||||||
<td class="colFirst"><code>int</code></td>
|
<td class="colFirst"><code>int</code></td>
|
||||||
<td class="colLast"><code><strong><a href="../../../org/libjpegturbo/turbojpeg/TJScalingFactor.html#getScaled(int)">getScaled</a></strong>(int dimension)</code>
|
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getScaled(int)">getScaled</a></span>​(int dimension)</code></th>
|
||||||
|
<td class="colLast">
|
||||||
<div class="block">Returns the scaled value of <code>dimension</code>.</div>
|
<div class="block">Returns the scaled value of <code>dimension</code>.</div>
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr class="altColor">
|
<tr id="i4" class="altColor">
|
||||||
<td class="colFirst"><code>boolean</code></td>
|
<td class="colFirst"><code>boolean</code></td>
|
||||||
<td class="colLast"><code><strong><a href="../../../org/libjpegturbo/turbojpeg/TJScalingFactor.html#isOne()">isOne</a></strong>()</code>
|
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#isOne()">isOne</a></span>()</code></th>
|
||||||
|
<td class="colLast">
|
||||||
<div class="block">Returns true or false, depending on whether this instance is equal to
|
<div class="block">Returns true or false, depending on whether this instance is equal to
|
||||||
1/1.</div>
|
1/1.</div>
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
</table>
|
</table>
|
||||||
<ul class="blockList">
|
<ul class="blockList">
|
||||||
<li class="blockList"><a name="methods_inherited_from_class_java.lang.Object">
|
<li class="blockList"><a id="methods.inherited.from.class.java.lang.Object">
|
||||||
<!-- -->
|
<!-- -->
|
||||||
</a>
|
</a>
|
||||||
<h3>Methods inherited from class java.lang.Object</h3>
|
<h3>Methods inherited from class java.lang.Object</h3>
|
||||||
@@ -179,6 +224,7 @@ extends java.lang.Object</pre>
|
|||||||
</ul>
|
</ul>
|
||||||
</li>
|
</li>
|
||||||
</ul>
|
</ul>
|
||||||
|
</section>
|
||||||
</li>
|
</li>
|
||||||
</ul>
|
</ul>
|
||||||
</div>
|
</div>
|
||||||
@@ -186,109 +232,139 @@ extends java.lang.Object</pre>
|
|||||||
<ul class="blockList">
|
<ul class="blockList">
|
||||||
<li class="blockList">
|
<li class="blockList">
|
||||||
<!-- ========= CONSTRUCTOR DETAIL ======== -->
|
<!-- ========= CONSTRUCTOR DETAIL ======== -->
|
||||||
|
<section>
|
||||||
<ul class="blockList">
|
<ul class="blockList">
|
||||||
<li class="blockList"><a name="constructor_detail">
|
<li class="blockList"><a id="constructor.detail">
|
||||||
<!-- -->
|
<!-- -->
|
||||||
</a>
|
</a>
|
||||||
<h3>Constructor Detail</h3>
|
<h3>Constructor Detail</h3>
|
||||||
<a name="TJScalingFactor(int, int)">
|
<a id="<init>(int,int)">
|
||||||
<!-- -->
|
<!-- -->
|
||||||
</a>
|
</a>
|
||||||
<ul class="blockListLast">
|
<ul class="blockListLast">
|
||||||
<li class="blockList">
|
<li class="blockList">
|
||||||
<h4>TJScalingFactor</h4>
|
<h4>TJScalingFactor</h4>
|
||||||
<pre>public TJScalingFactor(int num,
|
<pre>public TJScalingFactor​(int num,
|
||||||
int denom)</pre>
|
int denom)</pre>
|
||||||
<div class="block">Create a TurboJPEG scaling factor instance.</div>
|
<div class="block">Create a TurboJPEG scaling factor instance.</div>
|
||||||
<dl><dt><span class="strong">Parameters:</span></dt><dd><code>num</code> - numerator</dd><dd><code>denom</code> - denominator</dd></dl>
|
<dl>
|
||||||
|
<dt><span class="paramLabel">Parameters:</span></dt>
|
||||||
|
<dd><code>num</code> - numerator</dd>
|
||||||
|
<dd><code>denom</code> - denominator</dd>
|
||||||
|
</dl>
|
||||||
</li>
|
</li>
|
||||||
</ul>
|
</ul>
|
||||||
</li>
|
</li>
|
||||||
</ul>
|
</ul>
|
||||||
|
</section>
|
||||||
<!-- ============ METHOD DETAIL ========== -->
|
<!-- ============ METHOD DETAIL ========== -->
|
||||||
|
<section>
|
||||||
<ul class="blockList">
|
<ul class="blockList">
|
||||||
<li class="blockList"><a name="method_detail">
|
<li class="blockList"><a id="method.detail">
|
||||||
<!-- -->
|
<!-- -->
|
||||||
</a>
|
</a>
|
||||||
<h3>Method Detail</h3>
|
<h3>Method Detail</h3>
|
||||||
<a name="getNum()">
|
<a id="getNum()">
|
||||||
<!-- -->
|
<!-- -->
|
||||||
</a>
|
</a>
|
||||||
<ul class="blockList">
|
<ul class="blockList">
|
||||||
<li class="blockList">
|
<li class="blockList">
|
||||||
<h4>getNum</h4>
|
<h4>getNum</h4>
|
||||||
<pre>public int getNum()</pre>
|
<pre class="methodSignature">public int getNum()</pre>
|
||||||
<div class="block">Returns numerator</div>
|
<div class="block">Returns numerator</div>
|
||||||
<dl><dt><span class="strong">Returns:</span></dt><dd>numerator</dd></dl>
|
<dl>
|
||||||
|
<dt><span class="returnLabel">Returns:</span></dt>
|
||||||
|
<dd>numerator</dd>
|
||||||
|
</dl>
|
||||||
</li>
|
</li>
|
||||||
</ul>
|
</ul>
|
||||||
<a name="getDenom()">
|
<a id="getDenom()">
|
||||||
<!-- -->
|
<!-- -->
|
||||||
</a>
|
</a>
|
||||||
<ul class="blockList">
|
<ul class="blockList">
|
||||||
<li class="blockList">
|
<li class="blockList">
|
||||||
<h4>getDenom</h4>
|
<h4>getDenom</h4>
|
||||||
<pre>public int getDenom()</pre>
|
<pre class="methodSignature">public int getDenom()</pre>
|
||||||
<div class="block">Returns denominator</div>
|
<div class="block">Returns denominator</div>
|
||||||
<dl><dt><span class="strong">Returns:</span></dt><dd>denominator</dd></dl>
|
<dl>
|
||||||
|
<dt><span class="returnLabel">Returns:</span></dt>
|
||||||
|
<dd>denominator</dd>
|
||||||
|
</dl>
|
||||||
</li>
|
</li>
|
||||||
</ul>
|
</ul>
|
||||||
<a name="getScaled(int)">
|
<a id="getScaled(int)">
|
||||||
<!-- -->
|
<!-- -->
|
||||||
</a>
|
</a>
|
||||||
<ul class="blockList">
|
<ul class="blockList">
|
||||||
<li class="blockList">
|
<li class="blockList">
|
||||||
<h4>getScaled</h4>
|
<h4>getScaled</h4>
|
||||||
<pre>public int getScaled(int dimension)</pre>
|
<pre class="methodSignature">public int getScaled​(int dimension)</pre>
|
||||||
<div class="block">Returns the scaled value of <code>dimension</code>. This function
|
<div class="block">Returns the scaled value of <code>dimension</code>. This function
|
||||||
performs the integer equivalent of
|
performs the integer equivalent of
|
||||||
<code>ceil(dimension * scalingFactor)</code>.</div>
|
<code>ceil(dimension * scalingFactor)</code>.</div>
|
||||||
<dl><dt><span class="strong">Parameters:</span></dt><dd><code>dimension</code> - width or height to multiply by this scaling factor</dd>
|
<dl>
|
||||||
<dt><span class="strong">Returns:</span></dt><dd>the scaled value of <code>dimension</code>.</dd></dl>
|
<dt><span class="paramLabel">Parameters:</span></dt>
|
||||||
|
<dd><code>dimension</code> - width or height to multiply by this scaling factor</dd>
|
||||||
|
<dt><span class="returnLabel">Returns:</span></dt>
|
||||||
|
<dd>the scaled value of <code>dimension</code>.</dd>
|
||||||
|
</dl>
|
||||||
</li>
|
</li>
|
||||||
</ul>
|
</ul>
|
||||||
<a name="equals(org.libjpegturbo.turbojpeg.TJScalingFactor)">
|
<a id="equals(org.libjpegturbo.turbojpeg.TJScalingFactor)">
|
||||||
<!-- -->
|
<!-- -->
|
||||||
</a>
|
</a>
|
||||||
<ul class="blockList">
|
<ul class="blockList">
|
||||||
<li class="blockList">
|
<li class="blockList">
|
||||||
<h4>equals</h4>
|
<h4>equals</h4>
|
||||||
<pre>public boolean equals(<a href="../../../org/libjpegturbo/turbojpeg/TJScalingFactor.html" title="class in org.libjpegturbo.turbojpeg">TJScalingFactor</a> other)</pre>
|
<pre class="methodSignature">public boolean equals​(<a href="TJScalingFactor.html" title="class in org.libjpegturbo.turbojpeg">TJScalingFactor</a> other)</pre>
|
||||||
<div class="block">Returns true or false, depending on whether this instance and
|
<div class="block">Returns true or false, depending on whether this instance and
|
||||||
<code>other</code> have the same numerator and denominator.</div>
|
<code>other</code> have the same numerator and denominator.</div>
|
||||||
<dl><dt><span class="strong">Parameters:</span></dt><dd><code>other</code> - the scaling factor against which to compare this one</dd>
|
<dl>
|
||||||
<dt><span class="strong">Returns:</span></dt><dd>true or false, depending on whether this instance and
|
<dt><span class="paramLabel">Parameters:</span></dt>
|
||||||
<code>other</code> have the same numerator and denominator.</dd></dl>
|
<dd><code>other</code> - the scaling factor against which to compare this one</dd>
|
||||||
|
<dt><span class="returnLabel">Returns:</span></dt>
|
||||||
|
<dd>true or false, depending on whether this instance and
|
||||||
|
<code>other</code> have the same numerator and denominator.</dd>
|
||||||
|
</dl>
|
||||||
</li>
|
</li>
|
||||||
</ul>
|
</ul>
|
||||||
<a name="isOne()">
|
<a id="isOne()">
|
||||||
<!-- -->
|
<!-- -->
|
||||||
</a>
|
</a>
|
||||||
<ul class="blockListLast">
|
<ul class="blockListLast">
|
||||||
<li class="blockList">
|
<li class="blockList">
|
||||||
<h4>isOne</h4>
|
<h4>isOne</h4>
|
||||||
<pre>public boolean isOne()</pre>
|
<pre class="methodSignature">public boolean isOne()</pre>
|
||||||
<div class="block">Returns true or false, depending on whether this instance is equal to
|
<div class="block">Returns true or false, depending on whether this instance is equal to
|
||||||
1/1.</div>
|
1/1.</div>
|
||||||
<dl><dt><span class="strong">Returns:</span></dt><dd>true or false, depending on whether this instance is equal to
|
<dl>
|
||||||
1/1.</dd></dl>
|
<dt><span class="returnLabel">Returns:</span></dt>
|
||||||
|
<dd>true or false, depending on whether this instance is equal to
|
||||||
|
1/1.</dd>
|
||||||
|
</dl>
|
||||||
</li>
|
</li>
|
||||||
</ul>
|
</ul>
|
||||||
</li>
|
</li>
|
||||||
</ul>
|
</ul>
|
||||||
|
</section>
|
||||||
</li>
|
</li>
|
||||||
</ul>
|
</ul>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
</main>
|
||||||
<!-- ========= END OF CLASS DATA ========= -->
|
<!-- ========= END OF CLASS DATA ========= -->
|
||||||
|
<footer role="contentinfo">
|
||||||
|
<nav role="navigation">
|
||||||
<!-- ======= START OF BOTTOM NAVBAR ====== -->
|
<!-- ======= START OF BOTTOM NAVBAR ====== -->
|
||||||
<div class="bottomNav"><a name="navbar_bottom">
|
<div class="bottomNav"><a id="navbar.bottom">
|
||||||
<!-- -->
|
<!-- -->
|
||||||
</a><a href="#skip-navbar_bottom" title="Skip navigation links"></a><a name="navbar_bottom_firstrow">
|
</a>
|
||||||
|
<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
|
||||||
|
<a id="navbar.bottom.firstrow">
|
||||||
<!-- -->
|
<!-- -->
|
||||||
</a>
|
</a>
|
||||||
<ul class="navList" title="Navigation">
|
<ul class="navList" title="Navigation">
|
||||||
<li><a href="../../../org/libjpegturbo/turbojpeg/package-summary.html">Package</a></li>
|
<li><a href="package-summary.html">Package</a></li>
|
||||||
<li class="navBarCell1Rev">Class</li>
|
<li class="navBarCell1Rev">Class</li>
|
||||||
<li><a href="package-tree.html">Tree</a></li>
|
<li><a href="package-tree.html">Tree</a></li>
|
||||||
<li><a href="../../../deprecated-list.html">Deprecated</a></li>
|
<li><a href="../../../deprecated-list.html">Deprecated</a></li>
|
||||||
@@ -297,16 +373,8 @@ extends java.lang.Object</pre>
|
|||||||
</ul>
|
</ul>
|
||||||
</div>
|
</div>
|
||||||
<div class="subNav">
|
<div class="subNav">
|
||||||
<ul class="navList">
|
|
||||||
<li><a href="../../../org/libjpegturbo/turbojpeg/TJException.html" title="class in org.libjpegturbo.turbojpeg"><span class="strong">Prev Class</span></a></li>
|
|
||||||
<li><a href="../../../org/libjpegturbo/turbojpeg/TJTransform.html" title="class in org.libjpegturbo.turbojpeg"><span class="strong">Next Class</span></a></li>
|
|
||||||
</ul>
|
|
||||||
<ul class="navList">
|
|
||||||
<li><a href="../../../index.html?org/libjpegturbo/turbojpeg/TJScalingFactor.html" target="_top">Frames</a></li>
|
|
||||||
<li><a href="TJScalingFactor.html" target="_top">No Frames</a></li>
|
|
||||||
</ul>
|
|
||||||
<ul class="navList" id="allclasses_navbar_bottom">
|
<ul class="navList" id="allclasses_navbar_bottom">
|
||||||
<li><a href="../../../allclasses-noframe.html">All Classes</a></li>
|
<li><a href="../../../allclasses.html">All Classes</a></li>
|
||||||
</ul>
|
</ul>
|
||||||
<div>
|
<div>
|
||||||
<script type="text/javascript"><!--
|
<script type="text/javascript"><!--
|
||||||
@@ -319,25 +387,30 @@ extends java.lang.Object</pre>
|
|||||||
}
|
}
|
||||||
//-->
|
//-->
|
||||||
</script>
|
</script>
|
||||||
|
<noscript>
|
||||||
|
<div>JavaScript is disabled on your browser.</div>
|
||||||
|
</noscript>
|
||||||
</div>
|
</div>
|
||||||
<div>
|
<div>
|
||||||
<ul class="subNavList">
|
<ul class="subNavList">
|
||||||
<li>Summary: </li>
|
<li>Summary: </li>
|
||||||
<li>Nested | </li>
|
<li>Nested | </li>
|
||||||
<li>Field | </li>
|
<li>Field | </li>
|
||||||
<li><a href="#constructor_summary">Constr</a> | </li>
|
<li><a href="#constructor.summary">Constr</a> | </li>
|
||||||
<li><a href="#method_summary">Method</a></li>
|
<li><a href="#method.summary">Method</a></li>
|
||||||
</ul>
|
</ul>
|
||||||
<ul class="subNavList">
|
<ul class="subNavList">
|
||||||
<li>Detail: </li>
|
<li>Detail: </li>
|
||||||
<li>Field | </li>
|
<li>Field | </li>
|
||||||
<li><a href="#constructor_detail">Constr</a> | </li>
|
<li><a href="#constructor.detail">Constr</a> | </li>
|
||||||
<li><a href="#method_detail">Method</a></li>
|
<li><a href="#method.detail">Method</a></li>
|
||||||
</ul>
|
</ul>
|
||||||
</div>
|
</div>
|
||||||
<a name="skip-navbar_bottom">
|
<a id="skip.navbar.bottom">
|
||||||
<!-- -->
|
<!-- -->
|
||||||
</a></div>
|
</a></div>
|
||||||
<!-- ======== END OF BOTTOM NAVBAR ======= -->
|
<!-- ======== END OF BOTTOM NAVBAR ======= -->
|
||||||
|
</nav>
|
||||||
|
</footer>
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
|
|||||||
File diff suppressed because it is too large
Load Diff
@@ -1,9 +1,21 @@
|
|||||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
|
<!DOCTYPE HTML>
|
||||||
<!-- NewPage -->
|
<!-- NewPage -->
|
||||||
<html lang="en">
|
<html lang="en">
|
||||||
<head>
|
<head>
|
||||||
|
<!-- Generated by javadoc -->
|
||||||
<title>TJTransformer</title>
|
<title>TJTransformer</title>
|
||||||
|
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
|
||||||
<link rel="stylesheet" type="text/css" href="../../../stylesheet.css" title="Style">
|
<link rel="stylesheet" type="text/css" href="../../../stylesheet.css" title="Style">
|
||||||
|
<link rel="stylesheet" type="text/css" href="../../../jquery/jquery-ui.min.css" title="Style">
|
||||||
|
<link rel="stylesheet" type="text/css" href="../../../jquery-ui.overrides.css" title="Style">
|
||||||
|
<script type="text/javascript" src="../../../script.js"></script>
|
||||||
|
<script type="text/javascript" src="../../../jquery/jszip/dist/jszip.min.js"></script>
|
||||||
|
<script type="text/javascript" src="../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
|
||||||
|
<!--[if IE]>
|
||||||
|
<script type="text/javascript" src="../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
|
||||||
|
<![endif]-->
|
||||||
|
<script type="text/javascript" src="../../../jquery/jquery-3.6.0.min.js"></script>
|
||||||
|
<script type="text/javascript" src="../../../jquery/jquery-ui.min.js"></script>
|
||||||
</head>
|
</head>
|
||||||
<body>
|
<body>
|
||||||
<script type="text/javascript"><!--
|
<script type="text/javascript"><!--
|
||||||
@@ -15,18 +27,31 @@
|
|||||||
catch(err) {
|
catch(err) {
|
||||||
}
|
}
|
||||||
//-->
|
//-->
|
||||||
</script>
|
var data = {"i0":10,"i1":10,"i2":42,"i3":10,"i4":42};
|
||||||
|
var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"],32:["t6","Deprecated Methods"]};
|
||||||
|
var altColor = "altColor";
|
||||||
|
var rowColor = "rowColor";
|
||||||
|
var tableTab = "tableTab";
|
||||||
|
var activeTableTab = "activeTableTab";
|
||||||
|
var pathtoroot = "../../../";
|
||||||
|
var useModuleDirectories = true;
|
||||||
|
loadScripts(document, 'script');</script>
|
||||||
<noscript>
|
<noscript>
|
||||||
<div>JavaScript is disabled on your browser.</div>
|
<div>JavaScript is disabled on your browser.</div>
|
||||||
</noscript>
|
</noscript>
|
||||||
|
<header role="banner">
|
||||||
|
<nav role="navigation">
|
||||||
|
<div class="fixedNav">
|
||||||
<!-- ========= START OF TOP NAVBAR ======= -->
|
<!-- ========= START OF TOP NAVBAR ======= -->
|
||||||
<div class="topNav"><a name="navbar_top">
|
<div class="topNav"><a id="navbar.top">
|
||||||
<!-- -->
|
<!-- -->
|
||||||
</a><a href="#skip-navbar_top" title="Skip navigation links"></a><a name="navbar_top_firstrow">
|
</a>
|
||||||
|
<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
|
||||||
|
<a id="navbar.top.firstrow">
|
||||||
<!-- -->
|
<!-- -->
|
||||||
</a>
|
</a>
|
||||||
<ul class="navList" title="Navigation">
|
<ul class="navList" title="Navigation">
|
||||||
<li><a href="../../../org/libjpegturbo/turbojpeg/package-summary.html">Package</a></li>
|
<li><a href="package-summary.html">Package</a></li>
|
||||||
<li class="navBarCell1Rev">Class</li>
|
<li class="navBarCell1Rev">Class</li>
|
||||||
<li><a href="package-tree.html">Tree</a></li>
|
<li><a href="package-tree.html">Tree</a></li>
|
||||||
<li><a href="../../../deprecated-list.html">Deprecated</a></li>
|
<li><a href="../../../deprecated-list.html">Deprecated</a></li>
|
||||||
@@ -35,16 +60,14 @@
|
|||||||
</ul>
|
</ul>
|
||||||
</div>
|
</div>
|
||||||
<div class="subNav">
|
<div class="subNav">
|
||||||
<ul class="navList">
|
|
||||||
<li><a href="../../../org/libjpegturbo/turbojpeg/TJTransform.html" title="class in org.libjpegturbo.turbojpeg"><span class="strong">Prev Class</span></a></li>
|
|
||||||
<li><a href="../../../org/libjpegturbo/turbojpeg/YUVImage.html" title="class in org.libjpegturbo.turbojpeg"><span class="strong">Next Class</span></a></li>
|
|
||||||
</ul>
|
|
||||||
<ul class="navList">
|
|
||||||
<li><a href="../../../index.html?org/libjpegturbo/turbojpeg/TJTransformer.html" target="_top">Frames</a></li>
|
|
||||||
<li><a href="TJTransformer.html" target="_top">No Frames</a></li>
|
|
||||||
</ul>
|
|
||||||
<ul class="navList" id="allclasses_navbar_top">
|
<ul class="navList" id="allclasses_navbar_top">
|
||||||
<li><a href="../../../allclasses-noframe.html">All Classes</a></li>
|
<li><a href="../../../allclasses.html">All Classes</a></li>
|
||||||
|
</ul>
|
||||||
|
<ul class="navListSearch">
|
||||||
|
<li><label for="search">SEARCH:</label>
|
||||||
|
<input type="text" id="search" value="search" disabled="disabled">
|
||||||
|
<input type="reset" id="reset" value="reset" disabled="disabled">
|
||||||
|
</li>
|
||||||
</ul>
|
</ul>
|
||||||
<div>
|
<div>
|
||||||
<script type="text/javascript"><!--
|
<script type="text/javascript"><!--
|
||||||
@@ -57,29 +80,41 @@
|
|||||||
}
|
}
|
||||||
//-->
|
//-->
|
||||||
</script>
|
</script>
|
||||||
|
<noscript>
|
||||||
|
<div>JavaScript is disabled on your browser.</div>
|
||||||
|
</noscript>
|
||||||
</div>
|
</div>
|
||||||
<div>
|
<div>
|
||||||
<ul class="subNavList">
|
<ul class="subNavList">
|
||||||
<li>Summary: </li>
|
<li>Summary: </li>
|
||||||
<li>Nested | </li>
|
<li>Nested | </li>
|
||||||
<li><a href="#fields_inherited_from_class_org.libjpegturbo.turbojpeg.TJDecompressor">Field</a> | </li>
|
<li>Field | </li>
|
||||||
<li><a href="#constructor_summary">Constr</a> | </li>
|
<li><a href="#constructor.summary">Constr</a> | </li>
|
||||||
<li><a href="#method_summary">Method</a></li>
|
<li><a href="#method.summary">Method</a></li>
|
||||||
</ul>
|
</ul>
|
||||||
<ul class="subNavList">
|
<ul class="subNavList">
|
||||||
<li>Detail: </li>
|
<li>Detail: </li>
|
||||||
<li>Field | </li>
|
<li>Field | </li>
|
||||||
<li><a href="#constructor_detail">Constr</a> | </li>
|
<li><a href="#constructor.detail">Constr</a> | </li>
|
||||||
<li><a href="#method_detail">Method</a></li>
|
<li><a href="#method.detail">Method</a></li>
|
||||||
</ul>
|
</ul>
|
||||||
</div>
|
</div>
|
||||||
<a name="skip-navbar_top">
|
<a id="skip.navbar.top">
|
||||||
<!-- -->
|
<!-- -->
|
||||||
</a></div>
|
</a></div>
|
||||||
<!-- ========= END OF TOP NAVBAR ========= -->
|
<!-- ========= END OF TOP NAVBAR ========= -->
|
||||||
|
</div>
|
||||||
|
<div class="navPadding"> </div>
|
||||||
|
<script type="text/javascript"><!--
|
||||||
|
$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
|
||||||
|
//-->
|
||||||
|
</script>
|
||||||
|
</nav>
|
||||||
|
</header>
|
||||||
<!-- ======== START OF CLASS DATA ======== -->
|
<!-- ======== START OF CLASS DATA ======== -->
|
||||||
|
<main role="main">
|
||||||
<div class="header">
|
<div class="header">
|
||||||
<div class="subTitle">org.libjpegturbo.turbojpeg</div>
|
<div class="subTitle"><span class="packageLabelInType">Package</span> <a href="package-summary.html">org.libjpegturbo.turbojpeg</a></div>
|
||||||
<h2 title="Class TJTransformer" class="title">Class TJTransformer</h2>
|
<h2 title="Class TJTransformer" class="title">Class TJTransformer</h2>
|
||||||
</div>
|
</div>
|
||||||
<div class="contentContainer">
|
<div class="contentContainer">
|
||||||
@@ -87,7 +122,7 @@
|
|||||||
<li>java.lang.Object</li>
|
<li>java.lang.Object</li>
|
||||||
<li>
|
<li>
|
||||||
<ul class="inheritance">
|
<ul class="inheritance">
|
||||||
<li><a href="../../../org/libjpegturbo/turbojpeg/TJDecompressor.html" title="class in org.libjpegturbo.turbojpeg">org.libjpegturbo.turbojpeg.TJDecompressor</a></li>
|
<li><a href="TJDecompressor.html" title="class in org.libjpegturbo.turbojpeg">org.libjpegturbo.turbojpeg.TJDecompressor</a></li>
|
||||||
<li>
|
<li>
|
||||||
<ul class="inheritance">
|
<ul class="inheritance">
|
||||||
<li>org.libjpegturbo.turbojpeg.TJTransformer</li>
|
<li>org.libjpegturbo.turbojpeg.TJTransformer</li>
|
||||||
@@ -101,12 +136,11 @@
|
|||||||
<li class="blockList">
|
<li class="blockList">
|
||||||
<dl>
|
<dl>
|
||||||
<dt>All Implemented Interfaces:</dt>
|
<dt>All Implemented Interfaces:</dt>
|
||||||
<dd>java.io.Closeable, java.lang.AutoCloseable</dd>
|
<dd><code>java.io.Closeable</code>, <code>java.lang.AutoCloseable</code></dd>
|
||||||
</dl>
|
</dl>
|
||||||
<hr>
|
<hr>
|
||||||
<br>
|
<pre>public class <span class="typeNameLabel">TJTransformer</span>
|
||||||
<pre>public class <span class="strong">TJTransformer</span>
|
extends <a href="TJDecompressor.html" title="class in org.libjpegturbo.turbojpeg">TJDecompressor</a></pre>
|
||||||
extends <a href="../../../org/libjpegturbo/turbojpeg/TJDecompressor.html" title="class in org.libjpegturbo.turbojpeg">TJDecompressor</a></pre>
|
|
||||||
<div class="block">TurboJPEG lossless transformer</div>
|
<div class="block">TurboJPEG lossless transformer</div>
|
||||||
</li>
|
</li>
|
||||||
</ul>
|
</ul>
|
||||||
@@ -114,47 +148,37 @@ extends <a href="../../../org/libjpegturbo/turbojpeg/TJDecompressor.html" title=
|
|||||||
<div class="summary">
|
<div class="summary">
|
||||||
<ul class="blockList">
|
<ul class="blockList">
|
||||||
<li class="blockList">
|
<li class="blockList">
|
||||||
<!-- =========== FIELD SUMMARY =========== -->
|
|
||||||
<ul class="blockList">
|
|
||||||
<li class="blockList"><a name="field_summary">
|
|
||||||
<!-- -->
|
|
||||||
</a>
|
|
||||||
<h3>Field Summary</h3>
|
|
||||||
<ul class="blockList">
|
|
||||||
<li class="blockList"><a name="fields_inherited_from_class_org.libjpegturbo.turbojpeg.TJDecompressor">
|
|
||||||
<!-- -->
|
|
||||||
</a>
|
|
||||||
<h3>Fields inherited from class org.libjpegturbo.turbojpeg.<a href="../../../org/libjpegturbo/turbojpeg/TJDecompressor.html" title="class in org.libjpegturbo.turbojpeg">TJDecompressor</a></h3>
|
|
||||||
<code><a href="../../../org/libjpegturbo/turbojpeg/TJDecompressor.html#handle">handle</a>, <a href="../../../org/libjpegturbo/turbojpeg/TJDecompressor.html#jpegBuf">jpegBuf</a>, <a href="../../../org/libjpegturbo/turbojpeg/TJDecompressor.html#jpegBufSize">jpegBufSize</a>, <a href="../../../org/libjpegturbo/turbojpeg/TJDecompressor.html#jpegColorspace">jpegColorspace</a>, <a href="../../../org/libjpegturbo/turbojpeg/TJDecompressor.html#jpegHeight">jpegHeight</a>, <a href="../../../org/libjpegturbo/turbojpeg/TJDecompressor.html#jpegSubsamp">jpegSubsamp</a>, <a href="../../../org/libjpegturbo/turbojpeg/TJDecompressor.html#jpegWidth">jpegWidth</a>, <a href="../../../org/libjpegturbo/turbojpeg/TJDecompressor.html#yuvImage">yuvImage</a></code></li>
|
|
||||||
</ul>
|
|
||||||
</li>
|
|
||||||
</ul>
|
|
||||||
<!-- ======== CONSTRUCTOR SUMMARY ======== -->
|
<!-- ======== CONSTRUCTOR SUMMARY ======== -->
|
||||||
|
<section>
|
||||||
<ul class="blockList">
|
<ul class="blockList">
|
||||||
<li class="blockList"><a name="constructor_summary">
|
<li class="blockList"><a id="constructor.summary">
|
||||||
<!-- -->
|
<!-- -->
|
||||||
</a>
|
</a>
|
||||||
<h3>Constructor Summary</h3>
|
<h3>Constructor Summary</h3>
|
||||||
<table class="overviewSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
|
<table class="memberSummary">
|
||||||
<caption><span>Constructors</span><span class="tabEnd"> </span></caption>
|
<caption><span>Constructors</span><span class="tabEnd"> </span></caption>
|
||||||
<tr>
|
<tr>
|
||||||
<th class="colOne" scope="col">Constructor and Description</th>
|
<th class="colFirst" scope="col">Constructor</th>
|
||||||
|
<th class="colLast" scope="col">Description</th>
|
||||||
</tr>
|
</tr>
|
||||||
<tr class="altColor">
|
<tr class="altColor">
|
||||||
<td class="colOne"><code><strong><a href="../../../org/libjpegturbo/turbojpeg/TJTransformer.html#TJTransformer()">TJTransformer</a></strong>()</code>
|
<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E()">TJTransformer</a></span>()</code></th>
|
||||||
|
<td class="colLast">
|
||||||
<div class="block">Create a TurboJPEG lossless transformer instance.</div>
|
<div class="block">Create a TurboJPEG lossless transformer instance.</div>
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr class="rowColor">
|
<tr class="rowColor">
|
||||||
<td class="colOne"><code><strong><a href="../../../org/libjpegturbo/turbojpeg/TJTransformer.html#TJTransformer(byte[])">TJTransformer</a></strong>(byte[] jpegImage)</code>
|
<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(byte%5B%5D)">TJTransformer</a></span>​(byte[] jpegImage)</code></th>
|
||||||
|
<td class="colLast">
|
||||||
<div class="block">Create a TurboJPEG lossless transformer instance and associate the JPEG
|
<div class="block">Create a TurboJPEG lossless transformer instance and associate the JPEG
|
||||||
source image stored in <code>jpegImage</code> with the newly created
|
source image stored in <code>jpegImage</code> with the newly created
|
||||||
instance.</div>
|
instance.</div>
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr class="altColor">
|
<tr class="altColor">
|
||||||
<td class="colOne"><code><strong><a href="../../../org/libjpegturbo/turbojpeg/TJTransformer.html#TJTransformer(byte[],%20int)">TJTransformer</a></strong>(byte[] jpegImage,
|
<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(byte%5B%5D,int)">TJTransformer</a></span>​(byte[] jpegImage,
|
||||||
int imageSize)</code>
|
int imageSize)</code></th>
|
||||||
|
<td class="colLast">
|
||||||
<div class="block">Create a TurboJPEG lossless transformer instance and associate the JPEG
|
<div class="block">Create a TurboJPEG lossless transformer instance and associate the JPEG
|
||||||
source image of length <code>imageSize</code> bytes stored in
|
source image of length <code>imageSize</code> bytes stored in
|
||||||
<code>jpegImage</code> with the newly created instance.</div>
|
<code>jpegImage</code> with the newly created instance.</div>
|
||||||
@@ -163,54 +187,81 @@ extends <a href="../../../org/libjpegturbo/turbojpeg/TJDecompressor.html" title=
|
|||||||
</table>
|
</table>
|
||||||
</li>
|
</li>
|
||||||
</ul>
|
</ul>
|
||||||
|
</section>
|
||||||
<!-- ========== METHOD SUMMARY =========== -->
|
<!-- ========== METHOD SUMMARY =========== -->
|
||||||
|
<section>
|
||||||
<ul class="blockList">
|
<ul class="blockList">
|
||||||
<li class="blockList"><a name="method_summary">
|
<li class="blockList"><a id="method.summary">
|
||||||
<!-- -->
|
<!-- -->
|
||||||
</a>
|
</a>
|
||||||
<h3>Method Summary</h3>
|
<h3>Method Summary</h3>
|
||||||
<table class="overviewSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
|
<table class="memberSummary">
|
||||||
<caption><span>Methods</span><span class="tabEnd"> </span></caption>
|
<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd"> </span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd"> </span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd"> </span></span><span id="t6" class="tableTab"><span><a href="javascript:show(32);">Deprecated Methods</a></span><span class="tabEnd"> </span></span></caption>
|
||||||
<tr>
|
<tr>
|
||||||
<th class="colFirst" scope="col">Modifier and Type</th>
|
<th class="colFirst" scope="col">Modifier and Type</th>
|
||||||
<th class="colLast" scope="col">Method and Description</th>
|
<th class="colSecond" scope="col">Method</th>
|
||||||
|
<th class="colLast" scope="col">Description</th>
|
||||||
</tr>
|
</tr>
|
||||||
<tr class="altColor">
|
<tr id="i0" class="altColor">
|
||||||
<td class="colFirst"><code>int[]</code></td>
|
<td class="colFirst"><code>int[]</code></td>
|
||||||
<td class="colLast"><code><strong><a href="../../../org/libjpegturbo/turbojpeg/TJTransformer.html#getTransformedSizes()">getTransformedSizes</a></strong>()</code>
|
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getTransformedSizes()">getTransformedSizes</a></span>()</code></th>
|
||||||
|
<td class="colLast">
|
||||||
<div class="block">Returns an array containing the sizes of the transformed JPEG images
|
<div class="block">Returns an array containing the sizes of the transformed JPEG images
|
||||||
(in bytes) generated by the most recent transform operation.</div>
|
(in bytes) generated by the most recent transform operation.</div>
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr class="rowColor">
|
<tr id="i1" class="rowColor">
|
||||||
<td class="colFirst"><code>void</code></td>
|
<td class="colFirst"><code>void</code></td>
|
||||||
<td class="colLast"><code><strong><a href="../../../org/libjpegturbo/turbojpeg/TJTransformer.html#transform(byte[][],%20org.libjpegturbo.turbojpeg.TJTransform[],%20int)">transform</a></strong>(byte[][] dstBufs,
|
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#transform(byte%5B%5D%5B%5D,org.libjpegturbo.turbojpeg.TJTransform%5B%5D)">transform</a></span>​(byte[][] dstBufs,
|
||||||
<a href="../../../org/libjpegturbo/turbojpeg/TJTransform.html" title="class in org.libjpegturbo.turbojpeg">TJTransform</a>[] transforms,
|
<a href="TJTransform.html" title="class in org.libjpegturbo.turbojpeg">TJTransform</a>[] transforms)</code></th>
|
||||||
int flags)</code>
|
<td class="colLast">
|
||||||
<div class="block">Losslessly transform the JPEG source image associated with this
|
<div class="block">Losslessly transform the JPEG source image associated with this
|
||||||
transformer instance into one or more JPEG images stored in the given
|
transformer instance into one or more JPEG images stored in the given
|
||||||
destination buffers.</div>
|
destination buffers.</div>
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr class="altColor">
|
<tr id="i2" class="altColor">
|
||||||
<td class="colFirst"><code><a href="../../../org/libjpegturbo/turbojpeg/TJDecompressor.html" title="class in org.libjpegturbo.turbojpeg">TJDecompressor</a>[]</code></td>
|
<td class="colFirst"><code>void</code></td>
|
||||||
<td class="colLast"><code><strong><a href="../../../org/libjpegturbo/turbojpeg/TJTransformer.html#transform(org.libjpegturbo.turbojpeg.TJTransform[],%20int)">transform</a></strong>(<a href="../../../org/libjpegturbo/turbojpeg/TJTransform.html" title="class in org.libjpegturbo.turbojpeg">TJTransform</a>[] transforms,
|
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#transform(byte%5B%5D%5B%5D,org.libjpegturbo.turbojpeg.TJTransform%5B%5D,int)">transform</a></span>​(byte[][] dstBufs,
|
||||||
int flags)</code>
|
<a href="TJTransform.html" title="class in org.libjpegturbo.turbojpeg">TJTransform</a>[] transforms,
|
||||||
|
int flags)</code></th>
|
||||||
|
<td class="colLast">
|
||||||
|
<div class="block"><span class="deprecatedLabel">Deprecated.</span>
|
||||||
|
<div class="deprecationComment">Use <a href="TJDecompressor.html#set(int,int)"><code>TJDecompressor.set()</code></a> and
|
||||||
|
<a href="#transform(byte%5B%5D%5B%5D,org.libjpegturbo.turbojpeg.TJTransform%5B%5D)"><code>transform(byte[][], TJTransform[])</code></a> instead.</div>
|
||||||
|
</div>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr id="i3" class="rowColor">
|
||||||
|
<td class="colFirst"><code><a href="TJDecompressor.html" title="class in org.libjpegturbo.turbojpeg">TJDecompressor</a>[]</code></td>
|
||||||
|
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#transform(org.libjpegturbo.turbojpeg.TJTransform%5B%5D)">transform</a></span>​(<a href="TJTransform.html" title="class in org.libjpegturbo.turbojpeg">TJTransform</a>[] transforms)</code></th>
|
||||||
|
<td class="colLast">
|
||||||
<div class="block">Losslessly transform the JPEG source image associated with this
|
<div class="block">Losslessly transform the JPEG source image associated with this
|
||||||
transformer instance and return an array of <a href="../../../org/libjpegturbo/turbojpeg/TJDecompressor.html" title="class in org.libjpegturbo.turbojpeg"><code>TJDecompressor</code></a>
|
transformer instance and return an array of <a href="TJDecompressor.html" title="class in org.libjpegturbo.turbojpeg"><code>TJDecompressor</code></a>
|
||||||
instances, each of which has a transformed JPEG image associated with it.</div>
|
instances, each of which has a transformed JPEG image associated with it.</div>
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
|
<tr id="i4" class="altColor">
|
||||||
|
<td class="colFirst"><code><a href="TJDecompressor.html" title="class in org.libjpegturbo.turbojpeg">TJDecompressor</a>[]</code></td>
|
||||||
|
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#transform(org.libjpegturbo.turbojpeg.TJTransform%5B%5D,int)">transform</a></span>​(<a href="TJTransform.html" title="class in org.libjpegturbo.turbojpeg">TJTransform</a>[] transforms,
|
||||||
|
int flags)</code></th>
|
||||||
|
<td class="colLast">
|
||||||
|
<div class="block"><span class="deprecatedLabel">Deprecated.</span>
|
||||||
|
<div class="deprecationComment">Use <a href="TJDecompressor.html#set(int,int)"><code>TJDecompressor.set()</code></a> and
|
||||||
|
<a href="#transform(org.libjpegturbo.turbojpeg.TJTransform%5B%5D)"><code>transform(TJTransform[])</code></a> instead.</div>
|
||||||
|
</div>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
</table>
|
</table>
|
||||||
<ul class="blockList">
|
<ul class="blockList">
|
||||||
<li class="blockList"><a name="methods_inherited_from_class_org.libjpegturbo.turbojpeg.TJDecompressor">
|
<li class="blockList"><a id="methods.inherited.from.class.org.libjpegturbo.turbojpeg.TJDecompressor">
|
||||||
<!-- -->
|
<!-- -->
|
||||||
</a>
|
</a>
|
||||||
<h3>Methods inherited from class org.libjpegturbo.turbojpeg.<a href="../../../org/libjpegturbo/turbojpeg/TJDecompressor.html" title="class in org.libjpegturbo.turbojpeg">TJDecompressor</a></h3>
|
<h3>Methods inherited from class org.libjpegturbo.turbojpeg.<a href="TJDecompressor.html" title="class in org.libjpegturbo.turbojpeg">TJDecompressor</a></h3>
|
||||||
<code><a href="../../../org/libjpegturbo/turbojpeg/TJDecompressor.html#close()">close</a>, <a href="../../../org/libjpegturbo/turbojpeg/TJDecompressor.html#decompress(java.awt.image.BufferedImage,%20int)">decompress</a>, <a href="../../../org/libjpegturbo/turbojpeg/TJDecompressor.html#decompress(byte[],%20int,%20int,%20int,%20int,%20int)">decompress</a>, <a href="../../../org/libjpegturbo/turbojpeg/TJDecompressor.html#decompress(byte[],%20int,%20int,%20int,%20int,%20int,%20int,%20int)">decompress</a>, <a href="../../../org/libjpegturbo/turbojpeg/TJDecompressor.html#decompress(int[],%20int,%20int,%20int,%20int,%20int,%20int,%20int)">decompress</a>, <a href="../../../org/libjpegturbo/turbojpeg/TJDecompressor.html#decompress(int,%20int,%20int,%20int)">decompress</a>, <a href="../../../org/libjpegturbo/turbojpeg/TJDecompressor.html#decompress(int,%20int,%20int,%20int,%20int)">decompress</a>, <a href="../../../org/libjpegturbo/turbojpeg/TJDecompressor.html#decompressToYUV(byte[],%20int)">decompressToYUV</a>, <a href="../../../org/libjpegturbo/turbojpeg/TJDecompressor.html#decompressToYUV(int)">decompressToYUV</a>, <a href="../../../org/libjpegturbo/turbojpeg/TJDecompressor.html#decompressToYUV(int,%20int[],%20int,%20int)">decompressToYUV</a>, <a href="../../../org/libjpegturbo/turbojpeg/TJDecompressor.html#decompressToYUV(int,%20int,%20int,%20int)">decompressToYUV</a>, <a href="../../../org/libjpegturbo/turbojpeg/TJDecompressor.html#decompressToYUV(org.libjpegturbo.turbojpeg.YUVImage,%20int)">decompressToYUV</a>, <a href="../../../org/libjpegturbo/turbojpeg/TJDecompressor.html#finalize()">finalize</a>, <a href="../../../org/libjpegturbo/turbojpeg/TJDecompressor.html#getColorspace()">getColorspace</a>, <a href="../../../org/libjpegturbo/turbojpeg/TJDecompressor.html#getHeight()">getHeight</a>, <a href="../../../org/libjpegturbo/turbojpeg/TJDecompressor.html#getJPEGBuf()">getJPEGBuf</a>, <a href="../../../org/libjpegturbo/turbojpeg/TJDecompressor.html#getJPEGSize()">getJPEGSize</a>, <a href="../../../org/libjpegturbo/turbojpeg/TJDecompressor.html#getScaledHeight(int,%20int)">getScaledHeight</a>, <a href="../../../org/libjpegturbo/turbojpeg/TJDecompressor.html#getScaledWidth(int,%20int)">getScaledWidth</a>, <a href="../../../org/libjpegturbo/turbojpeg/TJDecompressor.html#getSubsamp()">getSubsamp</a>, <a href="../../../org/libjpegturbo/turbojpeg/TJDecompressor.html#getWidth()">getWidth</a>, <a href="../../../org/libjpegturbo/turbojpeg/TJDecompressor.html#setJPEGImage(byte[],%20int)">setJPEGImage</a>, <a href="../../../org/libjpegturbo/turbojpeg/TJDecompressor.html#setSourceImage(byte[],%20int)">setSourceImage</a>, <a href="../../../org/libjpegturbo/turbojpeg/TJDecompressor.html#setSourceImage(org.libjpegturbo.turbojpeg.YUVImage)">setSourceImage</a></code></li>
|
<code><a href="TJDecompressor.html#close()">close</a>, <a href="TJDecompressor.html#decompress(byte%5B%5D,int,int,int,int,int,int,int)">decompress</a>, <a href="TJDecompressor.html#decompress(int%5B%5D,int,int,int,int,int,int,int)">decompress</a>, <a href="TJDecompressor.html#decompress(int,int,int,int)">decompress</a>, <a href="TJDecompressor.html#decompress(int,int,int,int,int)">decompress</a>, <a href="TJDecompressor.html#decompress(java.awt.image.BufferedImage,int)">decompress</a>, <a href="TJDecompressor.html#decompress12(int,int)">decompress12</a>, <a href="TJDecompressor.html#decompress12(short%5B%5D,int,int,int,int)">decompress12</a>, <a href="TJDecompressor.html#decompress16(int,int)">decompress16</a>, <a href="TJDecompressor.html#decompress16(short%5B%5D,int,int,int,int)">decompress16</a>, <a href="TJDecompressor.html#decompress8(byte%5B%5D,int,int,int,int)">decompress8</a>, <a href="TJDecompressor.html#decompress8(int)">decompress8</a>, <a href="TJDecompressor.html#decompress8(int%5B%5D,int,int,int,int)">decompress8</a>, <a href="TJDecompressor.html#decompress8(int,int)">decompress8</a>, <a href="TJDecompressor.html#decompress8(java.awt.image.BufferedImage)">decompress8</a>, <a href="TJDecompressor.html#decompressToYUV(int)">decompressToYUV</a>, <a href="TJDecompressor.html#decompressToYUV(int%5B%5D)">decompressToYUV</a>, <a href="TJDecompressor.html#decompressToYUV(int,int%5B%5D,int,int)">decompressToYUV</a>, <a href="TJDecompressor.html#decompressToYUV(int,int,int,int)">decompressToYUV</a>, <a href="TJDecompressor.html#decompressToYUV(org.libjpegturbo.turbojpeg.YUVImage)">decompressToYUV</a>, <a href="TJDecompressor.html#decompressToYUV(org.libjpegturbo.turbojpeg.YUVImage,int)">decompressToYUV</a>, <a href="TJDecompressor.html#finalize()">finalize</a>, <a href="TJDecompressor.html#get(int)">get</a>, <a href="TJDecompressor.html#getColorspace()">getColorspace</a>, <a href="TJDecompressor.html#getHeight()">getHeight</a>, <a href="TJDecompressor.html#getJPEGBuf()">getJPEGBuf</a>, <a href="TJDecompressor.html#getJPEGSize()">getJPEGSize</a>, <a href="TJDecompressor.html#getScaledHeight(int,int)">getScaledHeight</a>, <a href="TJDecompressor.html#getScaledWidth(int,int)">getScaledWidth</a>, <a href="TJDecompressor.html#getSubsamp()">getSubsamp</a>, <a href="TJDecompressor.html#getWidth()">getWidth</a>, <a href="TJDecompressor.html#set(int,int)">set</a>, <a href="TJDecompressor.html#setCroppingRegion(java.awt.Rectangle)">setCroppingRegion</a>, <a href="TJDecompressor.html#setScalingFactor(org.libjpegturbo.turbojpeg.TJScalingFactor)">setScalingFactor</a>, <a href="TJDecompressor.html#setSourceImage(byte%5B%5D,int)">setSourceImage</a>, <a href="TJDecompressor.html#setSourceImage(org.libjpegturbo.turbojpeg.YUVImage)">setSourceImage</a></code></li>
|
||||||
</ul>
|
</ul>
|
||||||
<ul class="blockList">
|
<ul class="blockList">
|
||||||
<li class="blockList"><a name="methods_inherited_from_class_java.lang.Object">
|
<li class="blockList"><a id="methods.inherited.from.class.java.lang.Object">
|
||||||
<!-- -->
|
<!-- -->
|
||||||
</a>
|
</a>
|
||||||
<h3>Methods inherited from class java.lang.Object</h3>
|
<h3>Methods inherited from class java.lang.Object</h3>
|
||||||
@@ -218,6 +269,7 @@ extends <a href="../../../org/libjpegturbo/turbojpeg/TJDecompressor.html" title=
|
|||||||
</ul>
|
</ul>
|
||||||
</li>
|
</li>
|
||||||
</ul>
|
</ul>
|
||||||
|
</section>
|
||||||
</li>
|
</li>
|
||||||
</ul>
|
</ul>
|
||||||
</div>
|
</div>
|
||||||
@@ -225,78 +277,89 @@ extends <a href="../../../org/libjpegturbo/turbojpeg/TJDecompressor.html" title=
|
|||||||
<ul class="blockList">
|
<ul class="blockList">
|
||||||
<li class="blockList">
|
<li class="blockList">
|
||||||
<!-- ========= CONSTRUCTOR DETAIL ======== -->
|
<!-- ========= CONSTRUCTOR DETAIL ======== -->
|
||||||
|
<section>
|
||||||
<ul class="blockList">
|
<ul class="blockList">
|
||||||
<li class="blockList"><a name="constructor_detail">
|
<li class="blockList"><a id="constructor.detail">
|
||||||
<!-- -->
|
<!-- -->
|
||||||
</a>
|
</a>
|
||||||
<h3>Constructor Detail</h3>
|
<h3>Constructor Detail</h3>
|
||||||
<a name="TJTransformer()">
|
<a id="<init>()">
|
||||||
<!-- -->
|
<!-- -->
|
||||||
</a>
|
</a>
|
||||||
<ul class="blockList">
|
<ul class="blockList">
|
||||||
<li class="blockList">
|
<li class="blockList">
|
||||||
<h4>TJTransformer</h4>
|
<h4>TJTransformer</h4>
|
||||||
<pre>public TJTransformer()
|
<pre>public TJTransformer()
|
||||||
throws <a href="../../../org/libjpegturbo/turbojpeg/TJException.html" title="class in org.libjpegturbo.turbojpeg">TJException</a></pre>
|
throws <a href="TJException.html" title="class in org.libjpegturbo.turbojpeg">TJException</a></pre>
|
||||||
<div class="block">Create a TurboJPEG lossless transformer instance.</div>
|
<div class="block">Create a TurboJPEG lossless transformer instance.</div>
|
||||||
<dl><dt><span class="strong">Throws:</span></dt>
|
<dl>
|
||||||
<dd><code><a href="../../../org/libjpegturbo/turbojpeg/TJException.html" title="class in org.libjpegturbo.turbojpeg">TJException</a></code></dd></dl>
|
<dt><span class="throwsLabel">Throws:</span></dt>
|
||||||
|
<dd><code><a href="TJException.html" title="class in org.libjpegturbo.turbojpeg">TJException</a></code></dd>
|
||||||
|
</dl>
|
||||||
</li>
|
</li>
|
||||||
</ul>
|
</ul>
|
||||||
<a name="TJTransformer(byte[])">
|
<a id="<init>(byte[])">
|
||||||
<!-- -->
|
<!-- -->
|
||||||
</a>
|
</a>
|
||||||
<ul class="blockList">
|
<ul class="blockList">
|
||||||
<li class="blockList">
|
<li class="blockList">
|
||||||
<h4>TJTransformer</h4>
|
<h4>TJTransformer</h4>
|
||||||
<pre>public TJTransformer(byte[] jpegImage)
|
<pre>public TJTransformer​(byte[] jpegImage)
|
||||||
throws <a href="../../../org/libjpegturbo/turbojpeg/TJException.html" title="class in org.libjpegturbo.turbojpeg">TJException</a></pre>
|
throws <a href="TJException.html" title="class in org.libjpegturbo.turbojpeg">TJException</a></pre>
|
||||||
<div class="block">Create a TurboJPEG lossless transformer instance and associate the JPEG
|
<div class="block">Create a TurboJPEG lossless transformer instance and associate the JPEG
|
||||||
source image stored in <code>jpegImage</code> with the newly created
|
source image stored in <code>jpegImage</code> with the newly created
|
||||||
instance.</div>
|
instance.</div>
|
||||||
<dl><dt><span class="strong">Parameters:</span></dt><dd><code>jpegImage</code> - buffer containing the JPEG source image to transform.
|
<dl>
|
||||||
|
<dt><span class="paramLabel">Parameters:</span></dt>
|
||||||
|
<dd><code>jpegImage</code> - buffer containing the JPEG source image to transform.
|
||||||
(The size of the JPEG image is assumed to be the length of the array.)
|
(The size of the JPEG image is assumed to be the length of the array.)
|
||||||
This buffer is not modified.</dd>
|
This buffer is not modified.</dd>
|
||||||
<dt><span class="strong">Throws:</span></dt>
|
<dt><span class="throwsLabel">Throws:</span></dt>
|
||||||
<dd><code><a href="../../../org/libjpegturbo/turbojpeg/TJException.html" title="class in org.libjpegturbo.turbojpeg">TJException</a></code></dd></dl>
|
<dd><code><a href="TJException.html" title="class in org.libjpegturbo.turbojpeg">TJException</a></code></dd>
|
||||||
|
</dl>
|
||||||
</li>
|
</li>
|
||||||
</ul>
|
</ul>
|
||||||
<a name="TJTransformer(byte[], int)">
|
<a id="<init>(byte[],int)">
|
||||||
<!-- -->
|
<!-- -->
|
||||||
</a>
|
</a>
|
||||||
<ul class="blockListLast">
|
<ul class="blockListLast">
|
||||||
<li class="blockList">
|
<li class="blockList">
|
||||||
<h4>TJTransformer</h4>
|
<h4>TJTransformer</h4>
|
||||||
<pre>public TJTransformer(byte[] jpegImage,
|
<pre>public TJTransformer​(byte[] jpegImage,
|
||||||
int imageSize)
|
int imageSize)
|
||||||
throws <a href="../../../org/libjpegturbo/turbojpeg/TJException.html" title="class in org.libjpegturbo.turbojpeg">TJException</a></pre>
|
throws <a href="TJException.html" title="class in org.libjpegturbo.turbojpeg">TJException</a></pre>
|
||||||
<div class="block">Create a TurboJPEG lossless transformer instance and associate the JPEG
|
<div class="block">Create a TurboJPEG lossless transformer instance and associate the JPEG
|
||||||
source image of length <code>imageSize</code> bytes stored in
|
source image of length <code>imageSize</code> bytes stored in
|
||||||
<code>jpegImage</code> with the newly created instance.</div>
|
<code>jpegImage</code> with the newly created instance.</div>
|
||||||
<dl><dt><span class="strong">Parameters:</span></dt><dd><code>jpegImage</code> - buffer containing the JPEG source image to transform.
|
<dl>
|
||||||
This buffer is not modified.</dd><dd><code>imageSize</code> - size of the JPEG source image (in bytes)</dd>
|
<dt><span class="paramLabel">Parameters:</span></dt>
|
||||||
<dt><span class="strong">Throws:</span></dt>
|
<dd><code>jpegImage</code> - buffer containing the JPEG source image to transform.
|
||||||
<dd><code><a href="../../../org/libjpegturbo/turbojpeg/TJException.html" title="class in org.libjpegturbo.turbojpeg">TJException</a></code></dd></dl>
|
This buffer is not modified.</dd>
|
||||||
|
<dd><code>imageSize</code> - size of the JPEG source image (in bytes)</dd>
|
||||||
|
<dt><span class="throwsLabel">Throws:</span></dt>
|
||||||
|
<dd><code><a href="TJException.html" title="class in org.libjpegturbo.turbojpeg">TJException</a></code></dd>
|
||||||
|
</dl>
|
||||||
</li>
|
</li>
|
||||||
</ul>
|
</ul>
|
||||||
</li>
|
</li>
|
||||||
</ul>
|
</ul>
|
||||||
|
</section>
|
||||||
<!-- ============ METHOD DETAIL ========== -->
|
<!-- ============ METHOD DETAIL ========== -->
|
||||||
|
<section>
|
||||||
<ul class="blockList">
|
<ul class="blockList">
|
||||||
<li class="blockList"><a name="method_detail">
|
<li class="blockList"><a id="method.detail">
|
||||||
<!-- -->
|
<!-- -->
|
||||||
</a>
|
</a>
|
||||||
<h3>Method Detail</h3>
|
<h3>Method Detail</h3>
|
||||||
<a name="transform(byte[][], org.libjpegturbo.turbojpeg.TJTransform[], int)">
|
<a id="transform(byte[][],org.libjpegturbo.turbojpeg.TJTransform[])">
|
||||||
<!-- -->
|
<!-- -->
|
||||||
</a>
|
</a>
|
||||||
<ul class="blockList">
|
<ul class="blockList">
|
||||||
<li class="blockList">
|
<li class="blockList">
|
||||||
<h4>transform</h4>
|
<h4>transform</h4>
|
||||||
<pre>public void transform(byte[][] dstBufs,
|
<pre class="methodSignature">public void transform​(byte[][] dstBufs,
|
||||||
<a href="../../../org/libjpegturbo/turbojpeg/TJTransform.html" title="class in org.libjpegturbo.turbojpeg">TJTransform</a>[] transforms,
|
<a href="TJTransform.html" title="class in org.libjpegturbo.turbojpeg">TJTransform</a>[] transforms)
|
||||||
int flags)
|
throws <a href="TJException.html" title="class in org.libjpegturbo.turbojpeg">TJException</a></pre>
|
||||||
throws <a href="../../../org/libjpegturbo/turbojpeg/TJException.html" title="class in org.libjpegturbo.turbojpeg">TJException</a></pre>
|
|
||||||
<div class="block">Losslessly transform the JPEG source image associated with this
|
<div class="block">Losslessly transform the JPEG source image associated with this
|
||||||
transformer instance into one or more JPEG images stored in the given
|
transformer instance into one or more JPEG images stored in the given
|
||||||
destination buffers. Lossless transforms work by moving the raw
|
destination buffers. Lossless transforms work by moving the raw
|
||||||
@@ -309,69 +372,124 @@ extends <a href="../../../org/libjpegturbo/turbojpeg/TJDecompressor.html" title=
|
|||||||
provides a means of generating multiple transformed images from the same
|
provides a means of generating multiple transformed images from the same
|
||||||
source or of applying multiple transformations simultaneously, in order to
|
source or of applying multiple transformations simultaneously, in order to
|
||||||
eliminate the need to read the source coefficients multiple times.</div>
|
eliminate the need to read the source coefficients multiple times.</div>
|
||||||
<dl><dt><span class="strong">Parameters:</span></dt><dd><code>dstBufs</code> - an array of JPEG destination buffers.
|
<dl>
|
||||||
|
<dt><span class="paramLabel">Parameters:</span></dt>
|
||||||
|
<dd><code>dstBufs</code> - an array of JPEG destination buffers.
|
||||||
<code>dstbufs[i]</code> will receive a JPEG image that has been
|
<code>dstbufs[i]</code> will receive a JPEG image that has been
|
||||||
transformed using the parameters in <code>transforms[i]</code>. Use
|
transformed using the parameters in <code>transforms[i]</code>. Use
|
||||||
<a href="../../../org/libjpegturbo/turbojpeg/TJ.html#bufSize(int,%20int,%20int)"><code>TJ.bufSize(int, int, int)</code></a> to determine the maximum size for each buffer based on
|
<a href="TJ.html#bufSize(int,int,int)"><code>TJ.bufSize()</code></a> to determine the maximum size for each
|
||||||
the transformed or cropped width and height and the level of subsampling
|
buffer based on the transformed or cropped width and height and the level
|
||||||
used in the source image.</dd><dd><code>transforms</code> - an array of <a href="../../../org/libjpegturbo/turbojpeg/TJTransform.html" title="class in org.libjpegturbo.turbojpeg"><code>TJTransform</code></a> instances, each of
|
of subsampling used in the source image.</dd>
|
||||||
|
<dd><code>transforms</code> - an array of <a href="TJTransform.html" title="class in org.libjpegturbo.turbojpeg"><code>TJTransform</code></a> instances, each of
|
||||||
which specifies the transform parameters and/or cropping region for the
|
which specifies the transform parameters and/or cropping region for the
|
||||||
corresponding transformed JPEG image</dd><dd><code>flags</code> - the bitwise OR of one or more of
|
corresponding transformed JPEG image</dd>
|
||||||
<a href="../../../org/libjpegturbo/turbojpeg/TJ.html#FLAG_BOTTOMUP"><code>TJ.FLAG_*</code></a></dd>
|
<dt><span class="throwsLabel">Throws:</span></dt>
|
||||||
<dt><span class="strong">Throws:</span></dt>
|
<dd><code><a href="TJException.html" title="class in org.libjpegturbo.turbojpeg">TJException</a></code></dd>
|
||||||
<dd><code><a href="../../../org/libjpegturbo/turbojpeg/TJException.html" title="class in org.libjpegturbo.turbojpeg">TJException</a></code></dd></dl>
|
</dl>
|
||||||
</li>
|
</li>
|
||||||
</ul>
|
</ul>
|
||||||
<a name="transform(org.libjpegturbo.turbojpeg.TJTransform[], int)">
|
<a id="transform(byte[][],org.libjpegturbo.turbojpeg.TJTransform[],int)">
|
||||||
<!-- -->
|
<!-- -->
|
||||||
</a>
|
</a>
|
||||||
<ul class="blockList">
|
<ul class="blockList">
|
||||||
<li class="blockList">
|
<li class="blockList">
|
||||||
<h4>transform</h4>
|
<h4>transform</h4>
|
||||||
<pre>public <a href="../../../org/libjpegturbo/turbojpeg/TJDecompressor.html" title="class in org.libjpegturbo.turbojpeg">TJDecompressor</a>[] transform(<a href="../../../org/libjpegturbo/turbojpeg/TJTransform.html" title="class in org.libjpegturbo.turbojpeg">TJTransform</a>[] transforms,
|
<pre class="methodSignature">@Deprecated
|
||||||
int flags)
|
public void transform​(byte[][] dstBufs,
|
||||||
throws <a href="../../../org/libjpegturbo/turbojpeg/TJException.html" title="class in org.libjpegturbo.turbojpeg">TJException</a></pre>
|
<a href="TJTransform.html" title="class in org.libjpegturbo.turbojpeg">TJTransform</a>[] transforms,
|
||||||
<div class="block">Losslessly transform the JPEG source image associated with this
|
int flags)
|
||||||
transformer instance and return an array of <a href="../../../org/libjpegturbo/turbojpeg/TJDecompressor.html" title="class in org.libjpegturbo.turbojpeg"><code>TJDecompressor</code></a>
|
throws <a href="TJException.html" title="class in org.libjpegturbo.turbojpeg">TJException</a></pre>
|
||||||
instances, each of which has a transformed JPEG image associated with it.</div>
|
<div class="deprecationBlock"><span class="deprecatedLabel">Deprecated.</span>
|
||||||
<dl><dt><span class="strong">Parameters:</span></dt><dd><code>transforms</code> - an array of <a href="../../../org/libjpegturbo/turbojpeg/TJTransform.html" title="class in org.libjpegturbo.turbojpeg"><code>TJTransform</code></a> instances, each of
|
<div class="deprecationComment">Use <a href="TJDecompressor.html#set(int,int)"><code>TJDecompressor.set()</code></a> and
|
||||||
which specifies the transform parameters and/or cropping region for the
|
<a href="#transform(byte%5B%5D%5B%5D,org.libjpegturbo.turbojpeg.TJTransform%5B%5D)"><code>transform(byte[][], TJTransform[])</code></a> instead.</div>
|
||||||
corresponding transformed JPEG image</dd><dd><code>flags</code> - the bitwise OR of one or more of
|
</div>
|
||||||
<a href="../../../org/libjpegturbo/turbojpeg/TJ.html#FLAG_BOTTOMUP"><code>TJ.FLAG_*</code></a></dd>
|
<dl>
|
||||||
<dt><span class="strong">Returns:</span></dt><dd>an array of <a href="../../../org/libjpegturbo/turbojpeg/TJDecompressor.html" title="class in org.libjpegturbo.turbojpeg"><code>TJDecompressor</code></a> instances, each of
|
<dt><span class="throwsLabel">Throws:</span></dt>
|
||||||
which has a transformed JPEG image associated with it.</dd>
|
<dd><code><a href="TJException.html" title="class in org.libjpegturbo.turbojpeg">TJException</a></code></dd>
|
||||||
<dt><span class="strong">Throws:</span></dt>
|
</dl>
|
||||||
<dd><code><a href="../../../org/libjpegturbo/turbojpeg/TJException.html" title="class in org.libjpegturbo.turbojpeg">TJException</a></code></dd></dl>
|
|
||||||
</li>
|
</li>
|
||||||
</ul>
|
</ul>
|
||||||
<a name="getTransformedSizes()">
|
<a id="transform(org.libjpegturbo.turbojpeg.TJTransform[])">
|
||||||
|
<!-- -->
|
||||||
|
</a>
|
||||||
|
<ul class="blockList">
|
||||||
|
<li class="blockList">
|
||||||
|
<h4>transform</h4>
|
||||||
|
<pre class="methodSignature">public <a href="TJDecompressor.html" title="class in org.libjpegturbo.turbojpeg">TJDecompressor</a>[] transform​(<a href="TJTransform.html" title="class in org.libjpegturbo.turbojpeg">TJTransform</a>[] transforms)
|
||||||
|
throws <a href="TJException.html" title="class in org.libjpegturbo.turbojpeg">TJException</a></pre>
|
||||||
|
<div class="block">Losslessly transform the JPEG source image associated with this
|
||||||
|
transformer instance and return an array of <a href="TJDecompressor.html" title="class in org.libjpegturbo.turbojpeg"><code>TJDecompressor</code></a>
|
||||||
|
instances, each of which has a transformed JPEG image associated with it.</div>
|
||||||
|
<dl>
|
||||||
|
<dt><span class="paramLabel">Parameters:</span></dt>
|
||||||
|
<dd><code>transforms</code> - an array of <a href="TJTransform.html" title="class in org.libjpegturbo.turbojpeg"><code>TJTransform</code></a> instances, each of
|
||||||
|
which specifies the transform parameters and/or cropping region for the
|
||||||
|
corresponding transformed JPEG image</dd>
|
||||||
|
<dt><span class="returnLabel">Returns:</span></dt>
|
||||||
|
<dd>an array of <a href="TJDecompressor.html" title="class in org.libjpegturbo.turbojpeg"><code>TJDecompressor</code></a> instances, each of
|
||||||
|
which has a transformed JPEG image associated with it.</dd>
|
||||||
|
<dt><span class="throwsLabel">Throws:</span></dt>
|
||||||
|
<dd><code><a href="TJException.html" title="class in org.libjpegturbo.turbojpeg">TJException</a></code></dd>
|
||||||
|
</dl>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
<a id="transform(org.libjpegturbo.turbojpeg.TJTransform[],int)">
|
||||||
|
<!-- -->
|
||||||
|
</a>
|
||||||
|
<ul class="blockList">
|
||||||
|
<li class="blockList">
|
||||||
|
<h4>transform</h4>
|
||||||
|
<pre class="methodSignature">@Deprecated
|
||||||
|
public <a href="TJDecompressor.html" title="class in org.libjpegturbo.turbojpeg">TJDecompressor</a>[] transform​(<a href="TJTransform.html" title="class in org.libjpegturbo.turbojpeg">TJTransform</a>[] transforms,
|
||||||
|
int flags)
|
||||||
|
throws <a href="TJException.html" title="class in org.libjpegturbo.turbojpeg">TJException</a></pre>
|
||||||
|
<div class="deprecationBlock"><span class="deprecatedLabel">Deprecated.</span>
|
||||||
|
<div class="deprecationComment">Use <a href="TJDecompressor.html#set(int,int)"><code>TJDecompressor.set()</code></a> and
|
||||||
|
<a href="#transform(org.libjpegturbo.turbojpeg.TJTransform%5B%5D)"><code>transform(TJTransform[])</code></a> instead.</div>
|
||||||
|
</div>
|
||||||
|
<dl>
|
||||||
|
<dt><span class="throwsLabel">Throws:</span></dt>
|
||||||
|
<dd><code><a href="TJException.html" title="class in org.libjpegturbo.turbojpeg">TJException</a></code></dd>
|
||||||
|
</dl>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
<a id="getTransformedSizes()">
|
||||||
<!-- -->
|
<!-- -->
|
||||||
</a>
|
</a>
|
||||||
<ul class="blockListLast">
|
<ul class="blockListLast">
|
||||||
<li class="blockList">
|
<li class="blockList">
|
||||||
<h4>getTransformedSizes</h4>
|
<h4>getTransformedSizes</h4>
|
||||||
<pre>public int[] getTransformedSizes()</pre>
|
<pre class="methodSignature">public int[] getTransformedSizes()</pre>
|
||||||
<div class="block">Returns an array containing the sizes of the transformed JPEG images
|
<div class="block">Returns an array containing the sizes of the transformed JPEG images
|
||||||
(in bytes) generated by the most recent transform operation.</div>
|
(in bytes) generated by the most recent transform operation.</div>
|
||||||
<dl><dt><span class="strong">Returns:</span></dt><dd>an array containing the sizes of the transformed JPEG images
|
<dl>
|
||||||
(in bytes) generated by the most recent transform operation.</dd></dl>
|
<dt><span class="returnLabel">Returns:</span></dt>
|
||||||
|
<dd>an array containing the sizes of the transformed JPEG images
|
||||||
|
(in bytes) generated by the most recent transform operation.</dd>
|
||||||
|
</dl>
|
||||||
</li>
|
</li>
|
||||||
</ul>
|
</ul>
|
||||||
</li>
|
</li>
|
||||||
</ul>
|
</ul>
|
||||||
|
</section>
|
||||||
</li>
|
</li>
|
||||||
</ul>
|
</ul>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
</main>
|
||||||
<!-- ========= END OF CLASS DATA ========= -->
|
<!-- ========= END OF CLASS DATA ========= -->
|
||||||
|
<footer role="contentinfo">
|
||||||
|
<nav role="navigation">
|
||||||
<!-- ======= START OF BOTTOM NAVBAR ====== -->
|
<!-- ======= START OF BOTTOM NAVBAR ====== -->
|
||||||
<div class="bottomNav"><a name="navbar_bottom">
|
<div class="bottomNav"><a id="navbar.bottom">
|
||||||
<!-- -->
|
<!-- -->
|
||||||
</a><a href="#skip-navbar_bottom" title="Skip navigation links"></a><a name="navbar_bottom_firstrow">
|
</a>
|
||||||
|
<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
|
||||||
|
<a id="navbar.bottom.firstrow">
|
||||||
<!-- -->
|
<!-- -->
|
||||||
</a>
|
</a>
|
||||||
<ul class="navList" title="Navigation">
|
<ul class="navList" title="Navigation">
|
||||||
<li><a href="../../../org/libjpegturbo/turbojpeg/package-summary.html">Package</a></li>
|
<li><a href="package-summary.html">Package</a></li>
|
||||||
<li class="navBarCell1Rev">Class</li>
|
<li class="navBarCell1Rev">Class</li>
|
||||||
<li><a href="package-tree.html">Tree</a></li>
|
<li><a href="package-tree.html">Tree</a></li>
|
||||||
<li><a href="../../../deprecated-list.html">Deprecated</a></li>
|
<li><a href="../../../deprecated-list.html">Deprecated</a></li>
|
||||||
@@ -380,16 +498,8 @@ extends <a href="../../../org/libjpegturbo/turbojpeg/TJDecompressor.html" title=
|
|||||||
</ul>
|
</ul>
|
||||||
</div>
|
</div>
|
||||||
<div class="subNav">
|
<div class="subNav">
|
||||||
<ul class="navList">
|
|
||||||
<li><a href="../../../org/libjpegturbo/turbojpeg/TJTransform.html" title="class in org.libjpegturbo.turbojpeg"><span class="strong">Prev Class</span></a></li>
|
|
||||||
<li><a href="../../../org/libjpegturbo/turbojpeg/YUVImage.html" title="class in org.libjpegturbo.turbojpeg"><span class="strong">Next Class</span></a></li>
|
|
||||||
</ul>
|
|
||||||
<ul class="navList">
|
|
||||||
<li><a href="../../../index.html?org/libjpegturbo/turbojpeg/TJTransformer.html" target="_top">Frames</a></li>
|
|
||||||
<li><a href="TJTransformer.html" target="_top">No Frames</a></li>
|
|
||||||
</ul>
|
|
||||||
<ul class="navList" id="allclasses_navbar_bottom">
|
<ul class="navList" id="allclasses_navbar_bottom">
|
||||||
<li><a href="../../../allclasses-noframe.html">All Classes</a></li>
|
<li><a href="../../../allclasses.html">All Classes</a></li>
|
||||||
</ul>
|
</ul>
|
||||||
<div>
|
<div>
|
||||||
<script type="text/javascript"><!--
|
<script type="text/javascript"><!--
|
||||||
@@ -402,25 +512,30 @@ extends <a href="../../../org/libjpegturbo/turbojpeg/TJDecompressor.html" title=
|
|||||||
}
|
}
|
||||||
//-->
|
//-->
|
||||||
</script>
|
</script>
|
||||||
|
<noscript>
|
||||||
|
<div>JavaScript is disabled on your browser.</div>
|
||||||
|
</noscript>
|
||||||
</div>
|
</div>
|
||||||
<div>
|
<div>
|
||||||
<ul class="subNavList">
|
<ul class="subNavList">
|
||||||
<li>Summary: </li>
|
<li>Summary: </li>
|
||||||
<li>Nested | </li>
|
<li>Nested | </li>
|
||||||
<li><a href="#fields_inherited_from_class_org.libjpegturbo.turbojpeg.TJDecompressor">Field</a> | </li>
|
<li>Field | </li>
|
||||||
<li><a href="#constructor_summary">Constr</a> | </li>
|
<li><a href="#constructor.summary">Constr</a> | </li>
|
||||||
<li><a href="#method_summary">Method</a></li>
|
<li><a href="#method.summary">Method</a></li>
|
||||||
</ul>
|
</ul>
|
||||||
<ul class="subNavList">
|
<ul class="subNavList">
|
||||||
<li>Detail: </li>
|
<li>Detail: </li>
|
||||||
<li>Field | </li>
|
<li>Field | </li>
|
||||||
<li><a href="#constructor_detail">Constr</a> | </li>
|
<li><a href="#constructor.detail">Constr</a> | </li>
|
||||||
<li><a href="#method_detail">Method</a></li>
|
<li><a href="#method.detail">Method</a></li>
|
||||||
</ul>
|
</ul>
|
||||||
</div>
|
</div>
|
||||||
<a name="skip-navbar_bottom">
|
<a id="skip.navbar.bottom">
|
||||||
<!-- -->
|
<!-- -->
|
||||||
</a></div>
|
</a></div>
|
||||||
<!-- ======== END OF BOTTOM NAVBAR ======= -->
|
<!-- ======== END OF BOTTOM NAVBAR ======= -->
|
||||||
|
</nav>
|
||||||
|
</footer>
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
|
|||||||
File diff suppressed because it is too large
Load Diff
@@ -1,31 +0,0 @@
|
|||||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
|
|
||||||
<!-- NewPage -->
|
|
||||||
<html lang="en">
|
|
||||||
<head>
|
|
||||||
<title>org.libjpegturbo.turbojpeg</title>
|
|
||||||
<link rel="stylesheet" type="text/css" href="../../../stylesheet.css" title="Style">
|
|
||||||
</head>
|
|
||||||
<body>
|
|
||||||
<h1 class="bar"><a href="../../../org/libjpegturbo/turbojpeg/package-summary.html" target="classFrame">org.libjpegturbo.turbojpeg</a></h1>
|
|
||||||
<div class="indexContainer">
|
|
||||||
<h2 title="Interfaces">Interfaces</h2>
|
|
||||||
<ul title="Interfaces">
|
|
||||||
<li><a href="TJCustomFilter.html" title="interface in org.libjpegturbo.turbojpeg" target="classFrame"><i>TJCustomFilter</i></a></li>
|
|
||||||
</ul>
|
|
||||||
<h2 title="Classes">Classes</h2>
|
|
||||||
<ul title="Classes">
|
|
||||||
<li><a href="TJ.html" title="class in org.libjpegturbo.turbojpeg" target="classFrame">TJ</a></li>
|
|
||||||
<li><a href="TJCompressor.html" title="class in org.libjpegturbo.turbojpeg" target="classFrame">TJCompressor</a></li>
|
|
||||||
<li><a href="TJDecompressor.html" title="class in org.libjpegturbo.turbojpeg" target="classFrame">TJDecompressor</a></li>
|
|
||||||
<li><a href="TJScalingFactor.html" title="class in org.libjpegturbo.turbojpeg" target="classFrame">TJScalingFactor</a></li>
|
|
||||||
<li><a href="TJTransform.html" title="class in org.libjpegturbo.turbojpeg" target="classFrame">TJTransform</a></li>
|
|
||||||
<li><a href="TJTransformer.html" title="class in org.libjpegturbo.turbojpeg" target="classFrame">TJTransformer</a></li>
|
|
||||||
<li><a href="YUVImage.html" title="class in org.libjpegturbo.turbojpeg" target="classFrame">YUVImage</a></li>
|
|
||||||
</ul>
|
|
||||||
<h2 title="Exceptions">Exceptions</h2>
|
|
||||||
<ul title="Exceptions">
|
|
||||||
<li><a href="TJException.html" title="class in org.libjpegturbo.turbojpeg" target="classFrame">TJException</a></li>
|
|
||||||
</ul>
|
|
||||||
</div>
|
|
||||||
</body>
|
|
||||||
</html>
|
|
||||||
@@ -1,9 +1,21 @@
|
|||||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
|
<!DOCTYPE HTML>
|
||||||
<!-- NewPage -->
|
<!-- NewPage -->
|
||||||
<html lang="en">
|
<html lang="en">
|
||||||
<head>
|
<head>
|
||||||
|
<!-- Generated by javadoc -->
|
||||||
<title>org.libjpegturbo.turbojpeg</title>
|
<title>org.libjpegturbo.turbojpeg</title>
|
||||||
|
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
|
||||||
<link rel="stylesheet" type="text/css" href="../../../stylesheet.css" title="Style">
|
<link rel="stylesheet" type="text/css" href="../../../stylesheet.css" title="Style">
|
||||||
|
<link rel="stylesheet" type="text/css" href="../../../jquery/jquery-ui.min.css" title="Style">
|
||||||
|
<link rel="stylesheet" type="text/css" href="../../../jquery-ui.overrides.css" title="Style">
|
||||||
|
<script type="text/javascript" src="../../../script.js"></script>
|
||||||
|
<script type="text/javascript" src="../../../jquery/jszip/dist/jszip.min.js"></script>
|
||||||
|
<script type="text/javascript" src="../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
|
||||||
|
<!--[if IE]>
|
||||||
|
<script type="text/javascript" src="../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
|
||||||
|
<![endif]-->
|
||||||
|
<script type="text/javascript" src="../../../jquery/jquery-3.6.0.min.js"></script>
|
||||||
|
<script type="text/javascript" src="../../../jquery/jquery-ui.min.js"></script>
|
||||||
</head>
|
</head>
|
||||||
<body>
|
<body>
|
||||||
<script type="text/javascript"><!--
|
<script type="text/javascript"><!--
|
||||||
@@ -15,18 +27,25 @@
|
|||||||
catch(err) {
|
catch(err) {
|
||||||
}
|
}
|
||||||
//-->
|
//-->
|
||||||
</script>
|
var pathtoroot = "../../../";
|
||||||
|
var useModuleDirectories = true;
|
||||||
|
loadScripts(document, 'script');</script>
|
||||||
<noscript>
|
<noscript>
|
||||||
<div>JavaScript is disabled on your browser.</div>
|
<div>JavaScript is disabled on your browser.</div>
|
||||||
</noscript>
|
</noscript>
|
||||||
|
<header role="banner">
|
||||||
|
<nav role="navigation">
|
||||||
|
<div class="fixedNav">
|
||||||
<!-- ========= START OF TOP NAVBAR ======= -->
|
<!-- ========= START OF TOP NAVBAR ======= -->
|
||||||
<div class="topNav"><a name="navbar_top">
|
<div class="topNav"><a id="navbar.top">
|
||||||
<!-- -->
|
<!-- -->
|
||||||
</a><a href="#skip-navbar_top" title="Skip navigation links"></a><a name="navbar_top_firstrow">
|
</a>
|
||||||
|
<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
|
||||||
|
<a id="navbar.top.firstrow">
|
||||||
<!-- -->
|
<!-- -->
|
||||||
</a>
|
</a>
|
||||||
<ul class="navList" title="Navigation">
|
<ul class="navList" title="Navigation">
|
||||||
<li><a href="../../../org/libjpegturbo/turbojpeg/package-summary.html">Package</a></li>
|
<li class="navBarCell1Rev">Package</li>
|
||||||
<li>Class</li>
|
<li>Class</li>
|
||||||
<li><a href="package-tree.html">Tree</a></li>
|
<li><a href="package-tree.html">Tree</a></li>
|
||||||
<li><a href="../../../deprecated-list.html">Deprecated</a></li>
|
<li><a href="../../../deprecated-list.html">Deprecated</a></li>
|
||||||
@@ -35,16 +54,14 @@
|
|||||||
</ul>
|
</ul>
|
||||||
</div>
|
</div>
|
||||||
<div class="subNav">
|
<div class="subNav">
|
||||||
<ul class="navList">
|
|
||||||
<li>Prev Package</li>
|
|
||||||
<li>Next Package</li>
|
|
||||||
</ul>
|
|
||||||
<ul class="navList">
|
|
||||||
<li><a href="../../../index.html?org/libjpegturbo/turbojpeg/package-summary.html" target="_top">Frames</a></li>
|
|
||||||
<li><a href="package-summary.html" target="_top">No Frames</a></li>
|
|
||||||
</ul>
|
|
||||||
<ul class="navList" id="allclasses_navbar_top">
|
<ul class="navList" id="allclasses_navbar_top">
|
||||||
<li><a href="../../../allclasses-noframe.html">All Classes</a></li>
|
<li><a href="../../../allclasses.html">All Classes</a></li>
|
||||||
|
</ul>
|
||||||
|
<ul class="navListSearch">
|
||||||
|
<li><label for="search">SEARCH:</label>
|
||||||
|
<input type="text" id="search" value="search" disabled="disabled">
|
||||||
|
<input type="reset" id="reset" value="reset" disabled="disabled">
|
||||||
|
</li>
|
||||||
</ul>
|
</ul>
|
||||||
<div>
|
<div>
|
||||||
<script type="text/javascript"><!--
|
<script type="text/javascript"><!--
|
||||||
@@ -57,18 +74,30 @@
|
|||||||
}
|
}
|
||||||
//-->
|
//-->
|
||||||
</script>
|
</script>
|
||||||
|
<noscript>
|
||||||
|
<div>JavaScript is disabled on your browser.</div>
|
||||||
|
</noscript>
|
||||||
</div>
|
</div>
|
||||||
<a name="skip-navbar_top">
|
<a id="skip.navbar.top">
|
||||||
<!-- -->
|
<!-- -->
|
||||||
</a></div>
|
</a></div>
|
||||||
<!-- ========= END OF TOP NAVBAR ========= -->
|
<!-- ========= END OF TOP NAVBAR ========= -->
|
||||||
|
</div>
|
||||||
|
<div class="navPadding"> </div>
|
||||||
|
<script type="text/javascript"><!--
|
||||||
|
$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
|
||||||
|
//-->
|
||||||
|
</script>
|
||||||
|
</nav>
|
||||||
|
</header>
|
||||||
|
<main role="main">
|
||||||
<div class="header">
|
<div class="header">
|
||||||
<h1 title="Package" class="title">Package org.libjpegturbo.turbojpeg</h1>
|
<h1 title="Package" class="title">Package org.libjpegturbo.turbojpeg</h1>
|
||||||
</div>
|
</div>
|
||||||
<div class="contentContainer">
|
<div class="contentContainer">
|
||||||
<ul class="blockList">
|
<ul class="blockList">
|
||||||
<li class="blockList">
|
<li class="blockList">
|
||||||
<table class="packageSummary" border="0" cellpadding="3" cellspacing="0" summary="Interface Summary table, listing interfaces, and an explanation">
|
<table class="typeSummary">
|
||||||
<caption><span>Interface Summary</span><span class="tabEnd"> </span></caption>
|
<caption><span>Interface Summary</span><span class="tabEnd"> </span></caption>
|
||||||
<tr>
|
<tr>
|
||||||
<th class="colFirst" scope="col">Interface</th>
|
<th class="colFirst" scope="col">Interface</th>
|
||||||
@@ -76,7 +105,7 @@
|
|||||||
</tr>
|
</tr>
|
||||||
<tbody>
|
<tbody>
|
||||||
<tr class="altColor">
|
<tr class="altColor">
|
||||||
<td class="colFirst"><a href="../../../org/libjpegturbo/turbojpeg/TJCustomFilter.html" title="interface in org.libjpegturbo.turbojpeg">TJCustomFilter</a></td>
|
<th class="colFirst" scope="row"><a href="TJCustomFilter.html" title="interface in org.libjpegturbo.turbojpeg">TJCustomFilter</a></th>
|
||||||
<td class="colLast">
|
<td class="colLast">
|
||||||
<div class="block">Custom filter callback interface</div>
|
<div class="block">Custom filter callback interface</div>
|
||||||
</td>
|
</td>
|
||||||
@@ -85,7 +114,7 @@
|
|||||||
</table>
|
</table>
|
||||||
</li>
|
</li>
|
||||||
<li class="blockList">
|
<li class="blockList">
|
||||||
<table class="packageSummary" border="0" cellpadding="3" cellspacing="0" summary="Class Summary table, listing classes, and an explanation">
|
<table class="typeSummary">
|
||||||
<caption><span>Class Summary</span><span class="tabEnd"> </span></caption>
|
<caption><span>Class Summary</span><span class="tabEnd"> </span></caption>
|
||||||
<tr>
|
<tr>
|
||||||
<th class="colFirst" scope="col">Class</th>
|
<th class="colFirst" scope="col">Class</th>
|
||||||
@@ -93,43 +122,43 @@
|
|||||||
</tr>
|
</tr>
|
||||||
<tbody>
|
<tbody>
|
||||||
<tr class="altColor">
|
<tr class="altColor">
|
||||||
<td class="colFirst"><a href="../../../org/libjpegturbo/turbojpeg/TJ.html" title="class in org.libjpegturbo.turbojpeg">TJ</a></td>
|
<th class="colFirst" scope="row"><a href="TJ.html" title="class in org.libjpegturbo.turbojpeg">TJ</a></th>
|
||||||
<td class="colLast">
|
<td class="colLast">
|
||||||
<div class="block">TurboJPEG utility class (cannot be instantiated)</div>
|
<div class="block">TurboJPEG utility class (cannot be instantiated)</div>
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr class="rowColor">
|
<tr class="rowColor">
|
||||||
<td class="colFirst"><a href="../../../org/libjpegturbo/turbojpeg/TJCompressor.html" title="class in org.libjpegturbo.turbojpeg">TJCompressor</a></td>
|
<th class="colFirst" scope="row"><a href="TJCompressor.html" title="class in org.libjpegturbo.turbojpeg">TJCompressor</a></th>
|
||||||
<td class="colLast">
|
<td class="colLast">
|
||||||
<div class="block">TurboJPEG compressor</div>
|
<div class="block">TurboJPEG compressor</div>
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr class="altColor">
|
<tr class="altColor">
|
||||||
<td class="colFirst"><a href="../../../org/libjpegturbo/turbojpeg/TJDecompressor.html" title="class in org.libjpegturbo.turbojpeg">TJDecompressor</a></td>
|
<th class="colFirst" scope="row"><a href="TJDecompressor.html" title="class in org.libjpegturbo.turbojpeg">TJDecompressor</a></th>
|
||||||
<td class="colLast">
|
<td class="colLast">
|
||||||
<div class="block">TurboJPEG decompressor</div>
|
<div class="block">TurboJPEG decompressor</div>
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr class="rowColor">
|
<tr class="rowColor">
|
||||||
<td class="colFirst"><a href="../../../org/libjpegturbo/turbojpeg/TJScalingFactor.html" title="class in org.libjpegturbo.turbojpeg">TJScalingFactor</a></td>
|
<th class="colFirst" scope="row"><a href="TJScalingFactor.html" title="class in org.libjpegturbo.turbojpeg">TJScalingFactor</a></th>
|
||||||
<td class="colLast">
|
<td class="colLast">
|
||||||
<div class="block">Fractional scaling factor</div>
|
<div class="block">Fractional scaling factor</div>
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr class="altColor">
|
<tr class="altColor">
|
||||||
<td class="colFirst"><a href="../../../org/libjpegturbo/turbojpeg/TJTransform.html" title="class in org.libjpegturbo.turbojpeg">TJTransform</a></td>
|
<th class="colFirst" scope="row"><a href="TJTransform.html" title="class in org.libjpegturbo.turbojpeg">TJTransform</a></th>
|
||||||
<td class="colLast">
|
<td class="colLast">
|
||||||
<div class="block">Lossless transform parameters</div>
|
<div class="block">Lossless transform parameters</div>
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr class="rowColor">
|
<tr class="rowColor">
|
||||||
<td class="colFirst"><a href="../../../org/libjpegturbo/turbojpeg/TJTransformer.html" title="class in org.libjpegturbo.turbojpeg">TJTransformer</a></td>
|
<th class="colFirst" scope="row"><a href="TJTransformer.html" title="class in org.libjpegturbo.turbojpeg">TJTransformer</a></th>
|
||||||
<td class="colLast">
|
<td class="colLast">
|
||||||
<div class="block">TurboJPEG lossless transformer</div>
|
<div class="block">TurboJPEG lossless transformer</div>
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr class="altColor">
|
<tr class="altColor">
|
||||||
<td class="colFirst"><a href="../../../org/libjpegturbo/turbojpeg/YUVImage.html" title="class in org.libjpegturbo.turbojpeg">YUVImage</a></td>
|
<th class="colFirst" scope="row"><a href="YUVImage.html" title="class in org.libjpegturbo.turbojpeg">YUVImage</a></th>
|
||||||
<td class="colLast">
|
<td class="colLast">
|
||||||
<div class="block">This class encapsulates a planar YUV image and the metadata
|
<div class="block">This class encapsulates a planar YUV image and the metadata
|
||||||
associated with it.</div>
|
associated with it.</div>
|
||||||
@@ -139,7 +168,7 @@
|
|||||||
</table>
|
</table>
|
||||||
</li>
|
</li>
|
||||||
<li class="blockList">
|
<li class="blockList">
|
||||||
<table class="packageSummary" border="0" cellpadding="3" cellspacing="0" summary="Exception Summary table, listing exceptions, and an explanation">
|
<table class="typeSummary">
|
||||||
<caption><span>Exception Summary</span><span class="tabEnd"> </span></caption>
|
<caption><span>Exception Summary</span><span class="tabEnd"> </span></caption>
|
||||||
<tr>
|
<tr>
|
||||||
<th class="colFirst" scope="col">Exception</th>
|
<th class="colFirst" scope="col">Exception</th>
|
||||||
@@ -147,7 +176,7 @@
|
|||||||
</tr>
|
</tr>
|
||||||
<tbody>
|
<tbody>
|
||||||
<tr class="altColor">
|
<tr class="altColor">
|
||||||
<td class="colFirst"><a href="../../../org/libjpegturbo/turbojpeg/TJException.html" title="class in org.libjpegturbo.turbojpeg">TJException</a></td>
|
<th class="colFirst" scope="row"><a href="TJException.html" title="class in org.libjpegturbo.turbojpeg">TJException</a></th>
|
||||||
<td class="colLast"> </td>
|
<td class="colLast"> </td>
|
||||||
</tr>
|
</tr>
|
||||||
</tbody>
|
</tbody>
|
||||||
@@ -155,14 +184,19 @@
|
|||||||
</li>
|
</li>
|
||||||
</ul>
|
</ul>
|
||||||
</div>
|
</div>
|
||||||
|
</main>
|
||||||
|
<footer role="contentinfo">
|
||||||
|
<nav role="navigation">
|
||||||
<!-- ======= START OF BOTTOM NAVBAR ====== -->
|
<!-- ======= START OF BOTTOM NAVBAR ====== -->
|
||||||
<div class="bottomNav"><a name="navbar_bottom">
|
<div class="bottomNav"><a id="navbar.bottom">
|
||||||
<!-- -->
|
<!-- -->
|
||||||
</a><a href="#skip-navbar_bottom" title="Skip navigation links"></a><a name="navbar_bottom_firstrow">
|
</a>
|
||||||
|
<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
|
||||||
|
<a id="navbar.bottom.firstrow">
|
||||||
<!-- -->
|
<!-- -->
|
||||||
</a>
|
</a>
|
||||||
<ul class="navList" title="Navigation">
|
<ul class="navList" title="Navigation">
|
||||||
<li><a href="../../../org/libjpegturbo/turbojpeg/package-summary.html">Package</a></li>
|
<li class="navBarCell1Rev">Package</li>
|
||||||
<li>Class</li>
|
<li>Class</li>
|
||||||
<li><a href="package-tree.html">Tree</a></li>
|
<li><a href="package-tree.html">Tree</a></li>
|
||||||
<li><a href="../../../deprecated-list.html">Deprecated</a></li>
|
<li><a href="../../../deprecated-list.html">Deprecated</a></li>
|
||||||
@@ -171,16 +205,8 @@
|
|||||||
</ul>
|
</ul>
|
||||||
</div>
|
</div>
|
||||||
<div class="subNav">
|
<div class="subNav">
|
||||||
<ul class="navList">
|
|
||||||
<li>Prev Package</li>
|
|
||||||
<li>Next Package</li>
|
|
||||||
</ul>
|
|
||||||
<ul class="navList">
|
|
||||||
<li><a href="../../../index.html?org/libjpegturbo/turbojpeg/package-summary.html" target="_top">Frames</a></li>
|
|
||||||
<li><a href="package-summary.html" target="_top">No Frames</a></li>
|
|
||||||
</ul>
|
|
||||||
<ul class="navList" id="allclasses_navbar_bottom">
|
<ul class="navList" id="allclasses_navbar_bottom">
|
||||||
<li><a href="../../../allclasses-noframe.html">All Classes</a></li>
|
<li><a href="../../../allclasses.html">All Classes</a></li>
|
||||||
</ul>
|
</ul>
|
||||||
<div>
|
<div>
|
||||||
<script type="text/javascript"><!--
|
<script type="text/javascript"><!--
|
||||||
@@ -193,10 +219,15 @@
|
|||||||
}
|
}
|
||||||
//-->
|
//-->
|
||||||
</script>
|
</script>
|
||||||
|
<noscript>
|
||||||
|
<div>JavaScript is disabled on your browser.</div>
|
||||||
|
</noscript>
|
||||||
</div>
|
</div>
|
||||||
<a name="skip-navbar_bottom">
|
<a id="skip.navbar.bottom">
|
||||||
<!-- -->
|
<!-- -->
|
||||||
</a></div>
|
</a></div>
|
||||||
<!-- ======== END OF BOTTOM NAVBAR ======= -->
|
<!-- ======== END OF BOTTOM NAVBAR ======= -->
|
||||||
|
</nav>
|
||||||
|
</footer>
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
|
|||||||
@@ -1,9 +1,21 @@
|
|||||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
|
<!DOCTYPE HTML>
|
||||||
<!-- NewPage -->
|
<!-- NewPage -->
|
||||||
<html lang="en">
|
<html lang="en">
|
||||||
<head>
|
<head>
|
||||||
|
<!-- Generated by javadoc -->
|
||||||
<title>org.libjpegturbo.turbojpeg Class Hierarchy</title>
|
<title>org.libjpegturbo.turbojpeg Class Hierarchy</title>
|
||||||
|
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
|
||||||
<link rel="stylesheet" type="text/css" href="../../../stylesheet.css" title="Style">
|
<link rel="stylesheet" type="text/css" href="../../../stylesheet.css" title="Style">
|
||||||
|
<link rel="stylesheet" type="text/css" href="../../../jquery/jquery-ui.min.css" title="Style">
|
||||||
|
<link rel="stylesheet" type="text/css" href="../../../jquery-ui.overrides.css" title="Style">
|
||||||
|
<script type="text/javascript" src="../../../script.js"></script>
|
||||||
|
<script type="text/javascript" src="../../../jquery/jszip/dist/jszip.min.js"></script>
|
||||||
|
<script type="text/javascript" src="../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
|
||||||
|
<!--[if IE]>
|
||||||
|
<script type="text/javascript" src="../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
|
||||||
|
<![endif]-->
|
||||||
|
<script type="text/javascript" src="../../../jquery/jquery-3.6.0.min.js"></script>
|
||||||
|
<script type="text/javascript" src="../../../jquery/jquery-ui.min.js"></script>
|
||||||
</head>
|
</head>
|
||||||
<body>
|
<body>
|
||||||
<script type="text/javascript"><!--
|
<script type="text/javascript"><!--
|
||||||
@@ -15,18 +27,25 @@
|
|||||||
catch(err) {
|
catch(err) {
|
||||||
}
|
}
|
||||||
//-->
|
//-->
|
||||||
</script>
|
var pathtoroot = "../../../";
|
||||||
|
var useModuleDirectories = true;
|
||||||
|
loadScripts(document, 'script');</script>
|
||||||
<noscript>
|
<noscript>
|
||||||
<div>JavaScript is disabled on your browser.</div>
|
<div>JavaScript is disabled on your browser.</div>
|
||||||
</noscript>
|
</noscript>
|
||||||
|
<header role="banner">
|
||||||
|
<nav role="navigation">
|
||||||
|
<div class="fixedNav">
|
||||||
<!-- ========= START OF TOP NAVBAR ======= -->
|
<!-- ========= START OF TOP NAVBAR ======= -->
|
||||||
<div class="topNav"><a name="navbar_top">
|
<div class="topNav"><a id="navbar.top">
|
||||||
<!-- -->
|
<!-- -->
|
||||||
</a><a href="#skip-navbar_top" title="Skip navigation links"></a><a name="navbar_top_firstrow">
|
</a>
|
||||||
|
<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
|
||||||
|
<a id="navbar.top.firstrow">
|
||||||
<!-- -->
|
<!-- -->
|
||||||
</a>
|
</a>
|
||||||
<ul class="navList" title="Navigation">
|
<ul class="navList" title="Navigation">
|
||||||
<li><a href="../../../org/libjpegturbo/turbojpeg/package-summary.html">Package</a></li>
|
<li><a href="package-summary.html">Package</a></li>
|
||||||
<li>Class</li>
|
<li>Class</li>
|
||||||
<li class="navBarCell1Rev">Tree</li>
|
<li class="navBarCell1Rev">Tree</li>
|
||||||
<li><a href="../../../deprecated-list.html">Deprecated</a></li>
|
<li><a href="../../../deprecated-list.html">Deprecated</a></li>
|
||||||
@@ -35,16 +54,14 @@
|
|||||||
</ul>
|
</ul>
|
||||||
</div>
|
</div>
|
||||||
<div class="subNav">
|
<div class="subNav">
|
||||||
<ul class="navList">
|
|
||||||
<li>Prev</li>
|
|
||||||
<li>Next</li>
|
|
||||||
</ul>
|
|
||||||
<ul class="navList">
|
|
||||||
<li><a href="../../../index.html?org/libjpegturbo/turbojpeg/package-tree.html" target="_top">Frames</a></li>
|
|
||||||
<li><a href="package-tree.html" target="_top">No Frames</a></li>
|
|
||||||
</ul>
|
|
||||||
<ul class="navList" id="allclasses_navbar_top">
|
<ul class="navList" id="allclasses_navbar_top">
|
||||||
<li><a href="../../../allclasses-noframe.html">All Classes</a></li>
|
<li><a href="../../../allclasses.html">All Classes</a></li>
|
||||||
|
</ul>
|
||||||
|
<ul class="navListSearch">
|
||||||
|
<li><label for="search">SEARCH:</label>
|
||||||
|
<input type="text" id="search" value="search" disabled="disabled">
|
||||||
|
<input type="reset" id="reset" value="reset" disabled="disabled">
|
||||||
|
</li>
|
||||||
</ul>
|
</ul>
|
||||||
<div>
|
<div>
|
||||||
<script type="text/javascript"><!--
|
<script type="text/javascript"><!--
|
||||||
@@ -57,70 +74,91 @@
|
|||||||
}
|
}
|
||||||
//-->
|
//-->
|
||||||
</script>
|
</script>
|
||||||
|
<noscript>
|
||||||
|
<div>JavaScript is disabled on your browser.</div>
|
||||||
|
</noscript>
|
||||||
</div>
|
</div>
|
||||||
<a name="skip-navbar_top">
|
<a id="skip.navbar.top">
|
||||||
<!-- -->
|
<!-- -->
|
||||||
</a></div>
|
</a></div>
|
||||||
<!-- ========= END OF TOP NAVBAR ========= -->
|
<!-- ========= END OF TOP NAVBAR ========= -->
|
||||||
|
</div>
|
||||||
|
<div class="navPadding"> </div>
|
||||||
|
<script type="text/javascript"><!--
|
||||||
|
$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
|
||||||
|
//-->
|
||||||
|
</script>
|
||||||
|
</nav>
|
||||||
|
</header>
|
||||||
|
<main role="main">
|
||||||
<div class="header">
|
<div class="header">
|
||||||
<h1 class="title">Hierarchy For Package org.libjpegturbo.turbojpeg</h1>
|
<h1 class="title">Hierarchy For Package org.libjpegturbo.turbojpeg</h1>
|
||||||
</div>
|
</div>
|
||||||
<div class="contentContainer">
|
<div class="contentContainer">
|
||||||
|
<section>
|
||||||
<h2 title="Class Hierarchy">Class Hierarchy</h2>
|
<h2 title="Class Hierarchy">Class Hierarchy</h2>
|
||||||
<ul>
|
<ul>
|
||||||
<li type="circle">java.lang.Object
|
<li class="circle">java.lang.Object
|
||||||
<ul>
|
<ul>
|
||||||
<li type="circle">java.awt.geom.RectangularShape (implements java.lang.Cloneable, java.awt.Shape)
|
<li class="circle">java.awt.geom.RectangularShape (implements java.lang.Cloneable, java.awt.Shape)
|
||||||
<ul>
|
<ul>
|
||||||
<li type="circle">java.awt.geom.Rectangle2D
|
<li class="circle">java.awt.geom.Rectangle2D
|
||||||
<ul>
|
<ul>
|
||||||
<li type="circle">java.awt.Rectangle (implements java.io.Serializable, java.awt.Shape)
|
<li class="circle">java.awt.Rectangle (implements java.io.Serializable, java.awt.Shape)
|
||||||
<ul>
|
<ul>
|
||||||
<li type="circle">org.libjpegturbo.turbojpeg.<a href="../../../org/libjpegturbo/turbojpeg/TJTransform.html" title="class in org.libjpegturbo.turbojpeg"><span class="strong">TJTransform</span></a></li>
|
<li class="circle">org.libjpegturbo.turbojpeg.<a href="TJTransform.html" title="class in org.libjpegturbo.turbojpeg"><span class="typeNameLink">TJTransform</span></a></li>
|
||||||
</ul>
|
</ul>
|
||||||
</li>
|
</li>
|
||||||
</ul>
|
</ul>
|
||||||
</li>
|
</li>
|
||||||
</ul>
|
</ul>
|
||||||
</li>
|
</li>
|
||||||
<li type="circle">java.lang.Throwable (implements java.io.Serializable)
|
<li class="circle">java.lang.Throwable (implements java.io.Serializable)
|
||||||
<ul>
|
<ul>
|
||||||
<li type="circle">java.lang.Exception
|
<li class="circle">java.lang.Exception
|
||||||
<ul>
|
<ul>
|
||||||
<li type="circle">java.io.IOException
|
<li class="circle">java.io.IOException
|
||||||
<ul>
|
<ul>
|
||||||
<li type="circle">org.libjpegturbo.turbojpeg.<a href="../../../org/libjpegturbo/turbojpeg/TJException.html" title="class in org.libjpegturbo.turbojpeg"><span class="strong">TJException</span></a></li>
|
<li class="circle">org.libjpegturbo.turbojpeg.<a href="TJException.html" title="class in org.libjpegturbo.turbojpeg"><span class="typeNameLink">TJException</span></a></li>
|
||||||
</ul>
|
</ul>
|
||||||
</li>
|
</li>
|
||||||
</ul>
|
</ul>
|
||||||
</li>
|
</li>
|
||||||
</ul>
|
</ul>
|
||||||
</li>
|
</li>
|
||||||
<li type="circle">org.libjpegturbo.turbojpeg.<a href="../../../org/libjpegturbo/turbojpeg/TJ.html" title="class in org.libjpegturbo.turbojpeg"><span class="strong">TJ</span></a></li>
|
<li class="circle">org.libjpegturbo.turbojpeg.<a href="TJ.html" title="class in org.libjpegturbo.turbojpeg"><span class="typeNameLink">TJ</span></a></li>
|
||||||
<li type="circle">org.libjpegturbo.turbojpeg.<a href="../../../org/libjpegturbo/turbojpeg/TJCompressor.html" title="class in org.libjpegturbo.turbojpeg"><span class="strong">TJCompressor</span></a> (implements java.io.Closeable)</li>
|
<li class="circle">org.libjpegturbo.turbojpeg.<a href="TJCompressor.html" title="class in org.libjpegturbo.turbojpeg"><span class="typeNameLink">TJCompressor</span></a> (implements java.io.Closeable)</li>
|
||||||
<li type="circle">org.libjpegturbo.turbojpeg.<a href="../../../org/libjpegturbo/turbojpeg/TJDecompressor.html" title="class in org.libjpegturbo.turbojpeg"><span class="strong">TJDecompressor</span></a> (implements java.io.Closeable)
|
<li class="circle">org.libjpegturbo.turbojpeg.<a href="TJDecompressor.html" title="class in org.libjpegturbo.turbojpeg"><span class="typeNameLink">TJDecompressor</span></a> (implements java.io.Closeable)
|
||||||
<ul>
|
<ul>
|
||||||
<li type="circle">org.libjpegturbo.turbojpeg.<a href="../../../org/libjpegturbo/turbojpeg/TJTransformer.html" title="class in org.libjpegturbo.turbojpeg"><span class="strong">TJTransformer</span></a></li>
|
<li class="circle">org.libjpegturbo.turbojpeg.<a href="TJTransformer.html" title="class in org.libjpegturbo.turbojpeg"><span class="typeNameLink">TJTransformer</span></a></li>
|
||||||
</ul>
|
</ul>
|
||||||
</li>
|
</li>
|
||||||
<li type="circle">org.libjpegturbo.turbojpeg.<a href="../../../org/libjpegturbo/turbojpeg/TJScalingFactor.html" title="class in org.libjpegturbo.turbojpeg"><span class="strong">TJScalingFactor</span></a></li>
|
<li class="circle">org.libjpegturbo.turbojpeg.<a href="TJScalingFactor.html" title="class in org.libjpegturbo.turbojpeg"><span class="typeNameLink">TJScalingFactor</span></a></li>
|
||||||
<li type="circle">org.libjpegturbo.turbojpeg.<a href="../../../org/libjpegturbo/turbojpeg/YUVImage.html" title="class in org.libjpegturbo.turbojpeg"><span class="strong">YUVImage</span></a></li>
|
<li class="circle">org.libjpegturbo.turbojpeg.<a href="YUVImage.html" title="class in org.libjpegturbo.turbojpeg"><span class="typeNameLink">YUVImage</span></a></li>
|
||||||
</ul>
|
</ul>
|
||||||
</li>
|
</li>
|
||||||
</ul>
|
</ul>
|
||||||
|
</section>
|
||||||
|
<section>
|
||||||
<h2 title="Interface Hierarchy">Interface Hierarchy</h2>
|
<h2 title="Interface Hierarchy">Interface Hierarchy</h2>
|
||||||
<ul>
|
<ul>
|
||||||
<li type="circle">org.libjpegturbo.turbojpeg.<a href="../../../org/libjpegturbo/turbojpeg/TJCustomFilter.html" title="interface in org.libjpegturbo.turbojpeg"><span class="strong">TJCustomFilter</span></a></li>
|
<li class="circle">org.libjpegturbo.turbojpeg.<a href="TJCustomFilter.html" title="interface in org.libjpegturbo.turbojpeg"><span class="typeNameLink">TJCustomFilter</span></a></li>
|
||||||
</ul>
|
</ul>
|
||||||
|
</section>
|
||||||
</div>
|
</div>
|
||||||
|
</main>
|
||||||
|
<footer role="contentinfo">
|
||||||
|
<nav role="navigation">
|
||||||
<!-- ======= START OF BOTTOM NAVBAR ====== -->
|
<!-- ======= START OF BOTTOM NAVBAR ====== -->
|
||||||
<div class="bottomNav"><a name="navbar_bottom">
|
<div class="bottomNav"><a id="navbar.bottom">
|
||||||
<!-- -->
|
<!-- -->
|
||||||
</a><a href="#skip-navbar_bottom" title="Skip navigation links"></a><a name="navbar_bottom_firstrow">
|
</a>
|
||||||
|
<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
|
||||||
|
<a id="navbar.bottom.firstrow">
|
||||||
<!-- -->
|
<!-- -->
|
||||||
</a>
|
</a>
|
||||||
<ul class="navList" title="Navigation">
|
<ul class="navList" title="Navigation">
|
||||||
<li><a href="../../../org/libjpegturbo/turbojpeg/package-summary.html">Package</a></li>
|
<li><a href="package-summary.html">Package</a></li>
|
||||||
<li>Class</li>
|
<li>Class</li>
|
||||||
<li class="navBarCell1Rev">Tree</li>
|
<li class="navBarCell1Rev">Tree</li>
|
||||||
<li><a href="../../../deprecated-list.html">Deprecated</a></li>
|
<li><a href="../../../deprecated-list.html">Deprecated</a></li>
|
||||||
@@ -129,16 +167,8 @@
|
|||||||
</ul>
|
</ul>
|
||||||
</div>
|
</div>
|
||||||
<div class="subNav">
|
<div class="subNav">
|
||||||
<ul class="navList">
|
|
||||||
<li>Prev</li>
|
|
||||||
<li>Next</li>
|
|
||||||
</ul>
|
|
||||||
<ul class="navList">
|
|
||||||
<li><a href="../../../index.html?org/libjpegturbo/turbojpeg/package-tree.html" target="_top">Frames</a></li>
|
|
||||||
<li><a href="package-tree.html" target="_top">No Frames</a></li>
|
|
||||||
</ul>
|
|
||||||
<ul class="navList" id="allclasses_navbar_bottom">
|
<ul class="navList" id="allclasses_navbar_bottom">
|
||||||
<li><a href="../../../allclasses-noframe.html">All Classes</a></li>
|
<li><a href="../../../allclasses.html">All Classes</a></li>
|
||||||
</ul>
|
</ul>
|
||||||
<div>
|
<div>
|
||||||
<script type="text/javascript"><!--
|
<script type="text/javascript"><!--
|
||||||
@@ -151,10 +181,15 @@
|
|||||||
}
|
}
|
||||||
//-->
|
//-->
|
||||||
</script>
|
</script>
|
||||||
|
<noscript>
|
||||||
|
<div>JavaScript is disabled on your browser.</div>
|
||||||
|
</noscript>
|
||||||
</div>
|
</div>
|
||||||
<a name="skip-navbar_bottom">
|
<a id="skip.navbar.bottom">
|
||||||
<!-- -->
|
<!-- -->
|
||||||
</a></div>
|
</a></div>
|
||||||
<!-- ======== END OF BOTTOM NAVBAR ======= -->
|
<!-- ======== END OF BOTTOM NAVBAR ======= -->
|
||||||
|
</nav>
|
||||||
|
</footer>
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
|
|||||||
@@ -1,9 +1,21 @@
|
|||||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
|
<!DOCTYPE HTML>
|
||||||
<!-- NewPage -->
|
<!-- NewPage -->
|
||||||
<html lang="en">
|
<html lang="en">
|
||||||
<head>
|
<head>
|
||||||
|
<!-- Generated by javadoc -->
|
||||||
<title>Class Hierarchy</title>
|
<title>Class Hierarchy</title>
|
||||||
|
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
|
||||||
<link rel="stylesheet" type="text/css" href="stylesheet.css" title="Style">
|
<link rel="stylesheet" type="text/css" href="stylesheet.css" title="Style">
|
||||||
|
<link rel="stylesheet" type="text/css" href="jquery/jquery-ui.min.css" title="Style">
|
||||||
|
<link rel="stylesheet" type="text/css" href="jquery-ui.overrides.css" title="Style">
|
||||||
|
<script type="text/javascript" src="script.js"></script>
|
||||||
|
<script type="text/javascript" src="jquery/jszip/dist/jszip.min.js"></script>
|
||||||
|
<script type="text/javascript" src="jquery/jszip-utils/dist/jszip-utils.min.js"></script>
|
||||||
|
<!--[if IE]>
|
||||||
|
<script type="text/javascript" src="jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
|
||||||
|
<![endif]-->
|
||||||
|
<script type="text/javascript" src="jquery/jquery-3.6.0.min.js"></script>
|
||||||
|
<script type="text/javascript" src="jquery/jquery-ui.min.js"></script>
|
||||||
</head>
|
</head>
|
||||||
<body>
|
<body>
|
||||||
<script type="text/javascript"><!--
|
<script type="text/javascript"><!--
|
||||||
@@ -15,18 +27,25 @@
|
|||||||
catch(err) {
|
catch(err) {
|
||||||
}
|
}
|
||||||
//-->
|
//-->
|
||||||
</script>
|
var pathtoroot = "./";
|
||||||
|
var useModuleDirectories = true;
|
||||||
|
loadScripts(document, 'script');</script>
|
||||||
<noscript>
|
<noscript>
|
||||||
<div>JavaScript is disabled on your browser.</div>
|
<div>JavaScript is disabled on your browser.</div>
|
||||||
</noscript>
|
</noscript>
|
||||||
|
<header role="banner">
|
||||||
|
<nav role="navigation">
|
||||||
|
<div class="fixedNav">
|
||||||
<!-- ========= START OF TOP NAVBAR ======= -->
|
<!-- ========= START OF TOP NAVBAR ======= -->
|
||||||
<div class="topNav"><a name="navbar_top">
|
<div class="topNav"><a id="navbar.top">
|
||||||
<!-- -->
|
<!-- -->
|
||||||
</a><a href="#skip-navbar_top" title="Skip navigation links"></a><a name="navbar_top_firstrow">
|
</a>
|
||||||
|
<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
|
||||||
|
<a id="navbar.top.firstrow">
|
||||||
<!-- -->
|
<!-- -->
|
||||||
</a>
|
</a>
|
||||||
<ul class="navList" title="Navigation">
|
<ul class="navList" title="Navigation">
|
||||||
<li><a href="org/libjpegturbo/turbojpeg/package-summary.html">Package</a></li>
|
<li>Package</li>
|
||||||
<li>Class</li>
|
<li>Class</li>
|
||||||
<li class="navBarCell1Rev">Tree</li>
|
<li class="navBarCell1Rev">Tree</li>
|
||||||
<li><a href="deprecated-list.html">Deprecated</a></li>
|
<li><a href="deprecated-list.html">Deprecated</a></li>
|
||||||
@@ -35,16 +54,14 @@
|
|||||||
</ul>
|
</ul>
|
||||||
</div>
|
</div>
|
||||||
<div class="subNav">
|
<div class="subNav">
|
||||||
<ul class="navList">
|
|
||||||
<li>Prev</li>
|
|
||||||
<li>Next</li>
|
|
||||||
</ul>
|
|
||||||
<ul class="navList">
|
|
||||||
<li><a href="index.html?overview-tree.html" target="_top">Frames</a></li>
|
|
||||||
<li><a href="overview-tree.html" target="_top">No Frames</a></li>
|
|
||||||
</ul>
|
|
||||||
<ul class="navList" id="allclasses_navbar_top">
|
<ul class="navList" id="allclasses_navbar_top">
|
||||||
<li><a href="allclasses-noframe.html">All Classes</a></li>
|
<li><a href="allclasses.html">All Classes</a></li>
|
||||||
|
</ul>
|
||||||
|
<ul class="navListSearch">
|
||||||
|
<li><label for="search">SEARCH:</label>
|
||||||
|
<input type="text" id="search" value="search" disabled="disabled">
|
||||||
|
<input type="reset" id="reset" value="reset" disabled="disabled">
|
||||||
|
</li>
|
||||||
</ul>
|
</ul>
|
||||||
<div>
|
<div>
|
||||||
<script type="text/javascript"><!--
|
<script type="text/javascript"><!--
|
||||||
@@ -57,74 +74,95 @@
|
|||||||
}
|
}
|
||||||
//-->
|
//-->
|
||||||
</script>
|
</script>
|
||||||
|
<noscript>
|
||||||
|
<div>JavaScript is disabled on your browser.</div>
|
||||||
|
</noscript>
|
||||||
</div>
|
</div>
|
||||||
<a name="skip-navbar_top">
|
<a id="skip.navbar.top">
|
||||||
<!-- -->
|
<!-- -->
|
||||||
</a></div>
|
</a></div>
|
||||||
<!-- ========= END OF TOP NAVBAR ========= -->
|
<!-- ========= END OF TOP NAVBAR ========= -->
|
||||||
|
</div>
|
||||||
|
<div class="navPadding"> </div>
|
||||||
|
<script type="text/javascript"><!--
|
||||||
|
$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
|
||||||
|
//-->
|
||||||
|
</script>
|
||||||
|
</nav>
|
||||||
|
</header>
|
||||||
|
<main role="main">
|
||||||
<div class="header">
|
<div class="header">
|
||||||
<h1 class="title">Hierarchy For All Packages</h1>
|
<h1 class="title">Hierarchy For All Packages</h1>
|
||||||
<span class="strong">Package Hierarchies:</span>
|
<span class="packageHierarchyLabel">Package Hierarchies:</span>
|
||||||
<ul class="horizontal">
|
<ul class="horizontal">
|
||||||
<li><a href="org/libjpegturbo/turbojpeg/package-tree.html">org.libjpegturbo.turbojpeg</a></li>
|
<li><a href="org/libjpegturbo/turbojpeg/package-tree.html">org.libjpegturbo.turbojpeg</a></li>
|
||||||
</ul>
|
</ul>
|
||||||
</div>
|
</div>
|
||||||
<div class="contentContainer">
|
<div class="contentContainer">
|
||||||
|
<section>
|
||||||
<h2 title="Class Hierarchy">Class Hierarchy</h2>
|
<h2 title="Class Hierarchy">Class Hierarchy</h2>
|
||||||
<ul>
|
<ul>
|
||||||
<li type="circle">java.lang.Object
|
<li class="circle">java.lang.Object
|
||||||
<ul>
|
<ul>
|
||||||
<li type="circle">java.awt.geom.RectangularShape (implements java.lang.Cloneable, java.awt.Shape)
|
<li class="circle">java.awt.geom.RectangularShape (implements java.lang.Cloneable, java.awt.Shape)
|
||||||
<ul>
|
<ul>
|
||||||
<li type="circle">java.awt.geom.Rectangle2D
|
<li class="circle">java.awt.geom.Rectangle2D
|
||||||
<ul>
|
<ul>
|
||||||
<li type="circle">java.awt.Rectangle (implements java.io.Serializable, java.awt.Shape)
|
<li class="circle">java.awt.Rectangle (implements java.io.Serializable, java.awt.Shape)
|
||||||
<ul>
|
<ul>
|
||||||
<li type="circle">org.libjpegturbo.turbojpeg.<a href="org/libjpegturbo/turbojpeg/TJTransform.html" title="class in org.libjpegturbo.turbojpeg"><span class="strong">TJTransform</span></a></li>
|
<li class="circle">org.libjpegturbo.turbojpeg.<a href="org/libjpegturbo/turbojpeg/TJTransform.html" title="class in org.libjpegturbo.turbojpeg"><span class="typeNameLink">TJTransform</span></a></li>
|
||||||
</ul>
|
</ul>
|
||||||
</li>
|
</li>
|
||||||
</ul>
|
</ul>
|
||||||
</li>
|
</li>
|
||||||
</ul>
|
</ul>
|
||||||
</li>
|
</li>
|
||||||
<li type="circle">java.lang.Throwable (implements java.io.Serializable)
|
<li class="circle">java.lang.Throwable (implements java.io.Serializable)
|
||||||
<ul>
|
<ul>
|
||||||
<li type="circle">java.lang.Exception
|
<li class="circle">java.lang.Exception
|
||||||
<ul>
|
<ul>
|
||||||
<li type="circle">java.io.IOException
|
<li class="circle">java.io.IOException
|
||||||
<ul>
|
<ul>
|
||||||
<li type="circle">org.libjpegturbo.turbojpeg.<a href="org/libjpegturbo/turbojpeg/TJException.html" title="class in org.libjpegturbo.turbojpeg"><span class="strong">TJException</span></a></li>
|
<li class="circle">org.libjpegturbo.turbojpeg.<a href="org/libjpegturbo/turbojpeg/TJException.html" title="class in org.libjpegturbo.turbojpeg"><span class="typeNameLink">TJException</span></a></li>
|
||||||
</ul>
|
</ul>
|
||||||
</li>
|
</li>
|
||||||
</ul>
|
</ul>
|
||||||
</li>
|
</li>
|
||||||
</ul>
|
</ul>
|
||||||
</li>
|
</li>
|
||||||
<li type="circle">org.libjpegturbo.turbojpeg.<a href="org/libjpegturbo/turbojpeg/TJ.html" title="class in org.libjpegturbo.turbojpeg"><span class="strong">TJ</span></a></li>
|
<li class="circle">org.libjpegturbo.turbojpeg.<a href="org/libjpegturbo/turbojpeg/TJ.html" title="class in org.libjpegturbo.turbojpeg"><span class="typeNameLink">TJ</span></a></li>
|
||||||
<li type="circle">org.libjpegturbo.turbojpeg.<a href="org/libjpegturbo/turbojpeg/TJCompressor.html" title="class in org.libjpegturbo.turbojpeg"><span class="strong">TJCompressor</span></a> (implements java.io.Closeable)</li>
|
<li class="circle">org.libjpegturbo.turbojpeg.<a href="org/libjpegturbo/turbojpeg/TJCompressor.html" title="class in org.libjpegturbo.turbojpeg"><span class="typeNameLink">TJCompressor</span></a> (implements java.io.Closeable)</li>
|
||||||
<li type="circle">org.libjpegturbo.turbojpeg.<a href="org/libjpegturbo/turbojpeg/TJDecompressor.html" title="class in org.libjpegturbo.turbojpeg"><span class="strong">TJDecompressor</span></a> (implements java.io.Closeable)
|
<li class="circle">org.libjpegturbo.turbojpeg.<a href="org/libjpegturbo/turbojpeg/TJDecompressor.html" title="class in org.libjpegturbo.turbojpeg"><span class="typeNameLink">TJDecompressor</span></a> (implements java.io.Closeable)
|
||||||
<ul>
|
<ul>
|
||||||
<li type="circle">org.libjpegturbo.turbojpeg.<a href="org/libjpegturbo/turbojpeg/TJTransformer.html" title="class in org.libjpegturbo.turbojpeg"><span class="strong">TJTransformer</span></a></li>
|
<li class="circle">org.libjpegturbo.turbojpeg.<a href="org/libjpegturbo/turbojpeg/TJTransformer.html" title="class in org.libjpegturbo.turbojpeg"><span class="typeNameLink">TJTransformer</span></a></li>
|
||||||
</ul>
|
</ul>
|
||||||
</li>
|
</li>
|
||||||
<li type="circle">org.libjpegturbo.turbojpeg.<a href="org/libjpegturbo/turbojpeg/TJScalingFactor.html" title="class in org.libjpegturbo.turbojpeg"><span class="strong">TJScalingFactor</span></a></li>
|
<li class="circle">org.libjpegturbo.turbojpeg.<a href="org/libjpegturbo/turbojpeg/TJScalingFactor.html" title="class in org.libjpegturbo.turbojpeg"><span class="typeNameLink">TJScalingFactor</span></a></li>
|
||||||
<li type="circle">org.libjpegturbo.turbojpeg.<a href="org/libjpegturbo/turbojpeg/YUVImage.html" title="class in org.libjpegturbo.turbojpeg"><span class="strong">YUVImage</span></a></li>
|
<li class="circle">org.libjpegturbo.turbojpeg.<a href="org/libjpegturbo/turbojpeg/YUVImage.html" title="class in org.libjpegturbo.turbojpeg"><span class="typeNameLink">YUVImage</span></a></li>
|
||||||
</ul>
|
</ul>
|
||||||
</li>
|
</li>
|
||||||
</ul>
|
</ul>
|
||||||
|
</section>
|
||||||
|
<section>
|
||||||
<h2 title="Interface Hierarchy">Interface Hierarchy</h2>
|
<h2 title="Interface Hierarchy">Interface Hierarchy</h2>
|
||||||
<ul>
|
<ul>
|
||||||
<li type="circle">org.libjpegturbo.turbojpeg.<a href="org/libjpegturbo/turbojpeg/TJCustomFilter.html" title="interface in org.libjpegturbo.turbojpeg"><span class="strong">TJCustomFilter</span></a></li>
|
<li class="circle">org.libjpegturbo.turbojpeg.<a href="org/libjpegturbo/turbojpeg/TJCustomFilter.html" title="interface in org.libjpegturbo.turbojpeg"><span class="typeNameLink">TJCustomFilter</span></a></li>
|
||||||
</ul>
|
</ul>
|
||||||
|
</section>
|
||||||
</div>
|
</div>
|
||||||
|
</main>
|
||||||
|
<footer role="contentinfo">
|
||||||
|
<nav role="navigation">
|
||||||
<!-- ======= START OF BOTTOM NAVBAR ====== -->
|
<!-- ======= START OF BOTTOM NAVBAR ====== -->
|
||||||
<div class="bottomNav"><a name="navbar_bottom">
|
<div class="bottomNav"><a id="navbar.bottom">
|
||||||
<!-- -->
|
<!-- -->
|
||||||
</a><a href="#skip-navbar_bottom" title="Skip navigation links"></a><a name="navbar_bottom_firstrow">
|
</a>
|
||||||
|
<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
|
||||||
|
<a id="navbar.bottom.firstrow">
|
||||||
<!-- -->
|
<!-- -->
|
||||||
</a>
|
</a>
|
||||||
<ul class="navList" title="Navigation">
|
<ul class="navList" title="Navigation">
|
||||||
<li><a href="org/libjpegturbo/turbojpeg/package-summary.html">Package</a></li>
|
<li>Package</li>
|
||||||
<li>Class</li>
|
<li>Class</li>
|
||||||
<li class="navBarCell1Rev">Tree</li>
|
<li class="navBarCell1Rev">Tree</li>
|
||||||
<li><a href="deprecated-list.html">Deprecated</a></li>
|
<li><a href="deprecated-list.html">Deprecated</a></li>
|
||||||
@@ -133,16 +171,8 @@
|
|||||||
</ul>
|
</ul>
|
||||||
</div>
|
</div>
|
||||||
<div class="subNav">
|
<div class="subNav">
|
||||||
<ul class="navList">
|
|
||||||
<li>Prev</li>
|
|
||||||
<li>Next</li>
|
|
||||||
</ul>
|
|
||||||
<ul class="navList">
|
|
||||||
<li><a href="index.html?overview-tree.html" target="_top">Frames</a></li>
|
|
||||||
<li><a href="overview-tree.html" target="_top">No Frames</a></li>
|
|
||||||
</ul>
|
|
||||||
<ul class="navList" id="allclasses_navbar_bottom">
|
<ul class="navList" id="allclasses_navbar_bottom">
|
||||||
<li><a href="allclasses-noframe.html">All Classes</a></li>
|
<li><a href="allclasses.html">All Classes</a></li>
|
||||||
</ul>
|
</ul>
|
||||||
<div>
|
<div>
|
||||||
<script type="text/javascript"><!--
|
<script type="text/javascript"><!--
|
||||||
@@ -155,10 +185,15 @@
|
|||||||
}
|
}
|
||||||
//-->
|
//-->
|
||||||
</script>
|
</script>
|
||||||
|
<noscript>
|
||||||
|
<div>JavaScript is disabled on your browser.</div>
|
||||||
|
</noscript>
|
||||||
</div>
|
</div>
|
||||||
<a name="skip-navbar_bottom">
|
<a id="skip.navbar.bottom">
|
||||||
<!-- -->
|
<!-- -->
|
||||||
</a></div>
|
</a></div>
|
||||||
<!-- ======== END OF BOTTOM NAVBAR ======= -->
|
<!-- ======== END OF BOTTOM NAVBAR ======= -->
|
||||||
|
</nav>
|
||||||
|
</footer>
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
|
|||||||
1
java/doc/package-search-index.js
Normal file
1
java/doc/package-search-index.js
Normal file
@@ -0,0 +1 @@
|
|||||||
|
packageSearchIndex = [{"l":"All Packages","url":"allpackages-index.html"},{"l":"org.libjpegturbo.turbojpeg"}]
|
||||||
BIN
java/doc/package-search-index.zip
Normal file
BIN
java/doc/package-search-index.zip
Normal file
Binary file not shown.
Binary file not shown.
|
Before Width: | Height: | Size: 2.3 KiB |
BIN
java/doc/resources/glass.png
Normal file
BIN
java/doc/resources/glass.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 499 B |
Binary file not shown.
|
Before Width: | Height: | Size: 291 B |
Binary file not shown.
|
Before Width: | Height: | Size: 10 KiB |
Binary file not shown.
|
Before Width: | Height: | Size: 849 B |
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user