Compare commits
358 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
cc336e7bd2 | ||
|
|
e0a0151761 | ||
|
|
fd3aba3590 | ||
|
|
112a0bb968 | ||
|
|
5950c5d4f9 | ||
|
|
de37e07716 | ||
|
|
8126d0c5a5 | ||
|
|
316617faf4 | ||
|
|
69799275be | ||
|
|
dd2b651243 | ||
|
|
4f24016bde | ||
|
|
d4c15e103c | ||
|
|
2eda8212e4 | ||
|
|
0559e94c72 | ||
|
|
7c6ae034da | ||
|
|
68071bd2e4 | ||
|
|
8015a30308 | ||
|
|
cac105133e | ||
|
|
a9b646c202 | ||
|
|
69c1408e9d | ||
|
|
9e7eb27686 | ||
|
|
51d626ff9d | ||
|
|
01bf9d9ccd | ||
|
|
ef49f790bd | ||
|
|
57bd84f435 | ||
|
|
20b734e1c4 | ||
|
|
a1647c8412 | ||
|
|
b39dfe7046 | ||
|
|
f832eae5c2 | ||
|
|
be6d424626 | ||
|
|
0f0fd75125 | ||
|
|
760ea8dfb3 | ||
|
|
44a97e8fe7 | ||
|
|
c3ba39fc3b | ||
|
|
7ed7b57203 | ||
|
|
11a122b2d6 | ||
|
|
6916f87955 | ||
|
|
1d5b1cf320 | ||
|
|
ccd1bfdd31 | ||
|
|
866e6ffeca | ||
|
|
9cd4e4b026 | ||
|
|
6ebf110355 | ||
|
|
d65d99a9f5 | ||
|
|
e006f5c427 | ||
|
|
8c8124bf51 | ||
|
|
30913542c0 | ||
|
|
b6b30676a3 | ||
|
|
d657ba6093 | ||
|
|
16c6e26e4b | ||
|
|
a5dcab663a | ||
|
|
12781cb555 | ||
|
|
a7466c9d86 | ||
|
|
2d4816591f | ||
|
|
307156de33 | ||
|
|
81a50f71a3 | ||
|
|
2c62da3c6c | ||
|
|
efe28cec4b | ||
|
|
b76c8404e3 | ||
|
|
67ce3b2352 | ||
|
|
ab64b62c6b | ||
|
|
80803ae5fe | ||
|
|
c412184bd8 | ||
|
|
795e6ad334 | ||
|
|
ebfe9e4a7b | ||
|
|
105f9a94ed | ||
|
|
0f905d35c2 | ||
|
|
1ca924a550 | ||
|
|
b56ae3d7fa | ||
|
|
77fee43a02 | ||
|
|
7bc3fb51e3 | ||
|
|
7080ea3c16 | ||
|
|
3c21b08ef1 | ||
|
|
a006fbab0b | ||
|
|
89c59dd669 | ||
|
|
94755ceb05 | ||
|
|
8e11a05bd6 | ||
|
|
20c7dbc64f | ||
|
|
06420c42c4 | ||
|
|
f69dc28888 | ||
|
|
4ad6003253 | ||
|
|
6b968b28ae | ||
|
|
870fd8f1bb | ||
|
|
f546711076 | ||
|
|
835b76fb65 | ||
|
|
c6fa5ba028 | ||
|
|
57a3736243 | ||
|
|
7bf04d399e | ||
|
|
9a4570a501 | ||
|
|
3fbf08bb61 | ||
|
|
d89e01f5ce | ||
|
|
c08e8c15bc | ||
|
|
b4570bbf8c | ||
|
|
f12bb305c2 | ||
|
|
22bfd9c40f | ||
|
|
36edad7a4e | ||
|
|
b071f01cbb | ||
|
|
ad6955d46a | ||
|
|
5129e3960f | ||
|
|
98a44fe07b | ||
|
|
ce4e3e8690 | ||
|
|
82bd52196d | ||
|
|
e5c6eb583f | ||
|
|
a2fdd0c9ab | ||
|
|
4b024a62b2 | ||
|
|
0dc7c82f35 | ||
|
|
3d0fe946e5 | ||
|
|
8a367177fa | ||
|
|
7a9376c114 | ||
|
|
2a47df6627 | ||
|
|
51cf51a41c | ||
|
|
0f65030297 | ||
|
|
b740054f3c | ||
|
|
9c4590e37b | ||
|
|
a9b35c965e | ||
|
|
1208d50fa6 | ||
|
|
68a086a147 | ||
|
|
2091870c9f | ||
|
|
e835ee3340 | ||
|
|
dc2697da3a | ||
|
|
868ca2b377 | ||
|
|
724c56b46a | ||
|
|
9b49f0e4c7 | ||
|
|
fa9ff8e88c | ||
|
|
bd1ef431b3 | ||
|
|
ffdb8f22f6 | ||
|
|
b7120ca547 | ||
|
|
eed08614a6 | ||
|
|
8c60d22ff5 | ||
|
|
c52c55670a | ||
|
|
e54b755ab8 | ||
|
|
4346f91fcb | ||
|
|
cf137ac46a | ||
|
|
b8c6ee38b0 | ||
|
|
0571e17c55 | ||
|
|
215aa8b78b | ||
|
|
ac906c5308 | ||
|
|
418dbdff66 | ||
|
|
bd86b76e94 | ||
|
|
7e3fd2faf5 | ||
|
|
e9f9ec4a4e | ||
|
|
4db92add1b | ||
|
|
94f0e03f90 | ||
|
|
296c71ba0f | ||
|
|
312cd79456 | ||
|
|
b8b359ae97 | ||
|
|
3185cb94f1 | ||
|
|
7f73d9b6ad | ||
|
|
565a5bd5f5 | ||
|
|
9a746ad485 | ||
|
|
44eb47ef2b | ||
|
|
9f5320fd6f | ||
|
|
18821f89a7 | ||
|
|
4348464a2f | ||
|
|
d441107013 | ||
|
|
6b76f75d2c | ||
|
|
90215cca0c | ||
|
|
67d1fc1f7c | ||
|
|
b5624ee8b6 | ||
|
|
81f5f7c110 | ||
|
|
be49b8c0cf | ||
|
|
cb6205a774 | ||
|
|
61d06e7133 | ||
|
|
ff78e37595 | ||
|
|
a29294a946 | ||
|
|
20c404d3b3 | ||
|
|
3a1bb35117 | ||
|
|
0fc884a811 | ||
|
|
9792ce8947 | ||
|
|
f962fbb44a | ||
|
|
007a42cda4 | ||
|
|
a8b8b472b9 | ||
|
|
25b995ad4d | ||
|
|
9b28defe6a | ||
|
|
f89dd1ec1a | ||
|
|
2bfdb5d4af | ||
|
|
34a8e35a4f | ||
|
|
e19f15e3f2 | ||
|
|
a27962bd9a | ||
|
|
750e078179 | ||
|
|
321e068601 | ||
|
|
56fb237472 | ||
|
|
e8738541c9 | ||
|
|
fd62eca284 | ||
|
|
c07f688aa8 | ||
|
|
ee269920c4 | ||
|
|
65e0cd3278 | ||
|
|
6bb57b7219 | ||
|
|
4852d283d7 | ||
|
|
f165c2dfc5 | ||
|
|
d884011c17 | ||
|
|
1f8b6010ea | ||
|
|
bc51580f28 | ||
|
|
8071c391bc | ||
|
|
051d962318 | ||
|
|
59f954b323 | ||
|
|
ddcd5a1979 | ||
|
|
dc6f6a9c4e | ||
|
|
d9ee65c24a | ||
|
|
b05ebcbcc4 | ||
|
|
2ffcb8eaf7 | ||
|
|
7394e27b16 | ||
|
|
db42506734 | ||
|
|
df48945d2d | ||
|
|
279bd348ce | ||
|
|
a0f878a07b | ||
|
|
b0428a73c0 | ||
|
|
848f225e2f | ||
|
|
62c6f9811b | ||
|
|
58b6ec4580 | ||
|
|
b2f9415a63 | ||
|
|
86e51f2268 | ||
|
|
9db6bebe23 | ||
|
|
957d623461 | ||
|
|
01fa031b85 | ||
|
|
88f54a4a5d | ||
|
|
dffd53da5d | ||
|
|
f2602ce567 | ||
|
|
b6ed7d347a | ||
|
|
04def09ea9 | ||
|
|
4f8c29572e | ||
|
|
ba6f457099 | ||
|
|
e08c05f6e8 | ||
|
|
bb83575b75 | ||
|
|
b97bafdfd7 | ||
|
|
b94f2de41d | ||
|
|
cd2e6946bb | ||
|
|
f5c3bb38bc | ||
|
|
ebf239d056 | ||
|
|
60de06ef7a | ||
|
|
1f014c32e6 | ||
|
|
2c74e5124d | ||
|
|
92549de2c2 | ||
|
|
d932e58217 | ||
|
|
16958e823e | ||
|
|
7c99822efb | ||
|
|
16c7077887 | ||
|
|
1da67e18a3 | ||
|
|
23da0c0e41 | ||
|
|
e217b7ea54 | ||
|
|
2930fa8e9c | ||
|
|
6bd084afd2 | ||
|
|
e856eb0f8f | ||
|
|
15866ac1da | ||
|
|
31334415ae | ||
|
|
7d4b001665 | ||
|
|
bb0e0b57dd | ||
|
|
d0a813632b | ||
|
|
a3f68b4d2a | ||
|
|
e85730157e | ||
|
|
46531c3265 | ||
|
|
2e2358eae4 | ||
|
|
ad05754a87 | ||
|
|
d8ebb6b654 | ||
|
|
ddd728c6bd | ||
|
|
ba5ea5143e | ||
|
|
f2cef492b1 | ||
|
|
6a833a8ee0 | ||
|
|
3c2d7f21a4 | ||
|
|
9977e28a09 | ||
|
|
45358dd140 | ||
|
|
0a07969273 | ||
|
|
0a325197de | ||
|
|
a81d3101da | ||
|
|
da5220acdd | ||
|
|
e6ab539b1d | ||
|
|
43a29d2c17 | ||
|
|
6acf52b5f9 | ||
|
|
5528b55834 | ||
|
|
0f1f60d080 | ||
|
|
b15b7df690 | ||
|
|
f7f3ea404c | ||
|
|
20ec358b3c | ||
|
|
109a578e89 | ||
|
|
7166bb7b3a | ||
|
|
438affe886 | ||
|
|
1a3dbe6fba | ||
|
|
23f2bbaeda | ||
|
|
5a9d6c3722 | ||
|
|
ddb158c5c1 | ||
|
|
07122dd2fe | ||
|
|
0244061515 | ||
|
|
890f1e0413 | ||
|
|
17ac3720f1 | ||
|
|
5d1e034a12 | ||
|
|
992611b689 | ||
|
|
98a7bdec4e | ||
|
|
89d11649a1 | ||
|
|
1b1e88674a | ||
|
|
88534c50aa | ||
|
|
e4d9b5b76a | ||
|
|
4f1580cc0e | ||
|
|
0a192aca50 | ||
|
|
8424160345 | ||
|
|
6a1580f88c | ||
|
|
f8552faa09 | ||
|
|
9fa95594c2 | ||
|
|
0ad78a688c | ||
|
|
026f7cea77 | ||
|
|
b605cac79e | ||
|
|
84a1bcca6f | ||
|
|
3bad53fa04 | ||
|
|
7ffa0c85de | ||
|
|
601a433b1a | ||
|
|
e0d4d34f10 | ||
|
|
36336fcddc | ||
|
|
4e8ae08b00 | ||
|
|
b28fc5710a | ||
|
|
45bd1f2bd4 | ||
|
|
f3cf973e8e | ||
|
|
035aac43b0 | ||
|
|
b67c2dce8b | ||
|
|
c4c304950d | ||
|
|
9cd2c42e84 | ||
|
|
c62cc7678d | ||
|
|
52c479d578 | ||
|
|
0df25a7340 | ||
|
|
2ddcc6334b | ||
|
|
9af407729b | ||
|
|
4db36eb09e | ||
|
|
0700eab8a2 | ||
|
|
a49c4e5247 | ||
|
|
392e0483a3 | ||
|
|
c86663335b | ||
|
|
e1303ef099 | ||
|
|
942029fd93 | ||
|
|
4a3322df1e | ||
|
|
dae3ee9f67 | ||
|
|
bc507f672d | ||
|
|
72b0f2b68e | ||
|
|
993bf0e515 | ||
|
|
8ed7b81403 | ||
|
|
e9cf55cc94 | ||
|
|
f98553bae1 | ||
|
|
b306607ad6 | ||
|
|
c5a419970e | ||
|
|
2413cb8673 | ||
|
|
2e4e0c0779 | ||
|
|
a3c3059fe2 | ||
|
|
8b38f49a8a | ||
|
|
389c47248b | ||
|
|
d00dea3052 | ||
|
|
0caa0b4ebf | ||
|
|
207a03b377 | ||
|
|
1b0c3b01de | ||
|
|
1421a264e4 | ||
|
|
218c0c1db3 | ||
|
|
f2214c2e6b | ||
|
|
ed6526f002 | ||
|
|
25c58709e3 | ||
|
|
285bbef159 | ||
|
|
063ab49603 | ||
|
|
9af1aedcdb | ||
|
|
5ccb982332 | ||
|
|
de3c86120c | ||
|
|
f8e0055a6a | ||
|
|
353477f47a | ||
|
|
958b2c0c9b | ||
|
|
b52e7334f6 |
189
BUILDING.txt
@@ -11,7 +11,7 @@ Build Requirements
|
|||||||
-- automake 1.7 or later
|
-- automake 1.7 or later
|
||||||
-- libtool 1.4 or later
|
-- libtool 1.4 or later
|
||||||
|
|
||||||
-- NASM
|
-- NASM (if building x86 or x86-64 SIMD extensions)
|
||||||
* 0.98, or 2.01 or later is required for a 32-bit build
|
* 0.98, or 2.01 or later is required for a 32-bit build
|
||||||
* NASM 2.00 or later is required for a 64-bit build
|
* NASM 2.00 or later is required for a 64-bit build
|
||||||
* NASM 2.07 or later is required for a 64-bit build on OS X. This can be
|
* NASM 2.07 or later is required for a 64-bit build on OS X. This can be
|
||||||
@@ -34,6 +34,14 @@ Build Requirements
|
|||||||
|
|
||||||
-- GCC v4.1 or later recommended for best performance
|
-- GCC v4.1 or later recommended for best performance
|
||||||
|
|
||||||
|
-- If building the TurboJPEG/OSS Java wrapper, JDK or OpenJDK 1.5 or later is
|
||||||
|
required. Some systems, such as OS X 10.4, Solaris 10 and later, and Red
|
||||||
|
Hat Enterprise Linux 5 and later, have this pre-installed. On OS X 10.5 and
|
||||||
|
later, it will be necessary to install the Java Developer Package, which can
|
||||||
|
be downloaded from http://connect.apple.com. For systems that do not have a
|
||||||
|
JDK installed, you can obtain the Oracle Java Development Kit from
|
||||||
|
http://www.java.com.
|
||||||
|
|
||||||
|
|
||||||
==================
|
==================
|
||||||
Out-of-Tree Builds
|
Out-of-Tree Builds
|
||||||
@@ -99,14 +107,14 @@ This will generate the following files under .libs/
|
|||||||
62, 7, or 8.
|
62, 7, or 8.
|
||||||
|
|
||||||
|
|
||||||
libjpeg v7 or v8 Emulation
|
libjpeg v7 or v8 API/ABI Emulation
|
||||||
--------------------------
|
----------------------------------
|
||||||
|
|
||||||
Add --with-jpeg7 to the configure command line to build a version of
|
Add --with-jpeg7 to the configure command line to build a version of
|
||||||
libjpeg-turbo that is compatible with libjpeg v7. Add --with-jpeg8 to the
|
libjpeg-turbo that is API/ABI-compatible with libjpeg v7. Add --with-jpeg8 to
|
||||||
configure command to build a version of libjpeg-turbo that is compatible with
|
the configure command to build a version of libjpeg-turbo that is
|
||||||
libjpeg v8. See README-turbo.txt for more information on libjpeg v7 and v8
|
API/ABI-compatible with libjpeg v8. See README-turbo.txt for more information
|
||||||
emulation.
|
on libjpeg v7 and v8 emulation.
|
||||||
|
|
||||||
|
|
||||||
Arithmetic Coding Support
|
Arithmetic Coding Support
|
||||||
@@ -121,6 +129,22 @@ add --without-arith-enc or --without-arith-dec to the configure command line to
|
|||||||
disable encoding or decoding (respectively.)
|
disable encoding or decoding (respectively.)
|
||||||
|
|
||||||
|
|
||||||
|
TurboJPEG/OSS Java Wrapper
|
||||||
|
--------------------------
|
||||||
|
Add --with-java to the configure command line to incorporate an optional Java
|
||||||
|
Native Interface wrapper into the TurboJPEG/OSS dynamic library and build the
|
||||||
|
Java front-end classes to support it. This allows the TurboJPEG/OSS dynamic
|
||||||
|
library to be used directly from Java applications. See java/README for more
|
||||||
|
details.
|
||||||
|
|
||||||
|
You can set the JAVAC, JAR, and JAVA configure variables to specify
|
||||||
|
alternate commands for javac, jar, and java (respectively.) You can also
|
||||||
|
set the JAVACFLAGS configure variable to specify arguments that should be
|
||||||
|
passed to the Java compiler when building the front-end classes, and JNI_CFLAGS
|
||||||
|
to specify arguments that should be passed to the C compiler when building the
|
||||||
|
JNI wrapper. Run 'configure --help' for more details.
|
||||||
|
|
||||||
|
|
||||||
========================
|
========================
|
||||||
Installing libjpeg-turbo
|
Installing libjpeg-turbo
|
||||||
========================
|
========================
|
||||||
@@ -179,7 +203,7 @@ installed.
|
|||||||
|
|
||||||
Add
|
Add
|
||||||
|
|
||||||
CFLAGS='-O3 -m32' LDFLAGS=-m32
|
--host i686-apple-darwin CFLAGS='-O3 -m32' LDFLAGS=-m32
|
||||||
|
|
||||||
to the configure command line.
|
to the configure command line.
|
||||||
|
|
||||||
@@ -204,6 +228,7 @@ MacPorts, must be installed.
|
|||||||
|
|
||||||
Add
|
Add
|
||||||
|
|
||||||
|
--host i686-apple-darwin \
|
||||||
CFLAGS='-isysroot /Developer/SDKs/MacOSX10.4u.sdk \
|
CFLAGS='-isysroot /Developer/SDKs/MacOSX10.4u.sdk \
|
||||||
-mmacosx-version-min=10.4 -O3 -m32' \
|
-mmacosx-version-min=10.4 -O3 -m32' \
|
||||||
LDFLAGS='-isysroot /Developer/SDKs/MacOSX10.4u.sdk \
|
LDFLAGS='-isysroot /Developer/SDKs/MacOSX10.4u.sdk \
|
||||||
@@ -234,8 +259,8 @@ to the configure command line. NASM 2.07 or later from FreeBSD ports must be
|
|||||||
installed.
|
installed.
|
||||||
|
|
||||||
|
|
||||||
Sun Studio
|
Oracle Solaris Studio
|
||||||
----------
|
---------------------
|
||||||
|
|
||||||
Add
|
Add
|
||||||
|
|
||||||
@@ -244,7 +269,7 @@ Add
|
|||||||
to the configure command line. libjpeg-turbo will automatically be built with
|
to the configure command line. libjpeg-turbo will automatically be built with
|
||||||
the maximum optimization level (-xO5) unless you override CFLAGS.
|
the maximum optimization level (-xO5) unless you override CFLAGS.
|
||||||
|
|
||||||
To build a 64-bit version of libjpeg-turbo using Sun Studio, add
|
To build a 64-bit version of libjpeg-turbo using Oracle Solaris Studio, add
|
||||||
|
|
||||||
--host x86_64-pc-solaris CC=cc CFLAGS='-xO5 -m64' LDFLAGS=-m64
|
--host x86_64-pc-solaris CC=cc CFLAGS='-xO5 -m64' LDFLAGS=-m64
|
||||||
|
|
||||||
@@ -257,6 +282,55 @@ MinGW Build on Cygwin
|
|||||||
Use CMake (see recipes below)
|
Use CMake (see recipes below)
|
||||||
|
|
||||||
|
|
||||||
|
===========
|
||||||
|
ARM Support
|
||||||
|
===========
|
||||||
|
|
||||||
|
This release of libjpeg-turbo can use ARM NEON SIMD instructions to accelerate
|
||||||
|
JPEG compression/decompression by approximately 2-4x on ARMv7 and later
|
||||||
|
platforms. If libjpeg-turbo is configured on an ARM Linux platform, then the
|
||||||
|
build system will automatically include the NEON SIMD routines, if they are
|
||||||
|
supported.
|
||||||
|
|
||||||
|
|
||||||
|
Building libjpeg-turbo for iOS
|
||||||
|
------------------------------
|
||||||
|
|
||||||
|
iOS platforms, such as the iPhone and iPad, also use ARM processors, some of
|
||||||
|
which support NEON instructions. Additional steps are required to build
|
||||||
|
libjpeg-turbo for these platforms. The steps below assume iOS SDK v4.3. If
|
||||||
|
you are using a different SDK version, then you will need to modify the
|
||||||
|
examples accordingly.
|
||||||
|
|
||||||
|
Additional build requirements:
|
||||||
|
|
||||||
|
gas-preprocessor.pl (https://github.com/yuvi/gas-preprocessor) should be
|
||||||
|
installed in your PATH.
|
||||||
|
|
||||||
|
Set the following shell variables for simplicity:
|
||||||
|
|
||||||
|
IOS_PLATFORMDIR="/Developer/Platforms/iPhoneOS.platform"
|
||||||
|
IOS_SYSROOT="$IOS_PLATFORMDIR/Developer/SDKs/iPhoneOS4.3.sdk"
|
||||||
|
IOS_GCC="$IOS_PLATFORMDIR/Developer/usr/bin/arm-apple-darwin10-llvm-gcc-4.2"
|
||||||
|
|
||||||
|
ARM v6 only (up to and including iPhone 3G):
|
||||||
|
IOS_CFLAGS="-march=armv6 -mcpu=arm1176jzf-s -mfpu=vfp"
|
||||||
|
|
||||||
|
ARM v7 only (iPhone 3GS and newer, iPad):
|
||||||
|
IOS_CFLAGS="-march=armv7 -mcpu=cortex-a8 -mtune=cortex-a8 -mfpu=neon"
|
||||||
|
|
||||||
|
Follow the procedure under "Building libjpeg-turbo" above, adding
|
||||||
|
|
||||||
|
--host arm-apple-darwin10 --enable-static --disable-shared \
|
||||||
|
CC="$IOS_GCC" LD="$IOS_GCC" \
|
||||||
|
CFLAGS="-mfloat-abi=softfp -isysroot $IOS_SYSROOT -O3 $IOS_CFLAGS" \
|
||||||
|
LDFLAGS="-mfloat-abi=softfp -isysroot $IOS_SYSROOT $IOS_CFLAGS"
|
||||||
|
|
||||||
|
to the configure command line.
|
||||||
|
|
||||||
|
Once built, lipo can be used to combine the ARM v6 and v7 variants into a
|
||||||
|
universal library.
|
||||||
|
|
||||||
|
|
||||||
*******************************************************************************
|
*******************************************************************************
|
||||||
** Building on Windows (Visual C++ or MinGW)
|
** Building on Windows (Visual C++ or MinGW)
|
||||||
@@ -299,6 +373,9 @@ Build Requirements
|
|||||||
-- NASM (http://www.nasm.us/) 0.98 or later (NASM 2.05 or later is required for
|
-- NASM (http://www.nasm.us/) 0.98 or later (NASM 2.05 or later is required for
|
||||||
a 64-bit build)
|
a 64-bit build)
|
||||||
|
|
||||||
|
-- If building the TurboJPEG/OSS Java wrapper, JDK 1.5 or later is required.
|
||||||
|
This can be downloaded from http://www.java.com.
|
||||||
|
|
||||||
|
|
||||||
==================
|
==================
|
||||||
Out-of-Tree Builds
|
Out-of-Tree Builds
|
||||||
@@ -416,14 +493,14 @@ NMake, remove "-DCMAKE_BUILD_TYPE=Release" (Debug builds are the default with
|
|||||||
NMake.)
|
NMake.)
|
||||||
|
|
||||||
|
|
||||||
libjpeg v7 or v8 Emulation
|
libjpeg v7 or v8 API/ABI Emulation
|
||||||
--------------------------
|
-----------------------------------
|
||||||
|
|
||||||
Add "-DWITH_JPEG7=1" to the cmake command line to build a version of
|
Add "-DWITH_JPEG7=1" to the cmake command line to build a version of
|
||||||
libjpeg-turbo that is compatible with libjpeg v7. Add "-DWITH_JPEG8=1" to the
|
libjpeg-turbo that is API/ABI-compatible with libjpeg v7. Add "-DWITH_JPEG8=1"
|
||||||
cmake command to build a version of libjpeg-turbo that is compatible with
|
to the cmake command to build a version of libjpeg-turbo that is
|
||||||
libjpeg v8. See README-turbo.txt for more information on libjpeg v7 and v8
|
API/ABI-compatible with libjpeg v8. See README-turbo.txt for more information
|
||||||
emulation.
|
on libjpeg v7 and v8 emulation.
|
||||||
|
|
||||||
|
|
||||||
Arithmetic Coding Support
|
Arithmetic Coding Support
|
||||||
@@ -438,6 +515,22 @@ add "-DWITH_ARITH_ENC=0" or "-DWITH_ARITH_DEC=0" to the cmake command line to
|
|||||||
disable encoding or decoding (respectively.)
|
disable encoding or decoding (respectively.)
|
||||||
|
|
||||||
|
|
||||||
|
TurboJPEG/OSS Java Wrapper
|
||||||
|
--------------------------
|
||||||
|
Add "-DWITH_JAVA=1" to the cmake command line to incorporate an optional Java
|
||||||
|
Native Interface wrapper into the TurboJPEG/OSS dynamic library and build the
|
||||||
|
Java front-end classes to support it. This allows the TurboJPEG/OSS dynamic
|
||||||
|
library to be used directly from Java applications. See java/README for more
|
||||||
|
details.
|
||||||
|
|
||||||
|
If you are using CMake 2.8, you can set the Java_JAVAC_EXECUTABLE,
|
||||||
|
Java_JAVA_EXECUTABLE, and Java_JAR_EXECUTABLE CMake variables to specify
|
||||||
|
alternate commands or locations for javac, jar, and java (respectively.) If
|
||||||
|
you are using CMake 2.6, set JAVA_COMPILE, JAVA_RUNTIME, and JAVA_ARCHIVE
|
||||||
|
instead. You can also set the JAVACFLAGS CMake variable to specify arguments
|
||||||
|
that should be passed to the Java compiler when building the front-end classes.
|
||||||
|
|
||||||
|
|
||||||
========================
|
========================
|
||||||
Installing libjpeg-turbo
|
Installing libjpeg-turbo
|
||||||
========================
|
========================
|
||||||
@@ -552,13 +645,32 @@ make dmg
|
|||||||
|
|
||||||
make udmg [BUILDDIR32={32-bit build directory}]
|
make udmg [BUILDDIR32={32-bit build directory}]
|
||||||
|
|
||||||
On 64-bit OS X systems, this creates a version of the Macintosh package and
|
On 64-bit OS X systems, this creates a Macintosh package and disk image that
|
||||||
disk image which contains universal i386/x86-64 binaries. You should first
|
contains universal i386/x86-64 binaries. You should first configure a 32-bit
|
||||||
configure a 32-bit out-of-tree build of libjpeg-turbo, then configure a
|
out-of-tree build of libjpeg-turbo, then configure a 64-bit out-of-tree
|
||||||
64-bit out-of-tree build, then run 'make udmg' from the 64-bit build
|
build, then run 'make udmg' from the 64-bit build directory. The build
|
||||||
directory. The build system will look for the 32-bit build under
|
system will look for the 32-bit build under {source_directory}/osxx86 by
|
||||||
{source_directory}/osxx86 by default, but you can override this by setting
|
default, but you can override this by setting the BUILDDIR32 variable on the
|
||||||
the BUILDDIR32 variable on the make command line as shown above.
|
make command line as shown above.
|
||||||
|
|
||||||
|
make iosdmg [BUILDDIR32={32-bit build directory}] \
|
||||||
|
[BUILDDIRARMV6={ARM v6 build directory}] \
|
||||||
|
[BUILDDIRARMV7={ARM v7 build directory}] \
|
||||||
|
|
||||||
|
On OS X systems, this creates a Macintosh package and disk image in which the
|
||||||
|
libjpeg-turbo static libraries contain ARM architectures necessary to build
|
||||||
|
iOS applications. If building on an x86-64 system, the binaries will also
|
||||||
|
contain the i386 architecture, as with 'make udmg' above. You should first
|
||||||
|
configure ARM v6 and ARM v7 out-of-tree builds of libjpeg-turbo (see
|
||||||
|
"Building libjpeg-turbo for iOS" above.) If you are building an x86-64
|
||||||
|
version of libjpeg-turbo, you should configure a 32-bit out-of-tree build as
|
||||||
|
well. Next, build libjpeg-turbo as you would normally, using an out-of-tree
|
||||||
|
build. When it is built, run 'make iosdmg' from the build directory. The
|
||||||
|
build system will look for the ARM v6 build under {source_directory}/iosarmv6
|
||||||
|
by default, the ARM v7 build under {source_directory}/iosarmv7 by default,
|
||||||
|
and (if applicable) the 32-bit build under {source_directory}/osxx86 by
|
||||||
|
default, but you can override this by setting the BUILDDIR32, BUILDDIRARMV6,
|
||||||
|
and/or BUILDDIRARMV7 variables on the make command line as shown above.
|
||||||
|
|
||||||
make sunpkg
|
make sunpkg
|
||||||
|
|
||||||
@@ -566,7 +678,7 @@ make sunpkg
|
|||||||
|
|
||||||
make csunpkg [BUILDDIR32={32-bit build directory}]
|
make csunpkg [BUILDDIR32={32-bit build directory}]
|
||||||
|
|
||||||
On 64-bit Solaris systems, this creates a combined package which contains
|
On 64-bit Solaris systems, this creates a combined package that contains
|
||||||
both 32-bit and 64-bit libraries. You should first configure a 32-bit
|
both 32-bit and 64-bit libraries. You should first configure a 32-bit
|
||||||
out-of-tree build of libjpeg-turbo, then configure a 64-bit out-of-tree
|
out-of-tree build of libjpeg-turbo, then configure a 64-bit out-of-tree
|
||||||
build, then run 'make csunpkg' from the 64-bit build directory. The build
|
build, then run 'make csunpkg' from the 64-bit build directory. The build
|
||||||
@@ -602,3 +714,30 @@ configuration you built (such as {build_directory}\Debug\ or
|
|||||||
|
|
||||||
Building a Windows installer requires the Nullsoft Install System
|
Building a Windows installer requires the Nullsoft Install System
|
||||||
(http://nsis.sourceforge.net/.) makensis.exe should be in your PATH.
|
(http://nsis.sourceforge.net/.) makensis.exe should be in your PATH.
|
||||||
|
|
||||||
|
|
||||||
|
*******************************************************************************
|
||||||
|
** Regression testing
|
||||||
|
*******************************************************************************
|
||||||
|
|
||||||
|
The most common way to test libjpeg-turbo is by invoking 'make test' on
|
||||||
|
Unix/Linux platforms or 'ctest' on Windows platforms, once the build has
|
||||||
|
completed. This runs a series of tests to ensure that mathematical
|
||||||
|
compatibility has been maintained between libjpeg-turbo and libjpeg v6b. This
|
||||||
|
also invokes the TurboJPEG unit tests, which ensure that the colorspace
|
||||||
|
extensions, YUV encoding, decompression scaling, and other features of the
|
||||||
|
TurboJPEG C and Java APIs are working properly (and, by extension, that the
|
||||||
|
equivalent features of the underlying libjpeg API are also working.)
|
||||||
|
|
||||||
|
Invoking 'make testclean' or 'nmake testclean' (if using NMake) or building
|
||||||
|
the 'testclean' target (if using the Visual Studio IDE) will clean up the
|
||||||
|
output images generated by 'make test'.
|
||||||
|
|
||||||
|
On Unix/Linux platforms, more extensive tests of the TurboJPEG/OSS C and Java
|
||||||
|
wrappers can be run by invoking 'make tjtest'. These extended TurboJPEG tests
|
||||||
|
essentially iterate through all of the available features of the TurboJPEG APIs
|
||||||
|
that are not covered by the TurboJPEG unit tests (this includes the lossless
|
||||||
|
transform options) and compare the images generated by each feature to images
|
||||||
|
generated using the equivalent feature in the libjpeg API. The extended
|
||||||
|
TurboJPEG tests are meant to test for regressions in the TurboJPEG wrappers,
|
||||||
|
not in the underlying libjpeg-turbo library.
|
||||||
|
|||||||
279
CMakeLists.txt
@@ -5,7 +5,7 @@
|
|||||||
cmake_minimum_required(VERSION 2.6)
|
cmake_minimum_required(VERSION 2.6)
|
||||||
|
|
||||||
project(libjpeg-turbo C)
|
project(libjpeg-turbo C)
|
||||||
set(VERSION 1.1.1)
|
set(VERSION 1.2.1)
|
||||||
|
|
||||||
if(MINGW OR CYGWIN)
|
if(MINGW OR CYGWIN)
|
||||||
execute_process(COMMAND "date" "+%Y%m%d" OUTPUT_VARIABLE BUILD)
|
execute_process(COMMAND "date" "+%Y%m%d" OUTPUT_VARIABLE BUILD)
|
||||||
@@ -18,6 +18,8 @@ else()
|
|||||||
message(FATAL_ERROR "Platform not supported by this build system. Use autotools instead.")
|
message(FATAL_ERROR "Platform not supported by this build system. Use autotools instead.")
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
|
# This does nothing except when using MinGW. CMAKE_BUILD_TYPE has no meaning
|
||||||
|
# in Visual Studio, and it always defaults to Debug when using NMake.
|
||||||
if(NOT CMAKE_BUILD_TYPE)
|
if(NOT CMAKE_BUILD_TYPE)
|
||||||
set(CMAKE_BUILD_TYPE Release)
|
set(CMAKE_BUILD_TYPE Release)
|
||||||
endif()
|
endif()
|
||||||
@@ -25,7 +27,7 @@ endif()
|
|||||||
message(STATUS "CMAKE_BUILD_TYPE = ${CMAKE_BUILD_TYPE}")
|
message(STATUS "CMAKE_BUILD_TYPE = ${CMAKE_BUILD_TYPE}")
|
||||||
|
|
||||||
# This only works if building from the command line. There is currently no way
|
# This only works if building from the command line. There is currently no way
|
||||||
# to set a variable's value based on the build type when using the MSVC IDE.
|
# to set a variable's value based on the build type when using Visual Studio.
|
||||||
if(CMAKE_BUILD_TYPE STREQUAL "Debug")
|
if(CMAKE_BUILD_TYPE STREQUAL "Debug")
|
||||||
set(BUILD "${BUILD}d")
|
set(BUILD "${BUILD}d")
|
||||||
endif()
|
endif()
|
||||||
@@ -37,6 +39,7 @@ option(WITH_ARITH_ENC "Include arithmetic encoding support" TRUE)
|
|||||||
option(WITH_ARITH_DEC "Include arithmetic decoding support" TRUE)
|
option(WITH_ARITH_DEC "Include arithmetic decoding support" TRUE)
|
||||||
option(WITH_JPEG7 "Emulate libjpeg v7 API/ABI (this makes libjpeg-turbo backward incompatible with libjpeg v6b)" FALSE)
|
option(WITH_JPEG7 "Emulate libjpeg v7 API/ABI (this makes libjpeg-turbo backward incompatible with libjpeg v6b)" FALSE)
|
||||||
option(WITH_JPEG8 "Emulate libjpeg v8 API/ABI (this makes libjpeg-turbo backward incompatible with libjpeg v6b)" FALSE)
|
option(WITH_JPEG8 "Emulate libjpeg v8 API/ABI (this makes libjpeg-turbo backward incompatible with libjpeg v6b)" FALSE)
|
||||||
|
option(WITH_JAVA "Build Java wrapper for the TurboJPEG/OSS library" FALSE)
|
||||||
|
|
||||||
if(WITH_ARITH_ENC)
|
if(WITH_ARITH_ENC)
|
||||||
set(C_ARITH_CODING_SUPPORTED 1)
|
set(C_ARITH_CODING_SUPPORTED 1)
|
||||||
@@ -52,6 +55,12 @@ else()
|
|||||||
message(STATUS "Arithmetic decoding support disabled")
|
message(STATUS "Arithmetic decoding support disabled")
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
|
if(WITH_JAVA)
|
||||||
|
message(STATUS "TurboJPEG/OSS Java wrapper enabled")
|
||||||
|
else()
|
||||||
|
message(STATUS "TurboJPEG/OSS Java wrapper disabled")
|
||||||
|
endif()
|
||||||
|
|
||||||
set(JPEG_LIB_VERSION 62)
|
set(JPEG_LIB_VERSION 62)
|
||||||
set(DLL_VERSION ${JPEG_LIB_VERSION})
|
set(DLL_VERSION ${JPEG_LIB_VERSION})
|
||||||
set(FULLVERSION ${DLL_VERSION}.0.0)
|
set(FULLVERSION ${DLL_VERSION}.0.0)
|
||||||
@@ -99,6 +108,14 @@ configure_file(win/config.h.in config.h)
|
|||||||
|
|
||||||
include_directories(${CMAKE_CURRENT_BINARY_DIR} ${CMAKE_SOURCE_DIR})
|
include_directories(${CMAKE_CURRENT_BINARY_DIR} ${CMAKE_SOURCE_DIR})
|
||||||
|
|
||||||
|
if(WITH_JAVA)
|
||||||
|
find_package(Java)
|
||||||
|
find_package(JNI)
|
||||||
|
if(DEFINED JAVACFLAGS)
|
||||||
|
message(STATUS "Java compiler flags = ${JAVACFLAGS}")
|
||||||
|
endif()
|
||||||
|
endif()
|
||||||
|
|
||||||
|
|
||||||
#
|
#
|
||||||
# Targets
|
# Targets
|
||||||
@@ -139,6 +156,10 @@ else()
|
|||||||
message(STATUS "Not using SIMD acceleration")
|
message(STATUS "Not using SIMD acceleration")
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
|
if(WITH_JAVA)
|
||||||
|
add_subdirectory(java)
|
||||||
|
endif()
|
||||||
|
|
||||||
add_subdirectory(sharedlib)
|
add_subdirectory(sharedlib)
|
||||||
|
|
||||||
add_library(jpeg-static STATIC ${JPEG_SOURCES} ${SIMD_OBJS})
|
add_library(jpeg-static STATIC ${JPEG_SOURCES} ${SIMD_OBJS})
|
||||||
@@ -149,13 +170,22 @@ if(WITH_SIMD)
|
|||||||
add_dependencies(jpeg-static simd)
|
add_dependencies(jpeg-static simd)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
add_library(turbojpeg SHARED turbojpegl.c)
|
set(TURBOJPEG_SOURCES turbojpeg.c transupp.c jdatadst-tj.c jdatasrc-tj.c)
|
||||||
|
if(WITH_JAVA)
|
||||||
|
set(TURBOJPEG_SOURCES ${TURBOJPEG_SOURCES} turbojpeg-jni.c)
|
||||||
|
include_directories(${JAVA_INCLUDE_PATH} ${JAVA_INCLUDE_PATH2})
|
||||||
|
endif()
|
||||||
|
|
||||||
|
add_library(turbojpeg SHARED ${TURBOJPEG_SOURCES})
|
||||||
set_target_properties(turbojpeg PROPERTIES DEFINE_SYMBOL DLLDEFINE)
|
set_target_properties(turbojpeg PROPERTIES DEFINE_SYMBOL DLLDEFINE)
|
||||||
|
if(MINGW)
|
||||||
|
set_target_properties(turbojpeg PROPERTIES LINK_FLAGS -Wl,--kill-at)
|
||||||
|
endif()
|
||||||
target_link_libraries(turbojpeg jpeg-static)
|
target_link_libraries(turbojpeg jpeg-static)
|
||||||
set_target_properties(turbojpeg PROPERTIES LINK_INTERFACE_LIBRARIES "")
|
set_target_properties(turbojpeg PROPERTIES LINK_INTERFACE_LIBRARIES "")
|
||||||
|
|
||||||
add_library(turbojpeg-static STATIC ${JPEG_SOURCES} ${SIMD_OBJS}
|
add_library(turbojpeg-static STATIC ${JPEG_SOURCES} ${SIMD_OBJS}
|
||||||
turbojpegl.c)
|
turbojpeg.c transupp.c jdatadst-tj.c jdatasrc-tj.c)
|
||||||
if(NOT MSVC)
|
if(NOT MSVC)
|
||||||
set_target_properties(turbojpeg-static PROPERTIES OUTPUT_NAME turbojpeg)
|
set_target_properties(turbojpeg-static PROPERTIES OUTPUT_NAME turbojpeg)
|
||||||
endif()
|
endif()
|
||||||
@@ -163,17 +193,23 @@ if(WITH_SIMD)
|
|||||||
add_dependencies(turbojpeg-static simd)
|
add_dependencies(turbojpeg-static simd)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
add_executable(jpegut jpegut.c)
|
add_executable(tjunittest tjunittest.c tjutil.c)
|
||||||
target_link_libraries(jpegut turbojpeg)
|
target_link_libraries(tjunittest turbojpeg)
|
||||||
|
|
||||||
add_executable(jpegut-static jpegut.c)
|
add_executable(tjunittest-static tjunittest.c tjutil.c)
|
||||||
target_link_libraries(jpegut-static turbojpeg-static)
|
target_link_libraries(tjunittest-static turbojpeg-static)
|
||||||
|
|
||||||
add_executable(jpgtest jpgtest.c bmp.c)
|
add_executable(tjbench tjbench.c bmp.c tjutil.c rdbmp.c rdppm.c wrbmp.c
|
||||||
target_link_libraries(jpgtest turbojpeg)
|
wrppm.c)
|
||||||
|
target_link_libraries(tjbench turbojpeg jpeg-static)
|
||||||
|
set_property(TARGET tjbench PROPERTY COMPILE_FLAGS
|
||||||
|
"-DBMP_SUPPORTED -DPPM_SUPPORTED")
|
||||||
|
|
||||||
add_executable(jpgtest-static jpgtest.c bmp.c)
|
add_executable(tjbench-static tjbench.c bmp.c tjutil.c rdbmp.c rdppm.c wrbmp.c
|
||||||
target_link_libraries(jpgtest-static turbojpeg-static)
|
wrppm.c)
|
||||||
|
target_link_libraries(tjbench-static turbojpeg-static jpeg-static)
|
||||||
|
set_property(TARGET tjbench-static PROPERTY COMPILE_FLAGS
|
||||||
|
"-DBMP_SUPPORTED -DPPM_SUPPORTED")
|
||||||
|
|
||||||
add_executable(cjpeg-static cjpeg.c cdjpeg.c rdbmp.c rdgif.c rdppm.c rdswitch.c
|
add_executable(cjpeg-static cjpeg.c cdjpeg.c rdbmp.c rdgif.c rdppm.c rdswitch.c
|
||||||
rdtarga.c)
|
rdtarga.c)
|
||||||
@@ -189,6 +225,7 @@ target_link_libraries(djpeg-static jpeg-static)
|
|||||||
|
|
||||||
add_executable(jpegtran-static jpegtran.c cdjpeg.c rdswitch.c transupp.c)
|
add_executable(jpegtran-static jpegtran.c cdjpeg.c rdswitch.c transupp.c)
|
||||||
target_link_libraries(jpegtran-static jpeg-static)
|
target_link_libraries(jpegtran-static jpeg-static)
|
||||||
|
set_property(TARGET jpegtran-static PROPERTY COMPILE_FLAGS "-DUSE_SETMODE")
|
||||||
|
|
||||||
add_executable(rdjpgcom rdjpgcom.c)
|
add_executable(rdjpgcom rdjpgcom.c)
|
||||||
|
|
||||||
@@ -199,96 +236,141 @@ add_executable(wrjpgcom rdjpgcom.c)
|
|||||||
# Tests
|
# Tests
|
||||||
#
|
#
|
||||||
|
|
||||||
enable_testing()
|
if(MSVC_IDE)
|
||||||
add_test(jpegut jpegut)
|
set(OBJDIR "\${CTEST_CONFIGURATION_TYPE}/")
|
||||||
add_test(jpegut-yuv jpegut -yuv)
|
|
||||||
add_test(cjpeg-int sharedlib/cjpeg -dct int -outfile testoutint.jpg ${CMAKE_SOURCE_DIR}/testorig.ppm)
|
|
||||||
add_test(cjpeg-int-cmp ${CMAKE_COMMAND} -E compare_files ${CMAKE_SOURCE_DIR}/testimgint.jpg testoutint.jpg)
|
|
||||||
add_test(cjpeg-fast sharedlib/cjpeg -dct fast -opt -outfile testoutfst.jpg ${CMAKE_SOURCE_DIR}/testorig.ppm)
|
|
||||||
add_test(cjpeg-fast-cmp ${CMAKE_COMMAND} -E compare_files ${CMAKE_SOURCE_DIR}/testimgfst.jpg testoutfst.jpg)
|
|
||||||
add_test(cjpeg-fast-100 sharedlib/cjpeg -dct fast -quality 100 -opt -outfile testoutfst100.jpg ${CMAKE_SOURCE_DIR}/testorig.ppm)
|
|
||||||
add_test(cjpeg-fast-100-cmp ${CMAKE_COMMAND} -E compare_files ${CMAKE_SOURCE_DIR}/testimgfst100.jpg testoutfst100.jpg)
|
|
||||||
add_test(cjpeg-float sharedlib/cjpeg -dct float -outfile testoutflt.jpg ${CMAKE_SOURCE_DIR}/testorig.ppm)
|
|
||||||
if(WITH_SIMD)
|
|
||||||
add_test(cjpeg-float-cmp ${CMAKE_COMMAND} -E compare_files ${CMAKE_SOURCE_DIR}/testimgflt.jpg testoutflt.jpg)
|
|
||||||
else()
|
else()
|
||||||
add_test(cjpeg-float-cmp ${CMAKE_COMMAND} -E compare_files ${CMAKE_SOURCE_DIR}/testimgflt-nosimd.jpg testoutflt.jpg)
|
set(OBJDIR "")
|
||||||
endif()
|
endif()
|
||||||
add_test(djpeg-int sharedlib/djpeg -dct int -fast -ppm -outfile testoutint.ppm ${CMAKE_SOURCE_DIR}/testorig.jpg)
|
|
||||||
add_test(djpeg-int-cmp ${CMAKE_COMMAND} -E compare_files ${CMAKE_SOURCE_DIR}/testimgint.ppm testoutint.ppm)
|
|
||||||
add_test(djpeg-fast sharedlib/djpeg -dct fast -ppm -outfile testoutfst.ppm ${CMAKE_SOURCE_DIR}/testorig.jpg)
|
|
||||||
add_test(djpeg-fast-cmp ${CMAKE_COMMAND} -E compare_files ${CMAKE_SOURCE_DIR}/testimgfst.ppm testoutfst.ppm)
|
|
||||||
add_test(djpeg-float sharedlib/djpeg -dct float -ppm -outfile testoutflt.ppm ${CMAKE_SOURCE_DIR}/testorig.jpg)
|
|
||||||
if(WITH_SIMD)
|
|
||||||
add_test(djpeg-float-cmp ${CMAKE_COMMAND} -E compare_files ${CMAKE_SOURCE_DIR}/testimgflt.ppm testoutflt.ppm)
|
|
||||||
else()
|
|
||||||
add_test(djpeg-float-cmp ${CMAKE_COMMAND} -E compare_files ${CMAKE_SOURCE_DIR}/testorig.ppm testoutflt.ppm)
|
|
||||||
endif()
|
|
||||||
add_test(djpeg-256 sharedlib/djpeg -dct int -bmp -colors 256 -outfile testout.bmp ${CMAKE_SOURCE_DIR}/testorig.jpg)
|
|
||||||
add_test(djpeg-256-cmp ${CMAKE_COMMAND} -E compare_files ${CMAKE_SOURCE_DIR}/testimg.bmp testout.bmp)
|
|
||||||
add_test(cjpeg-prog sharedlib/cjpeg -dct int -progressive -outfile testoutp.jpg ${CMAKE_SOURCE_DIR}/testorig.ppm)
|
|
||||||
add_test(cjpeg-prog-cmp ${CMAKE_COMMAND} -E compare_files ${CMAKE_SOURCE_DIR}/testimgp.jpg testoutp.jpg)
|
|
||||||
add_test(jpegtran-prog sharedlib/jpegtran -outfile testoutt.jpg testoutp.jpg)
|
|
||||||
add_test(jpegtran-prog-cmp ${CMAKE_COMMAND} -E compare_files ${CMAKE_SOURCE_DIR}/testimgint.jpg testoutt.jpg)
|
|
||||||
if(WITH_ARITH_ENC)
|
|
||||||
add_test(cjpeg-ari sharedlib/cjpeg -dct int -arithmetic -outfile testoutari.jpg ${CMAKE_SOURCE_DIR}/testorig.ppm)
|
|
||||||
add_test(cjpeg-ari-cmp ${CMAKE_COMMAND} -E compare_files ${CMAKE_SOURCE_DIR}/testimgari.jpg testoutari.jpg)
|
|
||||||
add_test(jpegtran-toari sharedlib/jpegtran -arithmetic -outfile testouta.jpg ${CMAKE_SOURCE_DIR}/testimgint.jpg)
|
|
||||||
add_test(jpegtran-toari-cmp ${CMAKE_COMMAND} -E compare_files ${CMAKE_SOURCE_DIR}/testimgari.jpg testouta.jpg)
|
|
||||||
endif()
|
|
||||||
if(WITH_ARITH_DEC)
|
|
||||||
add_test(djpeg-ari sharedlib/djpeg -dct int -fast -ppm -outfile testoutari.ppm ${CMAKE_SOURCE_DIR}/testimgari.jpg)
|
|
||||||
add_test(djpeg-ari-cmp ${CMAKE_COMMAND} -E compare_files ${CMAKE_SOURCE_DIR}/testimgari.ppm testoutari.ppm)
|
|
||||||
add_test(jpegtran-fromari sharedlib/jpegtran -outfile testouta.jpg ${CMAKE_SOURCE_DIR}/testimgari.jpg)
|
|
||||||
add_test(jpegtran-fromari-cmp ${CMAKE_COMMAND} -E compare_files ${CMAKE_SOURCE_DIR}/testimgint.jpg testouta.jpg)
|
|
||||||
endif()
|
|
||||||
add_test(jpegtran-crop sharedlib/jpegtran -crop 120x90+20+50 -transpose -perfect -outfile testoutcrop.jpg ${CMAKE_SOURCE_DIR}/testorig.jpg)
|
|
||||||
add_test(jpegtran-crop-cmp ${CMAKE_COMMAND} -E compare_files ${CMAKE_SOURCE_DIR}/testimgcrop.jpg testoutcrop.jpg)
|
|
||||||
|
|
||||||
add_test(jpegut-static jpegut-static)
|
enable_testing()
|
||||||
add_test(jpegut-static-yuv jpegut-static -yuv)
|
if(WITH_JAVA)
|
||||||
add_test(cjpeg-static-int cjpeg-static -dct int -outfile testoutint.jpg ${CMAKE_SOURCE_DIR}/testorig.ppm)
|
add_test(TJUnitTest ${JAVA_RUNTIME} -cp java/${OBJDIR}turbojpeg.jar -Djava.library.path=${CMAKE_CURRENT_BINARY_DIR}/${OBJDIR} TJUnitTest)
|
||||||
add_test(cjpeg-static-int-cmp ${CMAKE_COMMAND} -E compare_files ${CMAKE_SOURCE_DIR}/testimgint.jpg testoutint.jpg)
|
add_test(TJUnitTest-yuv ${JAVA_RUNTIME} -cp java/${OBJDIR}turbojpeg.jar -Djava.library.path=${CMAKE_CURRENT_BINARY_DIR}/${OBJDIR} TJUnitTest -yuv)
|
||||||
add_test(cjpeg-static-fast cjpeg-static -dct fast -opt -outfile testoutfst.jpg ${CMAKE_SOURCE_DIR}/testorig.ppm)
|
add_test(TJUnitTest-bi ${JAVA_RUNTIME} -cp java/${OBJDIR}turbojpeg.jar -Djava.library.path=${CMAKE_CURRENT_BINARY_DIR}/${OBJDIR} TJUnitTest -bi)
|
||||||
add_test(cjpeg-static-fast-cmp ${CMAKE_COMMAND} -E compare_files ${CMAKE_SOURCE_DIR}/testimgfst.jpg testoutfst.jpg)
|
add_test(TJUnitTest-bi-yuv ${JAVA_RUNTIME} -cp java/${OBJDIR}turbojpeg.jar -Djava.library.path=${CMAKE_CURRENT_BINARY_DIR}/${OBJDIR} TJUnitTest -bi -yuv)
|
||||||
add_test(cjpeg-static-fast-100 cjpeg-static -dct fast -quality 100 -opt -outfile testoutfst100.jpg ${CMAKE_SOURCE_DIR}/testorig.ppm)
|
|
||||||
add_test(cjpeg-static-fast-100-cmp ${CMAKE_COMMAND} -E compare_files ${CMAKE_SOURCE_DIR}/testimgfst100.jpg testoutfst100.jpg)
|
|
||||||
add_test(cjpeg-static-float cjpeg-static -dct float -outfile testoutflt.jpg ${CMAKE_SOURCE_DIR}/testorig.ppm)
|
|
||||||
if(WITH_SIMD)
|
|
||||||
add_test(cjpeg-static-float-cmp ${CMAKE_COMMAND} -E compare_files ${CMAKE_SOURCE_DIR}/testimgflt.jpg testoutflt.jpg)
|
|
||||||
else()
|
|
||||||
add_test(cjpeg-static-float-cmp ${CMAKE_COMMAND} -E compare_files ${CMAKE_SOURCE_DIR}/testimgflt-nosimd.jpg testoutflt.jpg)
|
|
||||||
endif()
|
endif()
|
||||||
add_test(djpeg-static-int djpeg-static -dct int -fast -ppm -outfile testoutint.ppm ${CMAKE_SOURCE_DIR}/testorig.jpg)
|
add_test(tjunittest tjunittest)
|
||||||
add_test(djpeg-static-int-cmp ${CMAKE_COMMAND} -E compare_files ${CMAKE_SOURCE_DIR}/testimgint.ppm testoutint.ppm)
|
add_test(tjunittest-alloc tjunittest -alloc)
|
||||||
add_test(djpeg-static-fast djpeg-static -dct fast -ppm -outfile testoutfst.ppm ${CMAKE_SOURCE_DIR}/testorig.jpg)
|
add_test(tjunittest-yuv tjunittest -yuv)
|
||||||
add_test(djpeg-static-fast-cmp ${CMAKE_COMMAND} -E compare_files ${CMAKE_SOURCE_DIR}/testimgfst.ppm testoutfst.ppm)
|
add_test(cjpeg-int sharedlib/cjpeg -dct int -outfile testoutint.jpg ${CMAKE_SOURCE_DIR}/testimages/testorig.ppm)
|
||||||
add_test(djpeg-static-float djpeg-static -dct float -ppm -outfile testoutflt.ppm ${CMAKE_SOURCE_DIR}/testorig.jpg)
|
add_test(cjpeg-int-cmp ${CMAKE_COMMAND} -E compare_files ${CMAKE_SOURCE_DIR}/testimages/testimgint.jpg testoutint.jpg)
|
||||||
|
add_test(cjpeg-fast sharedlib/cjpeg -dct fast -opt -outfile testoutfst.jpg ${CMAKE_SOURCE_DIR}/testimages/testorig.ppm)
|
||||||
|
add_test(cjpeg-fast-cmp ${CMAKE_COMMAND} -E compare_files ${CMAKE_SOURCE_DIR}/testimages/testimgfst.jpg testoutfst.jpg)
|
||||||
|
add_test(cjpeg-fast-100 sharedlib/cjpeg -dct fast -quality 100 -opt -outfile testoutfst100.jpg ${CMAKE_SOURCE_DIR}/testimages/testorig.ppm)
|
||||||
|
add_test(cjpeg-fast-100-cmp ${CMAKE_COMMAND} -E compare_files ${CMAKE_SOURCE_DIR}/testimages/testimgfst100.jpg testoutfst100.jpg)
|
||||||
|
add_test(cjpeg-float sharedlib/cjpeg -dct float -outfile testoutflt.jpg ${CMAKE_SOURCE_DIR}/testimages/testorig.ppm)
|
||||||
if(WITH_SIMD)
|
if(WITH_SIMD)
|
||||||
add_test(djpeg-static-float-cmp ${CMAKE_COMMAND} -E compare_files ${CMAKE_SOURCE_DIR}/testimgflt.ppm testoutflt.ppm)
|
add_test(cjpeg-float-cmp ${CMAKE_COMMAND} -E compare_files ${CMAKE_SOURCE_DIR}/testimages/testimgflt.jpg testoutflt.jpg)
|
||||||
else()
|
else()
|
||||||
add_test(djpeg-static-float-cmp ${CMAKE_COMMAND} -E compare_files ${CMAKE_SOURCE_DIR}/testorig.ppm testoutflt.ppm)
|
add_test(cjpeg-float-cmp ${CMAKE_COMMAND} -E compare_files ${CMAKE_SOURCE_DIR}/testimages/testimgflt-nosimd.jpg testoutflt.jpg)
|
||||||
endif()
|
endif()
|
||||||
add_test(djpeg-static-256 djpeg-static -dct int -bmp -colors 256 -outfile testout.bmp ${CMAKE_SOURCE_DIR}/testorig.jpg)
|
add_test(cjpeg-int-gray sharedlib/cjpeg -dct int -grayscale -outfile testoutgray.jpg ${CMAKE_SOURCE_DIR}/testimages/testorig.ppm)
|
||||||
add_test(djpeg-static-256-cmp ${CMAKE_COMMAND} -E compare_files ${CMAKE_SOURCE_DIR}/testimg.bmp testout.bmp)
|
add_test(cjpeg-int-gray-cmp ${CMAKE_COMMAND} -E compare_files ${CMAKE_SOURCE_DIR}/testimages/testimggray.jpg testoutgray.jpg)
|
||||||
add_test(cjpeg-static-prog cjpeg-static -dct int -progressive -outfile testoutp.jpg ${CMAKE_SOURCE_DIR}/testorig.ppm)
|
add_test(djpeg-int sharedlib/djpeg -dct int -fast -ppm -outfile testoutint.ppm ${CMAKE_SOURCE_DIR}/testimages/testorig.jpg)
|
||||||
add_test(cjpeg-static-prog-cmp ${CMAKE_COMMAND} -E compare_files ${CMAKE_SOURCE_DIR}/testimgp.jpg testoutp.jpg)
|
add_test(djpeg-int-cmp ${CMAKE_COMMAND} -E compare_files ${CMAKE_SOURCE_DIR}/testimages/testimgint.ppm testoutint.ppm)
|
||||||
add_test(jpegtran-static-prog jpegtran-static -outfile testoutt.jpg testoutp.jpg)
|
add_test(djpeg-fast sharedlib/djpeg -dct fast -ppm -outfile testoutfst.ppm ${CMAKE_SOURCE_DIR}/testimages/testorig.jpg)
|
||||||
add_test(jpegtran-static-prog-cmp ${CMAKE_COMMAND} -E compare_files ${CMAKE_SOURCE_DIR}/testimgint.jpg testoutt.jpg)
|
add_test(djpeg-fast-cmp ${CMAKE_COMMAND} -E compare_files ${CMAKE_SOURCE_DIR}/testimages/testimgfst.ppm testoutfst.ppm)
|
||||||
|
add_test(djpeg-float sharedlib/djpeg -dct float -ppm -outfile testoutflt.ppm ${CMAKE_SOURCE_DIR}/testimages/testorig.jpg)
|
||||||
|
if(WITH_SIMD)
|
||||||
|
add_test(djpeg-float-cmp ${CMAKE_COMMAND} -E compare_files ${CMAKE_SOURCE_DIR}/testimages/testimgflt.ppm testoutflt.ppm)
|
||||||
|
else()
|
||||||
|
add_test(djpeg-float-cmp ${CMAKE_COMMAND} -E compare_files ${CMAKE_SOURCE_DIR}/testimages/testorig.ppm testoutflt.ppm)
|
||||||
|
endif()
|
||||||
|
add_test(djpeg-int-1_2 sharedlib/djpeg -dct int -scale 1/2 -ppm -outfile testoutint1_2.ppm ${CMAKE_SOURCE_DIR}/testimages/testorig.jpg)
|
||||||
|
add_test(djpeg-int-1_2-cmp ${CMAKE_COMMAND} -E compare_files ${CMAKE_SOURCE_DIR}/testimages/testimgint1_2.ppm testoutint1_2.ppm)
|
||||||
|
add_test(djpeg-fast-1_2 sharedlib/djpeg -dct fast -scale 1/2 -ppm -outfile testoutfst1_2.ppm ${CMAKE_SOURCE_DIR}/testimages/testorig.jpg)
|
||||||
|
add_test(djpeg-fast-1_2-cmp ${CMAKE_COMMAND} -E compare_files ${CMAKE_SOURCE_DIR}/testimages/testimgfst1_2.ppm testoutfst1_2.ppm)
|
||||||
|
add_test(djpeg-int-1_4 sharedlib/djpeg -dct int -scale 1/4 -ppm -outfile testoutint1_4.ppm ${CMAKE_SOURCE_DIR}/testimages/testorig.jpg)
|
||||||
|
add_test(djpeg-int-1_4-cmp ${CMAKE_COMMAND} -E compare_files ${CMAKE_SOURCE_DIR}/testimages/testimgint1_4.ppm testoutint1_4.ppm)
|
||||||
|
add_test(djpeg-fast-1_4 sharedlib/djpeg -dct fast -scale 1/4 -ppm -outfile testoutfst1_4.ppm ${CMAKE_SOURCE_DIR}/testimages/testorig.jpg)
|
||||||
|
add_test(djpeg-fast-1_4-cmp ${CMAKE_COMMAND} -E compare_files ${CMAKE_SOURCE_DIR}/testimages/testimgfst1_4.ppm testoutfst1_4.ppm)
|
||||||
|
add_test(djpeg-int-1_8 sharedlib/djpeg -dct int -scale 1/8 -ppm -outfile testoutint1_8.ppm ${CMAKE_SOURCE_DIR}/testimages/testorig.jpg)
|
||||||
|
add_test(djpeg-int-1_8-cmp ${CMAKE_COMMAND} -E compare_files ${CMAKE_SOURCE_DIR}/testimages/testimgint1_8.ppm testoutint1_8.ppm)
|
||||||
|
add_test(djpeg-fast-1_8 sharedlib/djpeg -dct fast -scale 1/8 -ppm -outfile testoutfst1_8.ppm ${CMAKE_SOURCE_DIR}/testimages/testorig.jpg)
|
||||||
|
add_test(djpeg-fast-1_8-cmp ${CMAKE_COMMAND} -E compare_files ${CMAKE_SOURCE_DIR}/testimages/testimgfst1_8.ppm testoutfst1_8.ppm)
|
||||||
|
add_test(djpeg-256 sharedlib/djpeg -dct int -bmp -colors 256 -outfile testout.bmp ${CMAKE_SOURCE_DIR}/testimages/testorig.jpg)
|
||||||
|
add_test(djpeg-256-cmp ${CMAKE_COMMAND} -E compare_files ${CMAKE_SOURCE_DIR}/testimages/testimg.bmp testout.bmp)
|
||||||
|
add_test(cjpeg-prog sharedlib/cjpeg -dct int -progressive -outfile testoutp.jpg ${CMAKE_SOURCE_DIR}/testimages/testorig.ppm)
|
||||||
|
add_test(cjpeg-prog-cmp ${CMAKE_COMMAND} -E compare_files ${CMAKE_SOURCE_DIR}/testimages/testimgp.jpg testoutp.jpg)
|
||||||
|
add_test(jpegtran-prog sharedlib/jpegtran -outfile testoutt.jpg testoutp.jpg)
|
||||||
|
add_test(jpegtran-prog-cmp ${CMAKE_COMMAND} -E compare_files ${CMAKE_SOURCE_DIR}/testimages/testimgint.jpg testoutt.jpg)
|
||||||
if(WITH_ARITH_ENC)
|
if(WITH_ARITH_ENC)
|
||||||
add_test(cjpeg-static-ari cjpeg-static -dct int -arithmetic -outfile testoutari.jpg ${CMAKE_SOURCE_DIR}/testorig.ppm)
|
add_test(cjpeg-ari sharedlib/cjpeg -dct int -arithmetic -outfile testoutari.jpg ${CMAKE_SOURCE_DIR}/testimages/testorig.ppm)
|
||||||
add_test(cjpeg-static-ari-cmp ${CMAKE_COMMAND} -E compare_files ${CMAKE_SOURCE_DIR}/testimgari.jpg testoutari.jpg)
|
add_test(cjpeg-ari-cmp ${CMAKE_COMMAND} -E compare_files ${CMAKE_SOURCE_DIR}/testimages/testimgari.jpg testoutari.jpg)
|
||||||
add_test(jpegtran-static-toari jpegtran-static -arithmetic -outfile testouta.jpg ${CMAKE_SOURCE_DIR}/testimgint.jpg)
|
add_test(jpegtran-toari sharedlib/jpegtran -arithmetic -outfile testouta.jpg ${CMAKE_SOURCE_DIR}/testimages/testimgint.jpg)
|
||||||
add_test(jpegtran-static-toari-cmp ${CMAKE_COMMAND} -E compare_files ${CMAKE_SOURCE_DIR}/testimgari.jpg testouta.jpg)
|
add_test(jpegtran-toari-cmp ${CMAKE_COMMAND} -E compare_files ${CMAKE_SOURCE_DIR}/testimages/testimgari.jpg testouta.jpg)
|
||||||
endif()
|
endif()
|
||||||
if(WITH_ARITH_DEC)
|
if(WITH_ARITH_DEC)
|
||||||
add_test(djpeg-static-ari djpeg-static -dct int -fast -ppm -outfile testoutari.ppm ${CMAKE_SOURCE_DIR}/testimgari.jpg)
|
add_test(djpeg-ari sharedlib/djpeg -dct int -fast -ppm -outfile testoutari.ppm ${CMAKE_SOURCE_DIR}/testimages/testimgari.jpg)
|
||||||
add_test(djpeg-static-ari-cmp ${CMAKE_COMMAND} -E compare_files ${CMAKE_SOURCE_DIR}/testimgari.ppm testoutari.ppm)
|
add_test(djpeg-ari-cmp ${CMAKE_COMMAND} -E compare_files ${CMAKE_SOURCE_DIR}/testimages/testimgari.ppm testoutari.ppm)
|
||||||
add_test(jpegtran-static-fromari jpegtran-static -outfile testouta.jpg ${CMAKE_SOURCE_DIR}/testimgari.jpg)
|
add_test(jpegtran-fromari sharedlib/jpegtran -outfile testouta.jpg ${CMAKE_SOURCE_DIR}/testimages/testimgari.jpg)
|
||||||
add_test(jpegtran-static-fromari-cmp ${CMAKE_COMMAND} -E compare_files ${CMAKE_SOURCE_DIR}/testimgint.jpg testouta.jpg)
|
add_test(jpegtran-fromari-cmp ${CMAKE_COMMAND} -E compare_files ${CMAKE_SOURCE_DIR}/testimages/testimgint.jpg testouta.jpg)
|
||||||
endif()
|
endif()
|
||||||
add_test(jpegtran-static-crop jpegtran-static -crop 120x90+20+50 -transpose -perfect -outfile testoutcrop.jpg ${CMAKE_SOURCE_DIR}/testorig.jpg)
|
add_test(jpegtran-crop sharedlib/jpegtran -crop 120x90+20+50 -transpose -perfect -outfile testoutcrop.jpg ${CMAKE_SOURCE_DIR}/testimages/testorig.jpg)
|
||||||
add_test(jpegtran-static-crop-cmp ${CMAKE_COMMAND} -E compare_files ${CMAKE_SOURCE_DIR}/testimgcrop.jpg testoutcrop.jpg)
|
add_test(jpegtran-crop-cmp ${CMAKE_COMMAND} -E compare_files ${CMAKE_SOURCE_DIR}/testimages/testimgcrop.jpg testoutcrop.jpg)
|
||||||
|
|
||||||
|
add_test(tjunittest-static tjunittest-static)
|
||||||
|
add_test(tjunittest-static-alloc tjunittest-static -alloc)
|
||||||
|
add_test(tjunittest-static-yuv tjunittest-static -yuv)
|
||||||
|
add_test(cjpeg-static-int cjpeg-static -dct int -outfile testoutint.jpg ${CMAKE_SOURCE_DIR}/testimages/testorig.ppm)
|
||||||
|
add_test(cjpeg-static-int-cmp ${CMAKE_COMMAND} -E compare_files ${CMAKE_SOURCE_DIR}/testimages/testimgint.jpg testoutint.jpg)
|
||||||
|
add_test(cjpeg-static-fast cjpeg-static -dct fast -opt -outfile testoutfst.jpg ${CMAKE_SOURCE_DIR}/testimages/testorig.ppm)
|
||||||
|
add_test(cjpeg-static-fast-cmp ${CMAKE_COMMAND} -E compare_files ${CMAKE_SOURCE_DIR}/testimages/testimgfst.jpg testoutfst.jpg)
|
||||||
|
add_test(cjpeg-static-fast-100 cjpeg-static -dct fast -quality 100 -opt -outfile testoutfst100.jpg ${CMAKE_SOURCE_DIR}/testimages/testorig.ppm)
|
||||||
|
add_test(cjpeg-static-fast-100-cmp ${CMAKE_COMMAND} -E compare_files ${CMAKE_SOURCE_DIR}/testimages/testimgfst100.jpg testoutfst100.jpg)
|
||||||
|
add_test(cjpeg-static-float cjpeg-static -dct float -outfile testoutflt.jpg ${CMAKE_SOURCE_DIR}/testimages/testorig.ppm)
|
||||||
|
if(WITH_SIMD)
|
||||||
|
add_test(cjpeg-static-float-cmp ${CMAKE_COMMAND} -E compare_files ${CMAKE_SOURCE_DIR}/testimages/testimgflt.jpg testoutflt.jpg)
|
||||||
|
else()
|
||||||
|
add_test(cjpeg-static-float-cmp ${CMAKE_COMMAND} -E compare_files ${CMAKE_SOURCE_DIR}/testimages/testimgflt-nosimd.jpg testoutflt.jpg)
|
||||||
|
endif()
|
||||||
|
add_test(cjpeg-static-int-gray cjpeg-static -dct int -grayscale -outfile testoutgray.jpg ${CMAKE_SOURCE_DIR}/testimages/testorig.ppm)
|
||||||
|
add_test(cjpeg-static-int-gray-cmp ${CMAKE_COMMAND} -E compare_files ${CMAKE_SOURCE_DIR}/testimages/testimggray.jpg testoutgray.jpg)
|
||||||
|
add_test(djpeg-static-int djpeg-static -dct int -fast -ppm -outfile testoutint.ppm ${CMAKE_SOURCE_DIR}/testimages/testorig.jpg)
|
||||||
|
add_test(djpeg-static-int-cmp ${CMAKE_COMMAND} -E compare_files ${CMAKE_SOURCE_DIR}/testimages/testimgint.ppm testoutint.ppm)
|
||||||
|
add_test(djpeg-static-fast djpeg-static -dct fast -ppm -outfile testoutfst.ppm ${CMAKE_SOURCE_DIR}/testimages/testorig.jpg)
|
||||||
|
add_test(djpeg-static-fast-cmp ${CMAKE_COMMAND} -E compare_files ${CMAKE_SOURCE_DIR}/testimages/testimgfst.ppm testoutfst.ppm)
|
||||||
|
add_test(djpeg-static-float djpeg-static -dct float -ppm -outfile testoutflt.ppm ${CMAKE_SOURCE_DIR}/testimages/testorig.jpg)
|
||||||
|
if(WITH_SIMD)
|
||||||
|
add_test(djpeg-static-float-cmp ${CMAKE_COMMAND} -E compare_files ${CMAKE_SOURCE_DIR}/testimages/testimgflt.ppm testoutflt.ppm)
|
||||||
|
else()
|
||||||
|
add_test(djpeg-static-float-cmp ${CMAKE_COMMAND} -E compare_files ${CMAKE_SOURCE_DIR}/testimages/testorig.ppm testoutflt.ppm)
|
||||||
|
endif()
|
||||||
|
add_test(djpeg-static-int-1_2 djpeg-static -dct int -scale 1/2 -ppm -outfile testoutint1_2.ppm ${CMAKE_SOURCE_DIR}/testimages/testorig.jpg)
|
||||||
|
add_test(djpeg-static-int-1_2-cmp ${CMAKE_COMMAND} -E compare_files ${CMAKE_SOURCE_DIR}/testimages/testimgint1_2.ppm testoutint1_2.ppm)
|
||||||
|
add_test(djpeg-static-fast-1_2 djpeg-static -dct fast -scale 1/2 -ppm -outfile testoutfst1_2.ppm ${CMAKE_SOURCE_DIR}/testimages/testorig.jpg)
|
||||||
|
add_test(djpeg-static-fast-1_2-cmp ${CMAKE_COMMAND} -E compare_files ${CMAKE_SOURCE_DIR}/testimages/testimgfst1_2.ppm testoutfst1_2.ppm)
|
||||||
|
add_test(djpeg-static-int-1_4 djpeg-static -dct int -scale 1/4 -ppm -outfile testoutint1_4.ppm ${CMAKE_SOURCE_DIR}/testimages/testorig.jpg)
|
||||||
|
add_test(djpeg-static-int-1_4-cmp ${CMAKE_COMMAND} -E compare_files ${CMAKE_SOURCE_DIR}/testimages/testimgint1_4.ppm testoutint1_4.ppm)
|
||||||
|
add_test(djpeg-static-fast-1_4 djpeg-static -dct fast -scale 1/4 -ppm -outfile testoutfst1_4.ppm ${CMAKE_SOURCE_DIR}/testimages/testorig.jpg)
|
||||||
|
add_test(djpeg-static-fast-1_4-cmp ${CMAKE_COMMAND} -E compare_files ${CMAKE_SOURCE_DIR}/testimages/testimgfst1_4.ppm testoutfst1_4.ppm)
|
||||||
|
add_test(djpeg-static-int-1_8 djpeg-static -dct int -scale 1/8 -ppm -outfile testoutint1_8.ppm ${CMAKE_SOURCE_DIR}/testimages/testorig.jpg)
|
||||||
|
add_test(djpeg-static-int-1_8-cmp ${CMAKE_COMMAND} -E compare_files ${CMAKE_SOURCE_DIR}/testimages/testimgint1_8.ppm testoutint1_8.ppm)
|
||||||
|
add_test(djpeg-static-fast-1_8 djpeg-static -dct fast -scale 1/8 -ppm -outfile testoutfst1_8.ppm ${CMAKE_SOURCE_DIR}/testimages/testorig.jpg)
|
||||||
|
add_test(djpeg-static-fast-1_8-cmp ${CMAKE_COMMAND} -E compare_files ${CMAKE_SOURCE_DIR}/testimages/testimgfst1_8.ppm testoutfst1_8.ppm)
|
||||||
|
add_test(djpeg-static-256 djpeg-static -dct int -bmp -colors 256 -outfile testout.bmp ${CMAKE_SOURCE_DIR}/testimages/testorig.jpg)
|
||||||
|
add_test(djpeg-static-256-cmp ${CMAKE_COMMAND} -E compare_files ${CMAKE_SOURCE_DIR}/testimages/testimg.bmp testout.bmp)
|
||||||
|
add_test(cjpeg-static-prog cjpeg-static -dct int -progressive -outfile testoutp.jpg ${CMAKE_SOURCE_DIR}/testimages/testorig.ppm)
|
||||||
|
add_test(cjpeg-static-prog-cmp ${CMAKE_COMMAND} -E compare_files ${CMAKE_SOURCE_DIR}/testimages/testimgp.jpg testoutp.jpg)
|
||||||
|
add_test(jpegtran-static-prog jpegtran-static -outfile testoutt.jpg testoutp.jpg)
|
||||||
|
add_test(jpegtran-static-prog-cmp ${CMAKE_COMMAND} -E compare_files ${CMAKE_SOURCE_DIR}/testimages/testimgint.jpg testoutt.jpg)
|
||||||
|
if(WITH_ARITH_ENC)
|
||||||
|
add_test(cjpeg-static-ari cjpeg-static -dct int -arithmetic -outfile testoutari.jpg ${CMAKE_SOURCE_DIR}/testimages/testorig.ppm)
|
||||||
|
add_test(cjpeg-static-ari-cmp ${CMAKE_COMMAND} -E compare_files ${CMAKE_SOURCE_DIR}/testimages/testimgari.jpg testoutari.jpg)
|
||||||
|
add_test(jpegtran-static-toari jpegtran-static -arithmetic -outfile testouta.jpg ${CMAKE_SOURCE_DIR}/testimages/testimgint.jpg)
|
||||||
|
add_test(jpegtran-static-toari-cmp ${CMAKE_COMMAND} -E compare_files ${CMAKE_SOURCE_DIR}/testimages/testimgari.jpg testouta.jpg)
|
||||||
|
endif()
|
||||||
|
if(WITH_ARITH_DEC)
|
||||||
|
add_test(djpeg-static-ari djpeg-static -dct int -fast -ppm -outfile testoutari.ppm ${CMAKE_SOURCE_DIR}/testimages/testimgari.jpg)
|
||||||
|
add_test(djpeg-static-ari-cmp ${CMAKE_COMMAND} -E compare_files ${CMAKE_SOURCE_DIR}/testimages/testimgari.ppm testoutari.ppm)
|
||||||
|
add_test(jpegtran-static-fromari jpegtran-static -outfile testouta.jpg ${CMAKE_SOURCE_DIR}/testimages/testimgari.jpg)
|
||||||
|
add_test(jpegtran-static-fromari-cmp ${CMAKE_COMMAND} -E compare_files ${CMAKE_SOURCE_DIR}/testimages/testimgint.jpg testouta.jpg)
|
||||||
|
endif()
|
||||||
|
add_test(jpegtran-static-crop jpegtran-static -crop 120x90+20+50 -transpose -perfect -outfile testoutcrop.jpg ${CMAKE_SOURCE_DIR}/testimages/testorig.jpg)
|
||||||
|
add_test(jpegtran-static-crop-cmp ${CMAKE_COMMAND} -E compare_files ${CMAKE_SOURCE_DIR}/testimages/testimgcrop.jpg testoutcrop.jpg)
|
||||||
|
|
||||||
|
add_custom_target(testclean COMMAND ${CMAKE_COMMAND} -P
|
||||||
|
${CMAKE_SOURCE_DIR}/cmakescripts/testclean.cmake)
|
||||||
|
|
||||||
|
|
||||||
#
|
#
|
||||||
@@ -313,6 +395,10 @@ if(64BIT)
|
|||||||
set(INST_DEFS ${INST_DEFS} -DWIN64)
|
set(INST_DEFS ${INST_DEFS} -DWIN64)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
|
if(WITH_JAVA)
|
||||||
|
set(INST_DEFS ${INST_DEFS} -DJAVA)
|
||||||
|
endif()
|
||||||
|
|
||||||
if(MSVC_IDE)
|
if(MSVC_IDE)
|
||||||
set(INST_DEFS ${INST_DEFS} "-DBUILDDIR=${CMAKE_CFG_INTDIR}\\")
|
set(INST_DEFS ${INST_DEFS} "-DBUILDDIR=${CMAKE_CFG_INTDIR}\\")
|
||||||
else()
|
else()
|
||||||
@@ -324,18 +410,19 @@ configure_file(release/libjpeg-turbo.nsi.in libjpeg-turbo.nsi @ONLY)
|
|||||||
add_custom_target(installer
|
add_custom_target(installer
|
||||||
makensis -nocd ${INST_DEFS} libjpeg-turbo.nsi
|
makensis -nocd ${INST_DEFS} libjpeg-turbo.nsi
|
||||||
DEPENDS jpeg jpeg-static turbojpeg turbojpeg-static rdjpgcom wrjpgcom
|
DEPENDS jpeg jpeg-static turbojpeg turbojpeg-static rdjpgcom wrjpgcom
|
||||||
cjpeg djpeg jpegtran jpgtest
|
cjpeg djpeg jpegtran tjbench
|
||||||
SOURCES libjpeg-turbo.nsi)
|
SOURCES libjpeg-turbo.nsi)
|
||||||
|
|
||||||
install(TARGETS jpeg-static turbojpeg turbojpeg-static rdjpgcom wrjpgcom jpgtest
|
install(TARGETS jpeg-static turbojpeg turbojpeg-static rdjpgcom wrjpgcom tjbench
|
||||||
ARCHIVE DESTINATION lib
|
ARCHIVE DESTINATION lib
|
||||||
LIBRARY DESTINATION lib
|
LIBRARY DESTINATION lib
|
||||||
RUNTIME DESTINATION bin
|
RUNTIME DESTINATION bin
|
||||||
)
|
)
|
||||||
|
|
||||||
install(FILES ${CMAKE_SOURCE_DIR}/LGPL.txt ${CMAKE_SOURCE_DIR}/LICENSE.txt
|
install(FILES ${CMAKE_SOURCE_DIR}/README ${CMAKE_SOURCE_DIR}/README-turbo.txt
|
||||||
${CMAKE_SOURCE_DIR}/README ${CMAKE_SOURCE_DIR}/README-turbo.txt
|
${CMAKE_SOURCE_DIR}/example.c ${CMAKE_SOURCE_DIR}/libjpeg.txt
|
||||||
${CMAKE_SOURCE_DIR}/libjpeg.txt ${CMAKE_SOURCE_DIR}/usage.txt
|
${CMAKE_SOURCE_DIR}/structure.txt ${CMAKE_SOURCE_DIR}/usage.txt
|
||||||
|
${CMAKE_SOURCE_DIR}/wizard.txt
|
||||||
DESTINATION doc)
|
DESTINATION doc)
|
||||||
|
|
||||||
install(FILES ${CMAKE_BINARY_DIR}/jconfig.h ${CMAKE_SOURCE_DIR}/jerror.h
|
install(FILES ${CMAKE_BINARY_DIR}/jconfig.h ${CMAKE_SOURCE_DIR}/jerror.h
|
||||||
|
|||||||
172
ChangeLog.txt
@@ -1,3 +1,159 @@
|
|||||||
|
1.2.1
|
||||||
|
=====
|
||||||
|
|
||||||
|
[1] Creating or decoding a JPEG file that uses the RGB colorspace should now
|
||||||
|
properly work when the input or output colorspace is one of the libjpeg-turbo
|
||||||
|
colorspace extensions.
|
||||||
|
|
||||||
|
[2] When libjpeg-turbo was built without SIMD support and merged (non-fancy)
|
||||||
|
upsampling was used along with an alpha-enabled colorspace during
|
||||||
|
decompression, the unused byte of the decompressed pixels was not being set to
|
||||||
|
0xFF. This has been fixed. TJUnitTest has also been extended to test for the
|
||||||
|
correct behavior of the colorspace extensions when merged upsampling is used.
|
||||||
|
|
||||||
|
[3] Fixed a bug whereby the libjpeg-turbo SSE2 SIMD code would not preserve the
|
||||||
|
upper 64 bits of xmm6 and xmm7 on Win64 platforms, which violated the Win64
|
||||||
|
calling conventions.
|
||||||
|
|
||||||
|
[4] Fixed a regression caused by 1.2.0[6] whereby decompressing corrupt JPEG
|
||||||
|
images (specifically, images in which the component count was erroneously set
|
||||||
|
to a large value) would cause libjpeg-turbo to segfault.
|
||||||
|
|
||||||
|
[5] Worked around a severe performance issue with "Bobcat" (AMD Embedded APU)
|
||||||
|
processors. The MASKMOVDQU instruction, which was used by the libjpeg-turbo
|
||||||
|
SSE2 SIMD code, is apparently implemented in microcode on AMD processors, and
|
||||||
|
it is painfully slow on Bobcat processors in particular. Eliminating the use
|
||||||
|
of this instruction improved performance by an order of magnitude on Bobcat
|
||||||
|
processors and by a small amount (typically 5%) on AMD desktop processors.
|
||||||
|
|
||||||
|
[6] Added SIMD acceleration for performing 4:2:2 upsampling on NEON-capable ARM
|
||||||
|
platforms. This speeds up the decompression of 4:2:2 JPEGs by 20-25% on such
|
||||||
|
platforms.
|
||||||
|
|
||||||
|
[7] Fixed a regression caused by 1.2.0[2] whereby, on Linux/x86 platforms
|
||||||
|
running the 32-bit SSE2 SIMD code in libjpeg-turbo, decompressing a 4:2:0 or
|
||||||
|
4:2:2 JPEG image into a 32-bit (RGBX, BGRX, etc.) buffer without using fancy
|
||||||
|
upsampling would produce several incorrect columns of pixels at the right-hand
|
||||||
|
side of the output image if each row in the output image was not evenly
|
||||||
|
divisible by 16 bytes.
|
||||||
|
|
||||||
|
[8] Fixed an issue whereby attempting to build the SIMD extensions with Xcode
|
||||||
|
4.3 on OS X platforms would cause NASM to return numerous errors of the form
|
||||||
|
"'%define' expects a macro identifier".
|
||||||
|
|
||||||
|
[9] Added flags to the TurboJPEG API that allow the caller to force the use of
|
||||||
|
either the fast or the accurate DCT/IDCT algorithms in the underlying codec.
|
||||||
|
|
||||||
|
|
||||||
|
1.2.0
|
||||||
|
=====
|
||||||
|
|
||||||
|
[1] Fixed build issue with YASM on Unix systems (the libjpeg-turbo build system
|
||||||
|
was not adding the current directory to the assembler include path, so YASM
|
||||||
|
was not able to find jsimdcfg.inc.)
|
||||||
|
|
||||||
|
[2] Fixed out-of-bounds read in SSE2 SIMD code that occurred when decompressing
|
||||||
|
a JPEG image to a bitmap buffer whose size was not a multiple of 16 bytes.
|
||||||
|
This was more of an annoyance than an actual bug, since it did not cause any
|
||||||
|
actual run-time problems, but the issue showed up when running libjpeg-turbo in
|
||||||
|
valgrind. See http://crbug.com/72399 for more information.
|
||||||
|
|
||||||
|
[3] Added a compile-time macro (LIBJPEG_TURBO_VERSION) that can be used to
|
||||||
|
check the version of libjpeg-turbo against which an application was compiled.
|
||||||
|
|
||||||
|
[4] Added new RGBA/BGRA/ABGR/ARGB colorspace extension constants (libjpeg API)
|
||||||
|
and pixel formats (TurboJPEG API), which allow applications to specify that,
|
||||||
|
when decompressing to a 4-component RGB buffer, the unused byte should be set
|
||||||
|
to 0xFF so that it can be interpreted as an opaque alpha channel.
|
||||||
|
|
||||||
|
[5] Fixed regression issue whereby DevIL failed to build against libjpeg-turbo
|
||||||
|
because libjpeg-turbo's distributed version of jconfig.h contained an INLINE
|
||||||
|
macro, which conflicted with a similar macro in DevIL. This macro is used only
|
||||||
|
internally when building libjpeg-turbo, so it was moved into config.h.
|
||||||
|
|
||||||
|
[6] libjpeg-turbo will now correctly decompress erroneous CMYK/YCCK JPEGs whose
|
||||||
|
K component is assigned a component ID of 1 instead of 4. Although these files
|
||||||
|
are in violation of the spec, other JPEG implementations handle them
|
||||||
|
correctly.
|
||||||
|
|
||||||
|
[7] Added ARM v6 and ARM v7 architectures to libjpeg.a and libturbojpeg.a in
|
||||||
|
the official OS X distribution package, so that those libraries can be used to
|
||||||
|
build both OS X and iOS applications.
|
||||||
|
|
||||||
|
|
||||||
|
1.1.90 (1.2 beta1)
|
||||||
|
==================
|
||||||
|
|
||||||
|
[1] Added a Java wrapper for the TurboJPEG API. See java/README for more
|
||||||
|
details.
|
||||||
|
|
||||||
|
[2] The TurboJPEG API can now be used to scale down images during
|
||||||
|
decompression.
|
||||||
|
|
||||||
|
[3] Added SIMD routines for RGB-to-grayscale color conversion, which
|
||||||
|
significantly improves the performance of grayscale JPEG compression from an
|
||||||
|
RGB source image.
|
||||||
|
|
||||||
|
[4] Improved the performance of the C color conversion routines, which are used
|
||||||
|
on platforms for which SIMD acceleration is not available.
|
||||||
|
|
||||||
|
[5] Added a function to the TurboJPEG API that performs lossless transforms.
|
||||||
|
This function is implemented using the same back end as jpegtran, but it
|
||||||
|
performs transcoding entirely in memory and allows multiple transforms and/or
|
||||||
|
crop operations to be batched together, so the source coefficients only need to
|
||||||
|
be read once. This is useful when generating image tiles from a single source
|
||||||
|
JPEG.
|
||||||
|
|
||||||
|
[6] Added tests for the new TurboJPEG scaled decompression and lossless
|
||||||
|
transform features to tjbench (the TurboJPEG benchmark, formerly called
|
||||||
|
"jpgtest".)
|
||||||
|
|
||||||
|
[7] Added support for 4:4:0 (transposed 4:2:2) subsampling in TurboJPEG, which
|
||||||
|
was necessary in order for it to read 4:2:2 JPEG files that had been losslessly
|
||||||
|
transposed or rotated 90 degrees.
|
||||||
|
|
||||||
|
[8] All legacy VirtualGL code has been re-factored, and this has allowed
|
||||||
|
libjpeg-turbo, in its entirety, to be re-licensed under a BSD-style license.
|
||||||
|
|
||||||
|
[9] libjpeg-turbo can now be built with YASM.
|
||||||
|
|
||||||
|
[10] Added SIMD acceleration for ARM Linux and iOS platforms that support
|
||||||
|
NEON instructions.
|
||||||
|
|
||||||
|
[11] Refactored the TurboJPEG C API and documented it using Doxygen. The
|
||||||
|
TurboJPEG 1.2 API uses pixel formats to define the size and component order of
|
||||||
|
the uncompressed source/destination images, and it includes a more efficient
|
||||||
|
version of TJBUFSIZE() that computes a worst-case JPEG size based on the level
|
||||||
|
of chrominance subsampling. The refactored implementation of TurboJPEG/OSS
|
||||||
|
now uses the libjpeg memory source and destination managers, which allows the
|
||||||
|
TurboJPEG compressor to grow the JPEG buffer as necessary.
|
||||||
|
|
||||||
|
[12] Eliminated errors in the output of jpegtran on Windows that occurred when
|
||||||
|
the application was invoked using I/O redirection
|
||||||
|
(jpegtran <input.jpg >output.jpg).
|
||||||
|
|
||||||
|
[13] The inclusion of libjpeg v7 and v8 emulation as well as arithmetic coding
|
||||||
|
support in libjpeg-turbo v1.1.0 introduced several new error constants in
|
||||||
|
jerror.h, and these were mistakenly enabled for all emulation modes, causing
|
||||||
|
the error enum in libjpeg-turbo to sometimes have different values than the
|
||||||
|
same enum in libjpeg. This represents an ABI incompatibility, and it caused
|
||||||
|
problems with rare applications that took specific action based on a particular
|
||||||
|
error value. The fix was to include the new error constants conditionally
|
||||||
|
based on whether libjpeg v7 or v8 emulation was enabled.
|
||||||
|
|
||||||
|
[14] Fixed an issue whereby Windows applications that used libjpeg-turbo would
|
||||||
|
fail to compile if the Windows system headers were included before jpeglib.h.
|
||||||
|
This issue was caused by a conflict in the definition of the INT32 type.
|
||||||
|
|
||||||
|
[15] Fixed 32-bit supplementary package for amd64 Debian systems, which was
|
||||||
|
broken by enhancements to the packaging system in 1.1.
|
||||||
|
|
||||||
|
[16] When decompressing a JPEG image using an output colorspace of
|
||||||
|
JCS_EXT_RGBX, JCS_EXT_BGRX, JCS_EXT_XBGR, or JCS_EXT_XRGB, libjpeg-turbo will
|
||||||
|
now set the unused byte to 0xFF, which allows applications to interpret that
|
||||||
|
byte as an alpha channel (0xFF = opaque).
|
||||||
|
|
||||||
|
|
||||||
1.1.1
|
1.1.1
|
||||||
=====
|
=====
|
||||||
|
|
||||||
@@ -75,7 +231,8 @@ README-turbo.txt for more details. This feature was sponsored by CamTrace SAS.
|
|||||||
|
|
||||||
[2] Created a new CMake-based build system for the Visual C++ and MinGW builds.
|
[2] Created a new CMake-based build system for the Visual C++ and MinGW builds.
|
||||||
|
|
||||||
[3] TurboJPEG/OSS can now compress from/decompress to grayscale bitmaps.
|
[3] Grayscale bitmaps can now be compressed from/decompressed to using the
|
||||||
|
TurboJPEG API.
|
||||||
|
|
||||||
[4] jpgtest can now be used to test decompression performance with existing
|
[4] jpgtest can now be used to test decompression performance with existing
|
||||||
JPEG images.
|
JPEG images.
|
||||||
@@ -91,11 +248,12 @@ when the library is built with libjpeg v6b emulation.
|
|||||||
[7] Added arithmetic encoding and decoding support (can be disabled with
|
[7] Added arithmetic encoding and decoding support (can be disabled with
|
||||||
configure or CMake options)
|
configure or CMake options)
|
||||||
|
|
||||||
[8] Added a TJ_YUV flag to TurboJPEG/OSS which causes both the compressor and
|
[8] Added a TJ_YUV flag to the TurboJPEG API, which causes both the compressor
|
||||||
decompressor to output planar YUV images.
|
and decompressor to output planar YUV images.
|
||||||
|
|
||||||
[9] Added an extended version of tjDecompressHeader() to TurboJPEG/OSS which
|
[9] Added an extended version of tjDecompressHeader() to the TurboJPEG API,
|
||||||
allows the caller to determine the type of subsampling used in a JPEG image.
|
which allows the caller to determine the type of subsampling used in a JPEG
|
||||||
|
image.
|
||||||
|
|
||||||
[10] Added further protections against invalid Huffman codes.
|
[10] Added further protections against invalid Huffman codes.
|
||||||
|
|
||||||
@@ -107,7 +265,7 @@ allows the caller to determine the type of subsampling used in a JPEG image.
|
|||||||
from a corrupt JPEG image.) Previously, these would cause libjpeg-turbo to
|
from a corrupt JPEG image.) Previously, these would cause libjpeg-turbo to
|
||||||
crash under certain circumstances.
|
crash under certain circumstances.
|
||||||
|
|
||||||
[2] Fixed typo in SIMD dispatch routines which was causing 4:2:2 upsampling to
|
[2] Fixed typo in SIMD dispatch routines that was causing 4:2:2 upsampling to
|
||||||
be used instead of 4:2:0 when decompressing JPEG images using SSE2 code.
|
be used instead of 4:2:0 when decompressing JPEG images using SSE2 code.
|
||||||
|
|
||||||
[3] configure script will now automatically determine whether the
|
[3] configure script will now automatically determine whether the
|
||||||
@@ -128,7 +286,7 @@ static libraries can always be found in /opt/libjpeg-turbo/lib32, and the
|
|||||||
[3] The Unix/Linux distribution packages now include the libjpeg run-time
|
[3] The Unix/Linux distribution packages now include the libjpeg run-time
|
||||||
programs (cjpeg, etc.) and man pages.
|
programs (cjpeg, etc.) and man pages.
|
||||||
|
|
||||||
[4] Created a 32-bit supplementary package for amd64 Debian systems which
|
[4] Created a 32-bit supplementary package for amd64 Debian systems, which
|
||||||
contains just the 32-bit libjpeg-turbo libraries.
|
contains just the 32-bit libjpeg-turbo libraries.
|
||||||
|
|
||||||
[5] Moved the libraries from */lib32 to */lib in the i386 Debian package.
|
[5] Moved the libraries from */lib32 to */lib in the i386 Debian package.
|
||||||
|
|||||||
504
LGPL.txt
@@ -1,504 +0,0 @@
|
|||||||
GNU LESSER GENERAL PUBLIC LICENSE
|
|
||||||
Version 2.1, February 1999
|
|
||||||
|
|
||||||
Copyright (C) 1991, 1999 Free Software Foundation, Inc.
|
|
||||||
59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
|
||||||
Everyone is permitted to copy and distribute verbatim copies
|
|
||||||
of this license document, but changing it is not allowed.
|
|
||||||
|
|
||||||
[This is the first released version of the Lesser GPL. It also counts
|
|
||||||
as the successor of the GNU Library Public License, version 2, hence
|
|
||||||
the version number 2.1.]
|
|
||||||
|
|
||||||
Preamble
|
|
||||||
|
|
||||||
The licenses for most software are designed to take away your
|
|
||||||
freedom to share and change it. By contrast, the GNU General Public
|
|
||||||
Licenses are intended to guarantee your freedom to share and change
|
|
||||||
free software--to make sure the software is free for all its users.
|
|
||||||
|
|
||||||
This license, the Lesser General Public License, applies to some
|
|
||||||
specially designated software packages--typically libraries--of the
|
|
||||||
Free Software Foundation and other authors who decide to use it. You
|
|
||||||
can use it too, but we suggest you first think carefully about whether
|
|
||||||
this license or the ordinary General Public License is the better
|
|
||||||
strategy to use in any particular case, based on the explanations below.
|
|
||||||
|
|
||||||
When we speak of free software, we are referring to freedom of use,
|
|
||||||
not price. Our General Public Licenses are designed to make sure that
|
|
||||||
you have the freedom to distribute copies of free software (and charge
|
|
||||||
for this service if you wish); that you receive source code or can get
|
|
||||||
it if you want it; that you can change the software and use pieces of
|
|
||||||
it in new free programs; and that you are informed that you can do
|
|
||||||
these things.
|
|
||||||
|
|
||||||
To protect your rights, we need to make restrictions that forbid
|
|
||||||
distributors to deny you these rights or to ask you to surrender these
|
|
||||||
rights. These restrictions translate to certain responsibilities for
|
|
||||||
you if you distribute copies of the library or if you modify it.
|
|
||||||
|
|
||||||
For example, if you distribute copies of the library, whether gratis
|
|
||||||
or for a fee, you must give the recipients all the rights that we gave
|
|
||||||
you. You must make sure that they, too, receive or can get the source
|
|
||||||
code. If you link other code with the library, you must provide
|
|
||||||
complete object files to the recipients, so that they can relink them
|
|
||||||
with the library after making changes to the library and recompiling
|
|
||||||
it. And you must show them these terms so they know their rights.
|
|
||||||
|
|
||||||
We protect your rights with a two-step method: (1) we copyright the
|
|
||||||
library, and (2) we offer you this license, which gives you legal
|
|
||||||
permission to copy, distribute and/or modify the library.
|
|
||||||
|
|
||||||
To protect each distributor, we want to make it very clear that
|
|
||||||
there is no warranty for the free library. Also, if the library is
|
|
||||||
modified by someone else and passed on, the recipients should know
|
|
||||||
that what they have is not the original version, so that the original
|
|
||||||
author's reputation will not be affected by problems that might be
|
|
||||||
introduced by others.
|
|
||||||
|
|
||||||
Finally, software patents pose a constant threat to the existence of
|
|
||||||
any free program. We wish to make sure that a company cannot
|
|
||||||
effectively restrict the users of a free program by obtaining a
|
|
||||||
restrictive license from a patent holder. Therefore, we insist that
|
|
||||||
any patent license obtained for a version of the library must be
|
|
||||||
consistent with the full freedom of use specified in this license.
|
|
||||||
|
|
||||||
Most GNU software, including some libraries, is covered by the
|
|
||||||
ordinary GNU General Public License. This license, the GNU Lesser
|
|
||||||
General Public License, applies to certain designated libraries, and
|
|
||||||
is quite different from the ordinary General Public License. We use
|
|
||||||
this license for certain libraries in order to permit linking those
|
|
||||||
libraries into non-free programs.
|
|
||||||
|
|
||||||
When a program is linked with a library, whether statically or using
|
|
||||||
a shared library, the combination of the two is legally speaking a
|
|
||||||
combined work, a derivative of the original library. The ordinary
|
|
||||||
General Public License therefore permits such linking only if the
|
|
||||||
entire combination fits its criteria of freedom. The Lesser General
|
|
||||||
Public License permits more lax criteria for linking other code with
|
|
||||||
the library.
|
|
||||||
|
|
||||||
We call this license the "Lesser" General Public License because it
|
|
||||||
does Less to protect the user's freedom than the ordinary General
|
|
||||||
Public License. It also provides other free software developers Less
|
|
||||||
of an advantage over competing non-free programs. These disadvantages
|
|
||||||
are the reason we use the ordinary General Public License for many
|
|
||||||
libraries. However, the Lesser license provides advantages in certain
|
|
||||||
special circumstances.
|
|
||||||
|
|
||||||
For example, on rare occasions, there may be a special need to
|
|
||||||
encourage the widest possible use of a certain library, so that it becomes
|
|
||||||
a de-facto standard. To achieve this, non-free programs must be
|
|
||||||
allowed to use the library. A more frequent case is that a free
|
|
||||||
library does the same job as widely used non-free libraries. In this
|
|
||||||
case, there is little to gain by limiting the free library to free
|
|
||||||
software only, so we use the Lesser General Public License.
|
|
||||||
|
|
||||||
In other cases, permission to use a particular library in non-free
|
|
||||||
programs enables a greater number of people to use a large body of
|
|
||||||
free software. For example, permission to use the GNU C Library in
|
|
||||||
non-free programs enables many more people to use the whole GNU
|
|
||||||
operating system, as well as its variant, the GNU/Linux operating
|
|
||||||
system.
|
|
||||||
|
|
||||||
Although the Lesser General Public License is Less protective of the
|
|
||||||
users' freedom, it does ensure that the user of a program that is
|
|
||||||
linked with the Library has the freedom and the wherewithal to run
|
|
||||||
that program using a modified version of the Library.
|
|
||||||
|
|
||||||
The precise terms and conditions for copying, distribution and
|
|
||||||
modification follow. Pay close attention to the difference between a
|
|
||||||
"work based on the library" and a "work that uses the library". The
|
|
||||||
former contains code derived from the library, whereas the latter must
|
|
||||||
be combined with the library in order to run.
|
|
||||||
|
|
||||||
GNU LESSER GENERAL PUBLIC LICENSE
|
|
||||||
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
|
|
||||||
|
|
||||||
0. This License Agreement applies to any software library or other
|
|
||||||
program which contains a notice placed by the copyright holder or
|
|
||||||
other authorized party saying it may be distributed under the terms of
|
|
||||||
this Lesser General Public License (also called "this License").
|
|
||||||
Each licensee is addressed as "you".
|
|
||||||
|
|
||||||
A "library" means a collection of software functions and/or data
|
|
||||||
prepared so as to be conveniently linked with application programs
|
|
||||||
(which use some of those functions and data) to form executables.
|
|
||||||
|
|
||||||
The "Library", below, refers to any such software library or work
|
|
||||||
which has been distributed under these terms. A "work based on the
|
|
||||||
Library" means either the Library or any derivative work under
|
|
||||||
copyright law: that is to say, a work containing the Library or a
|
|
||||||
portion of it, either verbatim or with modifications and/or translated
|
|
||||||
straightforwardly into another language. (Hereinafter, translation is
|
|
||||||
included without limitation in the term "modification".)
|
|
||||||
|
|
||||||
"Source code" for a work means the preferred form of the work for
|
|
||||||
making modifications to it. For a library, complete source code means
|
|
||||||
all the source code for all modules it contains, plus any associated
|
|
||||||
interface definition files, plus the scripts used to control compilation
|
|
||||||
and installation of the library.
|
|
||||||
|
|
||||||
Activities other than copying, distribution and modification are not
|
|
||||||
covered by this License; they are outside its scope. The act of
|
|
||||||
running a program using the Library is not restricted, and output from
|
|
||||||
such a program is covered only if its contents constitute a work based
|
|
||||||
on the Library (independent of the use of the Library in a tool for
|
|
||||||
writing it). Whether that is true depends on what the Library does
|
|
||||||
and what the program that uses the Library does.
|
|
||||||
|
|
||||||
1. You may copy and distribute verbatim copies of the Library's
|
|
||||||
complete source code as you receive it, in any medium, provided that
|
|
||||||
you conspicuously and appropriately publish on each copy an
|
|
||||||
appropriate copyright notice and disclaimer of warranty; keep intact
|
|
||||||
all the notices that refer to this License and to the absence of any
|
|
||||||
warranty; and distribute a copy of this License along with the
|
|
||||||
Library.
|
|
||||||
|
|
||||||
You may charge a fee for the physical act of transferring a copy,
|
|
||||||
and you may at your option offer warranty protection in exchange for a
|
|
||||||
fee.
|
|
||||||
|
|
||||||
2. You may modify your copy or copies of the Library or any portion
|
|
||||||
of it, thus forming a work based on the Library, and copy and
|
|
||||||
distribute such modifications or work under the terms of Section 1
|
|
||||||
above, provided that you also meet all of these conditions:
|
|
||||||
|
|
||||||
a) The modified work must itself be a software library.
|
|
||||||
|
|
||||||
b) You must cause the files modified to carry prominent notices
|
|
||||||
stating that you changed the files and the date of any change.
|
|
||||||
|
|
||||||
c) You must cause the whole of the work to be licensed at no
|
|
||||||
charge to all third parties under the terms of this License.
|
|
||||||
|
|
||||||
d) If a facility in the modified Library refers to a function or a
|
|
||||||
table of data to be supplied by an application program that uses
|
|
||||||
the facility, other than as an argument passed when the facility
|
|
||||||
is invoked, then you must make a good faith effort to ensure that,
|
|
||||||
in the event an application does not supply such function or
|
|
||||||
table, the facility still operates, and performs whatever part of
|
|
||||||
its purpose remains meaningful.
|
|
||||||
|
|
||||||
(For example, a function in a library to compute square roots has
|
|
||||||
a purpose that is entirely well-defined independent of the
|
|
||||||
application. Therefore, Subsection 2d requires that any
|
|
||||||
application-supplied function or table used by this function must
|
|
||||||
be optional: if the application does not supply it, the square
|
|
||||||
root function must still compute square roots.)
|
|
||||||
|
|
||||||
These requirements apply to the modified work as a whole. If
|
|
||||||
identifiable sections of that work are not derived from the Library,
|
|
||||||
and can be reasonably considered independent and separate works in
|
|
||||||
themselves, then this License, and its terms, do not apply to those
|
|
||||||
sections when you distribute them as separate works. But when you
|
|
||||||
distribute the same sections as part of a whole which is a work based
|
|
||||||
on the Library, the distribution of the whole must be on the terms of
|
|
||||||
this License, whose permissions for other licensees extend to the
|
|
||||||
entire whole, and thus to each and every part regardless of who wrote
|
|
||||||
it.
|
|
||||||
|
|
||||||
Thus, it is not the intent of this section to claim rights or contest
|
|
||||||
your rights to work written entirely by you; rather, the intent is to
|
|
||||||
exercise the right to control the distribution of derivative or
|
|
||||||
collective works based on the Library.
|
|
||||||
|
|
||||||
In addition, mere aggregation of another work not based on the Library
|
|
||||||
with the Library (or with a work based on the Library) on a volume of
|
|
||||||
a storage or distribution medium does not bring the other work under
|
|
||||||
the scope of this License.
|
|
||||||
|
|
||||||
3. You may opt to apply the terms of the ordinary GNU General Public
|
|
||||||
License instead of this License to a given copy of the Library. To do
|
|
||||||
this, you must alter all the notices that refer to this License, so
|
|
||||||
that they refer to the ordinary GNU General Public License, version 2,
|
|
||||||
instead of to this License. (If a newer version than version 2 of the
|
|
||||||
ordinary GNU General Public License has appeared, then you can specify
|
|
||||||
that version instead if you wish.) Do not make any other change in
|
|
||||||
these notices.
|
|
||||||
|
|
||||||
Once this change is made in a given copy, it is irreversible for
|
|
||||||
that copy, so the ordinary GNU General Public License applies to all
|
|
||||||
subsequent copies and derivative works made from that copy.
|
|
||||||
|
|
||||||
This option is useful when you wish to copy part of the code of
|
|
||||||
the Library into a program that is not a library.
|
|
||||||
|
|
||||||
4. You may copy and distribute the Library (or a portion or
|
|
||||||
derivative of it, under Section 2) in object code or executable form
|
|
||||||
under the terms of Sections 1 and 2 above provided that you accompany
|
|
||||||
it with the complete corresponding machine-readable source code, which
|
|
||||||
must be distributed under the terms of Sections 1 and 2 above on a
|
|
||||||
medium customarily used for software interchange.
|
|
||||||
|
|
||||||
If distribution of object code is made by offering access to copy
|
|
||||||
from a designated place, then offering equivalent access to copy the
|
|
||||||
source code from the same place satisfies the requirement to
|
|
||||||
distribute the source code, even though third parties are not
|
|
||||||
compelled to copy the source along with the object code.
|
|
||||||
|
|
||||||
5. A program that contains no derivative of any portion of the
|
|
||||||
Library, but is designed to work with the Library by being compiled or
|
|
||||||
linked with it, is called a "work that uses the Library". Such a
|
|
||||||
work, in isolation, is not a derivative work of the Library, and
|
|
||||||
therefore falls outside the scope of this License.
|
|
||||||
|
|
||||||
However, linking a "work that uses the Library" with the Library
|
|
||||||
creates an executable that is a derivative of the Library (because it
|
|
||||||
contains portions of the Library), rather than a "work that uses the
|
|
||||||
library". The executable is therefore covered by this License.
|
|
||||||
Section 6 states terms for distribution of such executables.
|
|
||||||
|
|
||||||
When a "work that uses the Library" uses material from a header file
|
|
||||||
that is part of the Library, the object code for the work may be a
|
|
||||||
derivative work of the Library even though the source code is not.
|
|
||||||
Whether this is true is especially significant if the work can be
|
|
||||||
linked without the Library, or if the work is itself a library. The
|
|
||||||
threshold for this to be true is not precisely defined by law.
|
|
||||||
|
|
||||||
If such an object file uses only numerical parameters, data
|
|
||||||
structure layouts and accessors, and small macros and small inline
|
|
||||||
functions (ten lines or less in length), then the use of the object
|
|
||||||
file is unrestricted, regardless of whether it is legally a derivative
|
|
||||||
work. (Executables containing this object code plus portions of the
|
|
||||||
Library will still fall under Section 6.)
|
|
||||||
|
|
||||||
Otherwise, if the work is a derivative of the Library, you may
|
|
||||||
distribute the object code for the work under the terms of Section 6.
|
|
||||||
Any executables containing that work also fall under Section 6,
|
|
||||||
whether or not they are linked directly with the Library itself.
|
|
||||||
|
|
||||||
6. As an exception to the Sections above, you may also combine or
|
|
||||||
link a "work that uses the Library" with the Library to produce a
|
|
||||||
work containing portions of the Library, and distribute that work
|
|
||||||
under terms of your choice, provided that the terms permit
|
|
||||||
modification of the work for the customer's own use and reverse
|
|
||||||
engineering for debugging such modifications.
|
|
||||||
|
|
||||||
You must give prominent notice with each copy of the work that the
|
|
||||||
Library is used in it and that the Library and its use are covered by
|
|
||||||
this License. You must supply a copy of this License. If the work
|
|
||||||
during execution displays copyright notices, you must include the
|
|
||||||
copyright notice for the Library among them, as well as a reference
|
|
||||||
directing the user to the copy of this License. Also, you must do one
|
|
||||||
of these things:
|
|
||||||
|
|
||||||
a) Accompany the work with the complete corresponding
|
|
||||||
machine-readable source code for the Library including whatever
|
|
||||||
changes were used in the work (which must be distributed under
|
|
||||||
Sections 1 and 2 above); and, if the work is an executable linked
|
|
||||||
with the Library, with the complete machine-readable "work that
|
|
||||||
uses the Library", as object code and/or source code, so that the
|
|
||||||
user can modify the Library and then relink to produce a modified
|
|
||||||
executable containing the modified Library. (It is understood
|
|
||||||
that the user who changes the contents of definitions files in the
|
|
||||||
Library will not necessarily be able to recompile the application
|
|
||||||
to use the modified definitions.)
|
|
||||||
|
|
||||||
b) Use a suitable shared library mechanism for linking with the
|
|
||||||
Library. A suitable mechanism is one that (1) uses at run time a
|
|
||||||
copy of the library already present on the user's computer system,
|
|
||||||
rather than copying library functions into the executable, and (2)
|
|
||||||
will operate properly with a modified version of the library, if
|
|
||||||
the user installs one, as long as the modified version is
|
|
||||||
interface-compatible with the version that the work was made with.
|
|
||||||
|
|
||||||
c) Accompany the work with a written offer, valid for at
|
|
||||||
least three years, to give the same user the materials
|
|
||||||
specified in Subsection 6a, above, for a charge no more
|
|
||||||
than the cost of performing this distribution.
|
|
||||||
|
|
||||||
d) If distribution of the work is made by offering access to copy
|
|
||||||
from a designated place, offer equivalent access to copy the above
|
|
||||||
specified materials from the same place.
|
|
||||||
|
|
||||||
e) Verify that the user has already received a copy of these
|
|
||||||
materials or that you have already sent this user a copy.
|
|
||||||
|
|
||||||
For an executable, the required form of the "work that uses the
|
|
||||||
Library" must include any data and utility programs needed for
|
|
||||||
reproducing the executable from it. However, as a special exception,
|
|
||||||
the materials to be distributed need not include anything that is
|
|
||||||
normally distributed (in either source or binary form) with the major
|
|
||||||
components (compiler, kernel, and so on) of the operating system on
|
|
||||||
which the executable runs, unless that component itself accompanies
|
|
||||||
the executable.
|
|
||||||
|
|
||||||
It may happen that this requirement contradicts the license
|
|
||||||
restrictions of other proprietary libraries that do not normally
|
|
||||||
accompany the operating system. Such a contradiction means you cannot
|
|
||||||
use both them and the Library together in an executable that you
|
|
||||||
distribute.
|
|
||||||
|
|
||||||
7. You may place library facilities that are a work based on the
|
|
||||||
Library side-by-side in a single library together with other library
|
|
||||||
facilities not covered by this License, and distribute such a combined
|
|
||||||
library, provided that the separate distribution of the work based on
|
|
||||||
the Library and of the other library facilities is otherwise
|
|
||||||
permitted, and provided that you do these two things:
|
|
||||||
|
|
||||||
a) Accompany the combined library with a copy of the same work
|
|
||||||
based on the Library, uncombined with any other library
|
|
||||||
facilities. This must be distributed under the terms of the
|
|
||||||
Sections above.
|
|
||||||
|
|
||||||
b) Give prominent notice with the combined library of the fact
|
|
||||||
that part of it is a work based on the Library, and explaining
|
|
||||||
where to find the accompanying uncombined form of the same work.
|
|
||||||
|
|
||||||
8. You may not copy, modify, sublicense, link with, or distribute
|
|
||||||
the Library except as expressly provided under this License. Any
|
|
||||||
attempt otherwise to copy, modify, sublicense, link with, or
|
|
||||||
distribute the Library is void, and will automatically terminate your
|
|
||||||
rights under this License. However, parties who have received copies,
|
|
||||||
or rights, from you under this License will not have their licenses
|
|
||||||
terminated so long as such parties remain in full compliance.
|
|
||||||
|
|
||||||
9. You are not required to accept this License, since you have not
|
|
||||||
signed it. However, nothing else grants you permission to modify or
|
|
||||||
distribute the Library or its derivative works. These actions are
|
|
||||||
prohibited by law if you do not accept this License. Therefore, by
|
|
||||||
modifying or distributing the Library (or any work based on the
|
|
||||||
Library), you indicate your acceptance of this License to do so, and
|
|
||||||
all its terms and conditions for copying, distributing or modifying
|
|
||||||
the Library or works based on it.
|
|
||||||
|
|
||||||
10. Each time you redistribute the Library (or any work based on the
|
|
||||||
Library), the recipient automatically receives a license from the
|
|
||||||
original licensor to copy, distribute, link with or modify the Library
|
|
||||||
subject to these terms and conditions. You may not impose any further
|
|
||||||
restrictions on the recipients' exercise of the rights granted herein.
|
|
||||||
You are not responsible for enforcing compliance by third parties with
|
|
||||||
this License.
|
|
||||||
|
|
||||||
11. If, as a consequence of a court judgment or allegation of patent
|
|
||||||
infringement or for any other reason (not limited to patent issues),
|
|
||||||
conditions are imposed on you (whether by court order, agreement or
|
|
||||||
otherwise) that contradict the conditions of this License, they do not
|
|
||||||
excuse you from the conditions of this License. If you cannot
|
|
||||||
distribute so as to satisfy simultaneously your obligations under this
|
|
||||||
License and any other pertinent obligations, then as a consequence you
|
|
||||||
may not distribute the Library at all. For example, if a patent
|
|
||||||
license would not permit royalty-free redistribution of the Library by
|
|
||||||
all those who receive copies directly or indirectly through you, then
|
|
||||||
the only way you could satisfy both it and this License would be to
|
|
||||||
refrain entirely from distribution of the Library.
|
|
||||||
|
|
||||||
If any portion of this section is held invalid or unenforceable under any
|
|
||||||
particular circumstance, the balance of the section is intended to apply,
|
|
||||||
and the section as a whole is intended to apply in other circumstances.
|
|
||||||
|
|
||||||
It is not the purpose of this section to induce you to infringe any
|
|
||||||
patents or other property right claims or to contest validity of any
|
|
||||||
such claims; this section has the sole purpose of protecting the
|
|
||||||
integrity of the free software distribution system which is
|
|
||||||
implemented by public license practices. Many people have made
|
|
||||||
generous contributions to the wide range of software distributed
|
|
||||||
through that system in reliance on consistent application of that
|
|
||||||
system; it is up to the author/donor to decide if he or she is willing
|
|
||||||
to distribute software through any other system and a licensee cannot
|
|
||||||
impose that choice.
|
|
||||||
|
|
||||||
This section is intended to make thoroughly clear what is believed to
|
|
||||||
be a consequence of the rest of this License.
|
|
||||||
|
|
||||||
12. If the distribution and/or use of the Library is restricted in
|
|
||||||
certain countries either by patents or by copyrighted interfaces, the
|
|
||||||
original copyright holder who places the Library under this License may add
|
|
||||||
an explicit geographical distribution limitation excluding those countries,
|
|
||||||
so that distribution is permitted only in or among countries not thus
|
|
||||||
excluded. In such case, this License incorporates the limitation as if
|
|
||||||
written in the body of this License.
|
|
||||||
|
|
||||||
13. The Free Software Foundation may publish revised and/or new
|
|
||||||
versions of the Lesser General Public License from time to time.
|
|
||||||
Such new versions will be similar in spirit to the present version,
|
|
||||||
but may differ in detail to address new problems or concerns.
|
|
||||||
|
|
||||||
Each version is given a distinguishing version number. If the Library
|
|
||||||
specifies a version number of this License which applies to it and
|
|
||||||
"any later version", you have the option of following the terms and
|
|
||||||
conditions either of that version or of any later version published by
|
|
||||||
the Free Software Foundation. If the Library does not specify a
|
|
||||||
license version number, you may choose any version ever published by
|
|
||||||
the Free Software Foundation.
|
|
||||||
|
|
||||||
14. If you wish to incorporate parts of the Library into other free
|
|
||||||
programs whose distribution conditions are incompatible with these,
|
|
||||||
write to the author to ask for permission. For software which is
|
|
||||||
copyrighted by the Free Software Foundation, write to the Free
|
|
||||||
Software Foundation; we sometimes make exceptions for this. Our
|
|
||||||
decision will be guided by the two goals of preserving the free status
|
|
||||||
of all derivatives of our free software and of promoting the sharing
|
|
||||||
and reuse of software generally.
|
|
||||||
|
|
||||||
NO WARRANTY
|
|
||||||
|
|
||||||
15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO
|
|
||||||
WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW.
|
|
||||||
EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR
|
|
||||||
OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY
|
|
||||||
KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE
|
|
||||||
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
|
|
||||||
PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE
|
|
||||||
LIBRARY IS WITH YOU. SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME
|
|
||||||
THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
|
|
||||||
|
|
||||||
16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN
|
|
||||||
WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY
|
|
||||||
AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU
|
|
||||||
FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR
|
|
||||||
CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE
|
|
||||||
LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING
|
|
||||||
RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A
|
|
||||||
FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF
|
|
||||||
SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
|
|
||||||
DAMAGES.
|
|
||||||
|
|
||||||
END OF TERMS AND CONDITIONS
|
|
||||||
|
|
||||||
How to Apply These Terms to Your New Libraries
|
|
||||||
|
|
||||||
If you develop a new library, and you want it to be of the greatest
|
|
||||||
possible use to the public, we recommend making it free software that
|
|
||||||
everyone can redistribute and change. You can do so by permitting
|
|
||||||
redistribution under these terms (or, alternatively, under the terms of the
|
|
||||||
ordinary General Public License).
|
|
||||||
|
|
||||||
To apply these terms, attach the following notices to the library. It is
|
|
||||||
safest to attach them to the start of each source file to most effectively
|
|
||||||
convey the exclusion of warranty; and each file should have at least the
|
|
||||||
"copyright" line and a pointer to where the full notice is found.
|
|
||||||
|
|
||||||
<one line to give the library's name and a brief idea of what it does.>
|
|
||||||
Copyright (C) <year> <name of author>
|
|
||||||
|
|
||||||
This library is free software; you can redistribute it and/or
|
|
||||||
modify it under the terms of the GNU Lesser General Public
|
|
||||||
License as published by the Free Software Foundation; either
|
|
||||||
version 2.1 of the License, or (at your option) any later version.
|
|
||||||
|
|
||||||
This library 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
|
|
||||||
Lesser General Public License for more details.
|
|
||||||
|
|
||||||
You should have received a copy of the GNU Lesser General Public
|
|
||||||
License along with this library; if not, write to the Free Software
|
|
||||||
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
|
||||||
|
|
||||||
Also add information on how to contact you by electronic and paper mail.
|
|
||||||
|
|
||||||
You should also get your employer (if you work as a programmer) or your
|
|
||||||
school, if any, to sign a "copyright disclaimer" for the library, if
|
|
||||||
necessary. Here is a sample; alter the names:
|
|
||||||
|
|
||||||
Yoyodyne, Inc., hereby disclaims all copyright interest in the
|
|
||||||
library `Frob' (a library for tweaking knobs) written by James Random Hacker.
|
|
||||||
|
|
||||||
<signature of Ty Coon>, 1 April 1990
|
|
||||||
Ty Coon, President of Vice
|
|
||||||
|
|
||||||
That's all there is to it!
|
|
||||||
|
|
||||||
|
|
||||||
53
LICENSE.txt
@@ -1,53 +0,0 @@
|
|||||||
wxWindows Library Licence, Version 3.1
|
|
||||||
======================================
|
|
||||||
|
|
||||||
Copyright (C) 1998-2005 Julian Smart, Robert Roebling et al
|
|
||||||
|
|
||||||
Everyone is permitted to copy and distribute verbatim copies
|
|
||||||
of this licence document, but changing it is not allowed.
|
|
||||||
|
|
||||||
WXWINDOWS LIBRARY LICENCE
|
|
||||||
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
|
|
||||||
|
|
||||||
This library is free software; you can redistribute it and/or modify it
|
|
||||||
under the terms of the GNU Library General Public Licence as published by
|
|
||||||
the Free Software Foundation; either version 2 of the Licence, or (at
|
|
||||||
your option) any later version.
|
|
||||||
|
|
||||||
This library 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 Library
|
|
||||||
General Public Licence for more details.
|
|
||||||
|
|
||||||
You should have received a copy of the GNU Library General Public Licence
|
|
||||||
along with this software, usually in a file named COPYING.LIB. If not,
|
|
||||||
write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330,
|
|
||||||
Boston, MA 02111-1307 USA.
|
|
||||||
|
|
||||||
EXCEPTION NOTICE
|
|
||||||
|
|
||||||
1. As a special exception, the copyright holders of this library give
|
|
||||||
permission for additional uses of the text contained in this release of
|
|
||||||
the library as licenced under the wxWindows Library Licence, applying
|
|
||||||
either version 3.1 of the Licence, or (at your option) any later version of
|
|
||||||
the Licence as published by the copyright holders of version
|
|
||||||
3.1 of the Licence document.
|
|
||||||
|
|
||||||
2. The exception is that you may use, copy, link, modify and distribute
|
|
||||||
under your own terms, binary object code versions of works based
|
|
||||||
on the Library.
|
|
||||||
|
|
||||||
3. If you copy code from files distributed under the terms of the GNU
|
|
||||||
General Public Licence or the GNU Library General Public Licence into a
|
|
||||||
copy of this library, as this licence permits, the exception does not
|
|
||||||
apply to the code that you add in this way. To avoid misleading anyone as
|
|
||||||
to the status of such modified files, you must delete this exception
|
|
||||||
notice from such code and/or adjust the licensing conditions notice
|
|
||||||
accordingly.
|
|
||||||
|
|
||||||
4. If you write modifications of your own for this library, it is your
|
|
||||||
choice whether to permit this exception to apply to your modifications.
|
|
||||||
If you do not wish that, you must delete the exception notice from such
|
|
||||||
code and/or adjust the licensing conditions notice accordingly.
|
|
||||||
|
|
||||||
|
|
||||||
212
Makefile.am
@@ -34,19 +34,35 @@ libjpeg_la_SOURCES += jdarith.c
|
|||||||
|
|
||||||
endif
|
endif
|
||||||
|
|
||||||
libturbojpeg_la_SOURCES = $(libjpeg_la_SOURCES) turbojpegl.c turbojpeg.h \
|
libturbojpeg_la_SOURCES = $(libjpeg_la_SOURCES) turbojpeg.c turbojpeg.h \
|
||||||
turbojpeg-mapfile
|
transupp.c transupp.h jdatadst-tj.c jdatasrc-tj.c
|
||||||
|
|
||||||
|
SUBDIRS = java
|
||||||
|
|
||||||
|
if WITH_JAVA
|
||||||
|
|
||||||
|
libturbojpeg_la_SOURCES += turbojpeg-jni.c
|
||||||
|
libturbojpeg_la_CFLAGS = ${JNI_CFLAGS}
|
||||||
|
TJMAPFILE = turbojpeg-mapfile.jni
|
||||||
|
|
||||||
|
else
|
||||||
|
|
||||||
|
TJMAPFILE = turbojpeg-mapfile
|
||||||
|
|
||||||
|
endif
|
||||||
|
|
||||||
|
libturbojpeg_la_SOURCES += $(TJMAPFILE)
|
||||||
|
|
||||||
if VERSION_SCRIPT
|
if VERSION_SCRIPT
|
||||||
|
|
||||||
libturbojpeg_la_LDFLAGS += $(VERSION_SCRIPT_FLAG)$(srcdir)/turbojpeg-mapfile
|
libturbojpeg_la_LDFLAGS += $(VERSION_SCRIPT_FLAG)$(srcdir)/$(TJMAPFILE)
|
||||||
libjpeg_la_LDFLAGS += $(VERSION_SCRIPT_FLAG)libjpeg.map
|
libjpeg_la_LDFLAGS += $(VERSION_SCRIPT_FLAG)libjpeg.map
|
||||||
|
|
||||||
endif
|
endif
|
||||||
|
|
||||||
if WITH_SIMD
|
if WITH_SIMD
|
||||||
|
|
||||||
SUBDIRS = simd
|
SUBDIRS += simd
|
||||||
libjpeg_la_LIBADD = simd/libsimd.la
|
libjpeg_la_LIBADD = simd/libsimd.la
|
||||||
libturbojpeg_la_LIBADD = simd/libsimd.la
|
libturbojpeg_la_LIBADD = simd/libsimd.la
|
||||||
|
|
||||||
@@ -56,18 +72,19 @@ libjpeg_la_SOURCES += jsimd_none.c
|
|||||||
|
|
||||||
endif
|
endif
|
||||||
|
|
||||||
TSTHDRS = rrutil.h rrtimer.h
|
bin_PROGRAMS = cjpeg djpeg jpegtran rdjpgcom wrjpgcom tjbench
|
||||||
|
noinst_PROGRAMS = tjunittest jcstest
|
||||||
|
|
||||||
bin_PROGRAMS = cjpeg djpeg jpegtran rdjpgcom wrjpgcom jpgtest
|
tjbench_SOURCES = tjbench.c bmp.h bmp.c tjutil.h tjutil.c rdbmp.c rdppm.c \
|
||||||
noinst_PROGRAMS = jpegut
|
wrbmp.c wrppm.c
|
||||||
|
|
||||||
jpgtest_SOURCES = $(TSTHDRS) jpgtest.c bmp.h bmp.c
|
tjbench_LDADD = libturbojpeg.la libjpeg.la -lm
|
||||||
|
|
||||||
jpgtest_LDADD = libturbojpeg.la -lm
|
tjbench_CFLAGS = -DBMP_SUPPORTED -DPPM_SUPPORTED
|
||||||
|
|
||||||
jpegut_SOURCES = $(TSTHDRS) jpegut.c bmp.h bmp.c
|
tjunittest_SOURCES = tjunittest.c tjutil.h tjutil.c
|
||||||
|
|
||||||
jpegut_LDADD = libturbojpeg.la
|
tjunittest_LDADD = libturbojpeg.la
|
||||||
|
|
||||||
cjpeg_SOURCES = cdjpeg.h cderror.h cdjpeg.c cjpeg.c rdbmp.c rdgif.c \
|
cjpeg_SOURCES = cdjpeg.h cderror.h cdjpeg.c cjpeg.c rdbmp.c rdgif.c \
|
||||||
rdppm.c rdswitch.c rdtarga.c
|
rdppm.c rdswitch.c rdtarga.c
|
||||||
@@ -97,91 +114,134 @@ wrjpgcom_SOURCES = wrjpgcom.c
|
|||||||
|
|
||||||
wrjpgcom_LDADD = libjpeg.la
|
wrjpgcom_LDADD = libjpeg.la
|
||||||
|
|
||||||
|
jcstest_SOURCES = jcstest.c
|
||||||
|
|
||||||
|
jcstest_LDADD = libjpeg.la
|
||||||
|
|
||||||
dist_man1_MANS = cjpeg.1 djpeg.1 jpegtran.1 rdjpgcom.1 wrjpgcom.1
|
dist_man1_MANS = cjpeg.1 djpeg.1 jpegtran.1 rdjpgcom.1 wrjpgcom.1
|
||||||
|
|
||||||
DOCS= README install.txt usage.txt wizard.txt example.c libjpeg.txt \
|
DOCS= install.txt coderules.txt filelist.txt jconfig.txt change.log \
|
||||||
structure.txt coderules.txt filelist.txt jconfig.txt change.log \
|
rdrle.c wrrle.c BUILDING.txt ChangeLog.txt
|
||||||
README-turbo.txt rdrle.c wrrle.c LICENSE.txt LGPL.txt BUILDING.txt \
|
|
||||||
ChangeLog.txt
|
|
||||||
|
|
||||||
TESTFILES= testorig.jpg testorig.ppm testimg.bmp testimgflt.jpg \
|
docdir = $(datadir)/doc
|
||||||
testimgfst.jpg testimgint.jpg testimgp.jpg testimgflt.ppm testimgfst.ppm \
|
dist_doc_DATA = README README-turbo.txt libjpeg.txt structure.txt usage.txt \
|
||||||
testimgint.ppm testimgflt-nosimd.jpg testimgcrop.jpg testimgari.jpg \
|
wizard.txt
|
||||||
testimgari.ppm testimgfst100.jpg
|
|
||||||
|
|
||||||
EXTRA_DIST = win release $(DOCS) $(TESTFILES) CMakeLists.txt \
|
exampledir = $(datadir)/doc
|
||||||
sharedlib/CMakeLists.txt cmakescripts libjpeg.map.in
|
dist_example_DATA = example.c
|
||||||
|
|
||||||
|
|
||||||
|
EXTRA_DIST = win release $(DOCS) testimages CMakeLists.txt \
|
||||||
|
sharedlib/CMakeLists.txt cmakescripts libjpeg.map.in doc doxygen.config \
|
||||||
|
jccolext.c jdcolext.c jdmrgext.c
|
||||||
|
|
||||||
dist-hook:
|
dist-hook:
|
||||||
rm -rf `find $(distdir) -name .svn`
|
rm -rf `find $(distdir) -name .svn`
|
||||||
|
|
||||||
|
|
||||||
test: testclean all
|
test: testclean all
|
||||||
./jpegut
|
if WITH_JAVA
|
||||||
./jpegut -yuv
|
$(JAVA) -cp java/turbojpeg.jar -Djava.library.path=.libs TJUnitTest
|
||||||
./cjpeg -dct int -outfile testoutint.jpg $(srcdir)/testorig.ppm
|
$(JAVA) -cp java/turbojpeg.jar -Djava.library.path=.libs TJUnitTest -bi
|
||||||
cmp $(srcdir)/testimgint.jpg testoutint.jpg
|
$(JAVA) -cp java/turbojpeg.jar -Djava.library.path=.libs TJUnitTest -yuv
|
||||||
./cjpeg -dct fast -opt -outfile testoutfst.jpg $(srcdir)/testorig.ppm
|
$(JAVA) -cp java/turbojpeg.jar -Djava.library.path=.libs TJUnitTest -yuv -bi
|
||||||
cmp $(srcdir)/testimgfst.jpg testoutfst.jpg
|
|
||||||
./cjpeg -dct fast -quality 100 -opt -outfile testoutfst100.jpg $(srcdir)/testorig.ppm
|
|
||||||
cmp $(srcdir)/testimgfst100.jpg testoutfst100.jpg
|
|
||||||
./cjpeg -dct float -outfile testoutflt.jpg $(srcdir)/testorig.ppm
|
|
||||||
if WITH_SIMD
|
|
||||||
cmp $(srcdir)/testimgflt.jpg testoutflt.jpg
|
|
||||||
else
|
|
||||||
cmp $(srcdir)/testimgflt-nosimd.jpg testoutflt.jpg
|
|
||||||
endif
|
endif
|
||||||
./djpeg -dct int -fast -ppm -outfile testoutint.ppm $(srcdir)/testorig.jpg
|
./tjunittest
|
||||||
cmp $(srcdir)/testimgint.ppm testoutint.ppm
|
./tjunittest -alloc
|
||||||
./djpeg -dct fast -ppm -outfile testoutfst.ppm $(srcdir)/testorig.jpg
|
./tjunittest -yuv
|
||||||
cmp $(srcdir)/testimgfst.ppm testoutfst.ppm
|
./cjpeg -dct int -outfile testoutint.jpg $(srcdir)/testimages/testorig.ppm
|
||||||
./djpeg -dct float -ppm -outfile testoutflt.ppm $(srcdir)/testorig.jpg
|
cmp $(srcdir)/testimages/testimgint.jpg testoutint.jpg
|
||||||
if WITH_SIMD
|
./cjpeg -dct fast -opt -outfile testoutfst.jpg $(srcdir)/testimages/testorig.ppm
|
||||||
cmp $(srcdir)/testimgflt.ppm testoutflt.ppm
|
cmp $(srcdir)/testimages/testimgfst.jpg testoutfst.jpg
|
||||||
|
./cjpeg -dct fast -quality 100 -opt -outfile testoutfst100.jpg $(srcdir)/testimages/testorig.ppm
|
||||||
|
cmp $(srcdir)/testimages/testimgfst100.jpg testoutfst100.jpg
|
||||||
|
./cjpeg -dct float -outfile testoutflt.jpg $(srcdir)/testimages/testorig.ppm
|
||||||
|
if WITH_SSE_FLOAT_DCT
|
||||||
|
cmp $(srcdir)/testimages/testimgflt.jpg testoutflt.jpg
|
||||||
else
|
else
|
||||||
cmp $(srcdir)/testorig.ppm testoutflt.ppm
|
cmp $(srcdir)/testimages/testimgflt-nosimd.jpg testoutflt.jpg
|
||||||
endif
|
endif
|
||||||
./djpeg -dct int -bmp -colors 256 -outfile testout.bmp $(srcdir)/testorig.jpg
|
./cjpeg -dct int -grayscale -outfile testoutgray.jpg $(srcdir)/testimages/testorig.ppm
|
||||||
cmp $(srcdir)/testimg.bmp testout.bmp
|
cmp $(srcdir)/testimages/testimggray.jpg testoutgray.jpg
|
||||||
|
./djpeg -dct int -fast -ppm -outfile testoutint.ppm $(srcdir)/testimages/testorig.jpg
|
||||||
|
cmp $(srcdir)/testimages/testimgint.ppm testoutint.ppm
|
||||||
|
./djpeg -dct fast -ppm -outfile testoutfst.ppm $(srcdir)/testimages/testorig.jpg
|
||||||
|
cmp $(srcdir)/testimages/testimgfst.ppm testoutfst.ppm
|
||||||
|
./djpeg -dct float -ppm -outfile testoutflt.ppm $(srcdir)/testimages/testorig.jpg
|
||||||
|
if WITH_SSE_FLOAT_DCT
|
||||||
|
cmp $(srcdir)/testimages/testimgflt.ppm testoutflt.ppm
|
||||||
|
else
|
||||||
|
cmp $(srcdir)/testimages/testorig.ppm testoutflt.ppm
|
||||||
|
endif
|
||||||
|
./djpeg -dct int -scale 1/2 -ppm -outfile testoutint1_2.ppm $(srcdir)/testimages/testorig.jpg
|
||||||
|
cmp $(srcdir)/testimages/testimgint1_2.ppm testoutint1_2.ppm
|
||||||
|
./djpeg -dct fast -scale 1/2 -ppm -outfile testoutfst1_2.ppm $(srcdir)/testimages/testorig.jpg
|
||||||
|
cmp $(srcdir)/testimages/testimgfst1_2.ppm testoutfst1_2.ppm
|
||||||
|
./djpeg -dct int -scale 1/4 -ppm -outfile testoutint1_4.ppm $(srcdir)/testimages/testorig.jpg
|
||||||
|
cmp $(srcdir)/testimages/testimgint1_4.ppm testoutint1_4.ppm
|
||||||
|
./djpeg -dct fast -scale 1/4 -ppm -outfile testoutfst1_4.ppm $(srcdir)/testimages/testorig.jpg
|
||||||
|
cmp $(srcdir)/testimages/testimgfst1_4.ppm testoutfst1_4.ppm
|
||||||
|
./djpeg -dct int -scale 1/8 -ppm -outfile testoutint1_8.ppm $(srcdir)/testimages/testorig.jpg
|
||||||
|
cmp $(srcdir)/testimages/testimgint1_8.ppm testoutint1_8.ppm
|
||||||
|
./djpeg -dct fast -scale 1/8 -ppm -outfile testoutfst1_8.ppm $(srcdir)/testimages/testorig.jpg
|
||||||
|
cmp $(srcdir)/testimages/testimgfst1_8.ppm testoutfst1_8.ppm
|
||||||
|
./djpeg -dct int -bmp -colors 256 -outfile testout.bmp $(srcdir)/testimages/testorig.jpg
|
||||||
|
cmp $(srcdir)/testimages/testimg.bmp testout.bmp
|
||||||
if WITH_ARITH_ENC
|
if WITH_ARITH_ENC
|
||||||
./cjpeg -dct int -arithmetic -outfile testoutari.jpg $(srcdir)/testorig.ppm
|
./cjpeg -dct int -arithmetic -outfile testoutari.jpg $(srcdir)/testimages/testorig.ppm
|
||||||
cmp $(srcdir)/testimgari.jpg testoutari.jpg
|
cmp $(srcdir)/testimages/testimgari.jpg testoutari.jpg
|
||||||
./jpegtran -arithmetic -outfile testouta.jpg $(srcdir)/testimgint.jpg
|
./jpegtran -arithmetic -outfile testouta.jpg $(srcdir)/testimages/testimgint.jpg
|
||||||
cmp $(srcdir)/testimgari.jpg testouta.jpg
|
cmp $(srcdir)/testimages/testimgari.jpg testouta.jpg
|
||||||
endif
|
endif
|
||||||
if WITH_ARITH_DEC
|
if WITH_ARITH_DEC
|
||||||
./djpeg -dct int -fast -ppm -outfile testoutari.ppm $(srcdir)/testimgari.jpg
|
./djpeg -dct int -fast -ppm -outfile testoutari.ppm $(srcdir)/testimages/testimgari.jpg
|
||||||
cmp $(srcdir)/testimgari.ppm testoutari.ppm
|
cmp $(srcdir)/testimages/testimgari.ppm testoutari.ppm
|
||||||
./jpegtran -outfile testouta.jpg $(srcdir)/testimgari.jpg
|
./jpegtran -outfile testouta.jpg $(srcdir)/testimages/testimgari.jpg
|
||||||
cmp $(srcdir)/testimgint.jpg testouta.jpg
|
cmp $(srcdir)/testimages/testimgint.jpg testouta.jpg
|
||||||
endif
|
endif
|
||||||
./cjpeg -dct int -progressive -outfile testoutp.jpg $(srcdir)/testorig.ppm
|
./cjpeg -dct int -progressive -outfile testoutp.jpg $(srcdir)/testimages/testorig.ppm
|
||||||
cmp $(srcdir)/testimgp.jpg testoutp.jpg
|
cmp $(srcdir)/testimages/testimgp.jpg testoutp.jpg
|
||||||
./jpegtran -outfile testoutt.jpg testoutp.jpg
|
./jpegtran -outfile testoutt.jpg testoutp.jpg
|
||||||
cmp $(srcdir)/testimgint.jpg testoutt.jpg
|
cmp $(srcdir)/testimages/testimgint.jpg testoutt.jpg
|
||||||
./jpegtran -crop 120x90+20+50 -transpose -perfect -outfile testoutcrop.jpg $(srcdir)/testorig.jpg
|
./jpegtran -crop 120x90+20+50 -transpose -perfect -outfile testoutcrop.jpg $(srcdir)/testimages/testorig.jpg
|
||||||
cmp $(srcdir)/testimgcrop.jpg testoutcrop.jpg
|
cmp $(srcdir)/testimages/testimgcrop.jpg testoutcrop.jpg
|
||||||
|
|
||||||
|
|
||||||
testclean:
|
testclean:
|
||||||
rm -f testout*
|
rm -f testout*
|
||||||
rm -f *_GRAYQ[0-9]*.bmp
|
rm -f *_GRAY_*.bmp
|
||||||
rm -f *_GRAYQ[0-9]*.ppm
|
rm -f *_GRAY_*.png
|
||||||
rm -f *_GRAYQ[0-9]*.jpg
|
rm -f *_GRAY_*.ppm
|
||||||
|
rm -f *_GRAY_*.jpg
|
||||||
rm -f *_GRAY.yuv
|
rm -f *_GRAY.yuv
|
||||||
rm -f *_420Q[0-9]*.bmp
|
rm -f *_420_*.bmp
|
||||||
rm -f *_420Q[0-9]*.ppm
|
rm -f *_420_*.png
|
||||||
rm -f *_420Q[0-9]*.jpg
|
rm -f *_420_*.ppm
|
||||||
|
rm -f *_420_*.jpg
|
||||||
rm -f *_420.yuv
|
rm -f *_420.yuv
|
||||||
rm -f *_422Q[0-9]*.bmp
|
rm -f *_422_*.bmp
|
||||||
rm -f *_422Q[0-9]*.ppm
|
rm -f *_422_*.png
|
||||||
rm -f *_422Q[0-9]*.jpg
|
rm -f *_422_*.ppm
|
||||||
|
rm -f *_422_*.jpg
|
||||||
rm -f *_422.yuv
|
rm -f *_422.yuv
|
||||||
rm -f *_444Q[0-9]*.bmp
|
rm -f *_444_*.bmp
|
||||||
rm -f *_444Q[0-9]*.ppm
|
rm -f *_444_*.png
|
||||||
rm -f *_444Q[0-9]*.jpg
|
rm -f *_444_*.ppm
|
||||||
|
rm -f *_444_*.jpg
|
||||||
rm -f *_444.yuv
|
rm -f *_444.yuv
|
||||||
|
rm -f *_440_*.bmp
|
||||||
|
rm -f *_440_*.png
|
||||||
|
rm -f *_440_*.ppm
|
||||||
|
rm -f *_440_*.jpg
|
||||||
|
rm -f *_440.yuv
|
||||||
|
|
||||||
|
|
||||||
|
tjtest:
|
||||||
|
sh ./tjbenchtest
|
||||||
|
if WITH_JAVA
|
||||||
|
sh ./tjexampletest
|
||||||
|
endif
|
||||||
|
|
||||||
|
|
||||||
if X86_64
|
if X86_64
|
||||||
|
|
||||||
@@ -213,7 +273,7 @@ rpm: all
|
|||||||
ln -fs `pwd` $$TMPDIR/BUILD; \
|
ln -fs `pwd` $$TMPDIR/BUILD; \
|
||||||
rm -f ${PACKAGE_NAME}-${VERSION}.${RPMARCH}.rpm; \
|
rm -f ${PACKAGE_NAME}-${VERSION}.${RPMARCH}.rpm; \
|
||||||
rpmbuild -bb --define "_blddir $$TMPDIR/buildroot" \
|
rpmbuild -bb --define "_blddir $$TMPDIR/buildroot" \
|
||||||
--define "_topdir $$TMPDIR" --define "_srcdir ${srcdir}" \
|
--define "_topdir $$TMPDIR" \
|
||||||
--target ${RPMARCH} pkgscripts/libjpeg-turbo.spec; \
|
--target ${RPMARCH} pkgscripts/libjpeg-turbo.spec; \
|
||||||
cp $$TMPDIR/RPMS/${RPMARCH}/${PACKAGE_NAME}-${VERSION}-${BUILD}.${RPMARCH}.rpm \
|
cp $$TMPDIR/RPMS/${RPMARCH}/${PACKAGE_NAME}-${VERSION}-${BUILD}.${RPMARCH}.rpm \
|
||||||
${PACKAGE_NAME}-${VERSION}.${RPMARCH}.rpm; \
|
${PACKAGE_NAME}-${VERSION}.${RPMARCH}.rpm; \
|
||||||
@@ -229,7 +289,7 @@ srpm: dist-gzip
|
|||||||
rm -f ${PACKAGE_NAME}-${VERSION}.src.rpm; \
|
rm -f ${PACKAGE_NAME}-${VERSION}.src.rpm; \
|
||||||
cp ${PACKAGE_NAME}-${VERSION}.tar.gz $$TMPDIR/SOURCES; \
|
cp ${PACKAGE_NAME}-${VERSION}.tar.gz $$TMPDIR/SOURCES; \
|
||||||
cat pkgscripts/libjpeg-turbo.spec | sed s/%{_blddir}/%{_tmppath}/g \
|
cat pkgscripts/libjpeg-turbo.spec | sed s/%{_blddir}/%{_tmppath}/g \
|
||||||
| sed s@%{_srcdir}/@@g | sed s/#--\>//g \
|
| sed s/#--\>//g \
|
||||||
> $$TMPDIR/SPECS/libjpeg-turbo.spec; \
|
> $$TMPDIR/SPECS/libjpeg-turbo.spec; \
|
||||||
rpmbuild -bs --define "_topdir $$TMPDIR" $$TMPDIR/SPECS/libjpeg-turbo.spec; \
|
rpmbuild -bs --define "_topdir $$TMPDIR" $$TMPDIR/SPECS/libjpeg-turbo.spec; \
|
||||||
cp $$TMPDIR/SRPMS/${PACKAGE_NAME}-${VERSION}-${BUILD}.src.rpm \
|
cp $$TMPDIR/SRPMS/${PACKAGE_NAME}-${VERSION}-${BUILD}.src.rpm \
|
||||||
@@ -242,7 +302,15 @@ deb: all
|
|||||||
if X86_64
|
if X86_64
|
||||||
|
|
||||||
udmg: all
|
udmg: all
|
||||||
sh pkgscripts/makemacpkg universal ${BUILDDIR32}
|
sh pkgscripts/makemacpkg -build32 ${BUILDDIR32}
|
||||||
|
|
||||||
|
iosdmg: all
|
||||||
|
sh pkgscripts/makemacpkg -build32 ${BUILDDIR32} -buildarmv6 ${BUILDDIRARMV6} -buildarmv7 ${BUILDDIRARMV7}
|
||||||
|
|
||||||
|
else
|
||||||
|
|
||||||
|
iosdmg: all
|
||||||
|
sh pkgscripts/makemacpkg -buildarmv6 ${BUILDDIRARMV6} -buildarmv7 ${BUILDDIRARMV7}
|
||||||
|
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
|||||||
19
README
@@ -1,7 +1,8 @@
|
|||||||
libjpeg-turbo note: This file is mostly taken from the libjpeg v8b README
|
libjpeg-turbo note: This file contains portions of the libjpeg v6b and v8
|
||||||
file, and it is included only for reference. Some parts of it may not apply to
|
README files, with additional wordsmithing by The libjpeg-turbo Project.
|
||||||
libjpeg-turbo. Please see README-turbo.txt for information specific to the
|
It is included only for reference, as some parts of it may not apply to
|
||||||
turbo version.
|
libjpeg-turbo. Please see README-turbo.txt for information specific to
|
||||||
|
libjpeg-turbo.
|
||||||
|
|
||||||
|
|
||||||
The Independent JPEG Group's JPEG software
|
The Independent JPEG Group's JPEG software
|
||||||
@@ -62,7 +63,7 @@ OVERVIEW
|
|||||||
This package contains C software to implement JPEG image encoding, decoding,
|
This package contains C software to implement JPEG image encoding, decoding,
|
||||||
and transcoding. JPEG (pronounced "jay-peg") is a standardized compression
|
and transcoding. JPEG (pronounced "jay-peg") is a standardized compression
|
||||||
method for full-color and gray-scale images. JPEG's strong suit is compressing
|
method for full-color and gray-scale images. JPEG's strong suit is compressing
|
||||||
photographic images or other types of images which have smooth color and
|
photographic images or other types of images that have smooth color and
|
||||||
brightness transitions between neighboring pixels. Images with sharp lines or
|
brightness transitions between neighboring pixels. Images with sharp lines or
|
||||||
other abrupt features may not compress well with JPEG, and a higher JPEG
|
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
|
||||||
@@ -256,8 +257,8 @@ ARCHIVE LOCATIONS
|
|||||||
The "official" archive site for this software is www.ijg.org.
|
The "official" archive site for this software is www.ijg.org.
|
||||||
The most recent released version can always be found there in
|
The most recent released version can always be found there in
|
||||||
directory "files". This particular version will be archived as
|
directory "files". This particular version will be archived as
|
||||||
http://www.ijg.org/files/jpegsrc.v8b.tar.gz, and in Windows-compatible
|
http://www.ijg.org/files/jpegsrc.v8d.tar.gz, and in Windows-compatible
|
||||||
"zip" archive format as http://www.ijg.org/files/jpegsr8b.zip.
|
"zip" archive format as http://www.ijg.org/files/jpegsr8d.zip.
|
||||||
|
|
||||||
The JPEG FAQ (Frequently Asked Questions) article is a source of some
|
The JPEG FAQ (Frequently Asked Questions) article is a source of some
|
||||||
general information about JPEG.
|
general information about JPEG.
|
||||||
@@ -274,7 +275,7 @@ FILE FORMAT WARS
|
|||||||
================
|
================
|
||||||
|
|
||||||
The ISO JPEG standards committee actually promotes different formats like
|
The ISO JPEG standards committee actually promotes different formats like
|
||||||
"JPEG 2000" or "JPEG XR" which are incompatible with original DCT-based
|
"JPEG 2000" or "JPEG XR", which are incompatible with original DCT-based
|
||||||
JPEG. IJG therefore does not support these formats (see REFERENCES). Indeed,
|
JPEG. IJG therefore does not support these formats (see REFERENCES). Indeed,
|
||||||
one of the original reasons for developing this free software was to help
|
one of the original reasons for developing this free software was to help
|
||||||
force convergence on common, interoperable format standards for JPEG files.
|
force convergence on common, interoperable format standards for JPEG files.
|
||||||
@@ -286,4 +287,4 @@ image files indefinitely.)
|
|||||||
TO DO
|
TO DO
|
||||||
=====
|
=====
|
||||||
|
|
||||||
Please send bug reports, offers of help, etc. to jpeg-info@uc.ag.
|
Please send bug reports, offers of help, etc. to jpeg-info@jpegclub.org.
|
||||||
|
|||||||
181
README-turbo.txt
@@ -2,51 +2,80 @@
|
|||||||
** Background
|
** Background
|
||||||
*******************************************************************************
|
*******************************************************************************
|
||||||
|
|
||||||
libjpeg-turbo is a derivative of libjpeg which uses SIMD instructions (MMX,
|
libjpeg-turbo is a derivative of libjpeg that uses SIMD instructions (MMX,
|
||||||
SSE2, etc.) to accelerate baseline JPEG compression and decompression on x86
|
SSE2, NEON) to accelerate baseline JPEG compression and decompression on x86,
|
||||||
and x86-64 systems. On such systems, libjpeg-turbo is generally 2-4x as fast
|
x86-64, and ARM systems. On such systems, libjpeg-turbo is generally 2-4x as
|
||||||
as the unmodified version of libjpeg, all else being equal.
|
fast as the unmodified version of libjpeg, all else being equal.
|
||||||
|
|
||||||
libjpeg-turbo was originally based on libjpeg/SIMD by Miyasaka Masaru, but
|
libjpeg-turbo was originally based on libjpeg/SIMD by Miyasaka Masaru, but
|
||||||
the TigerVNC and VirtualGL projects made numerous enhancements to the codec in
|
the TigerVNC and VirtualGL projects made numerous enhancements to the codec in
|
||||||
2009, including improved support for Mac OS X, 64-bit support, support for
|
2009, including improved support for Mac OS X, 64-bit support, support for
|
||||||
32-bit and big endian pixel formats (RGBX, XBGR, etc.), accelerated Huffman
|
32-bit and big-endian pixel formats (RGBX, XBGR, etc.), accelerated Huffman
|
||||||
encoding/decoding, and various bug fixes. The goal was to produce a fully open
|
encoding/decoding, and various bug fixes. The goal was to produce a fully
|
||||||
source codec that could replace the partially closed source TurboJPEG/IPP codec
|
open-source codec that could replace the partially closed-source TurboJPEG/IPP
|
||||||
used by VirtualGL and TurboVNC. libjpeg-turbo generally performs in the range
|
codec used by VirtualGL and TurboVNC. libjpeg-turbo generally achieves 80-120%
|
||||||
of 80-120% of TurboJPEG/IPP. It is faster in some areas but slower in others.
|
of the performance of TurboJPEG/IPP. It is faster in some areas but slower in
|
||||||
|
others.
|
||||||
|
|
||||||
In early 2010, libjpeg-turbo spun off into its own independent project, with
|
In early 2010, libjpeg-turbo spun off into its own independent project, with
|
||||||
the goal of making high-speed JPEG compression/decompression technology
|
the goal of making high-speed JPEG compression/decompression technology
|
||||||
available to a broader range of users and developers. The libjpeg-turbo shared
|
available to a broader range of users and developers.
|
||||||
libraries can be used as drop-in replacements for libjpeg on most systems.
|
|
||||||
|
|
||||||
|
|
||||||
*******************************************************************************
|
*******************************************************************************
|
||||||
** License
|
** License
|
||||||
*******************************************************************************
|
*******************************************************************************
|
||||||
|
|
||||||
The TurboJPEG/OSS wrapper, as well as some of the optimizations to the Huffman
|
Most of libjpeg-turbo inherits the non-restrictive, BSD-style license used by
|
||||||
encoder (jchuff.c) and decoder (jdhuff.c), were borrowed from VirtualGL, and
|
libjpeg (see README.) The TurboJPEG/OSS wrapper (both C and Java versions) and
|
||||||
thus any distribution of libjpeg-turbo which includes those files must, as a
|
associated test programs bear a similar license, which is reproduced below:
|
||||||
whole, be subject to the terms of the wxWindows Library Licence, Version 3.1.
|
|
||||||
A copy of this license can be found in this directory under LICENSE.txt. The
|
|
||||||
wxWindows Library License is based on the LGPL but includes provisions which
|
|
||||||
allow the Library to be statically linked into proprietary libraries and
|
|
||||||
applications without requiring the resulting binaries to be distributed under
|
|
||||||
the terms of the LGPL.
|
|
||||||
|
|
||||||
The rest of the source code, apart from TurboJPEG/OSS and the Huffman codec
|
Redistribution and use in source and binary forms, with or without
|
||||||
optimizations, falls under a less restrictive, BSD-style license (see README.)
|
modification, are permitted provided that the following conditions are met:
|
||||||
You can choose to distribute libjpeg-turbo, as a whole, under this BSD-style
|
|
||||||
license by simply removing TurboJPEG/OSS and replacing the optimized jchuff.c
|
- Redistributions of source code must retain the above copyright notice,
|
||||||
and jdhuff.c with their unoptimized counterparts from the libjpeg v6b source.
|
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.
|
||||||
|
|
||||||
|
|
||||||
*******************************************************************************
|
*******************************************************************************
|
||||||
** Using libjpeg-turbo
|
** Using libjpeg-turbo
|
||||||
*******************************************************************************
|
*******************************************************************************
|
||||||
|
|
||||||
|
libjpeg-turbo includes two APIs that can be used to compress and decompress
|
||||||
|
JPEG images:
|
||||||
|
|
||||||
|
TurboJPEG API: This API provides an easy-to-use interface for compressing
|
||||||
|
and decompressing JPEG images in memory. It also provides some functionality
|
||||||
|
that would not be straightforward to achieve using the underlying libjpeg
|
||||||
|
API, such as generating planar YUV images and performing multiple
|
||||||
|
simultaneous lossless transforms on an image. The Java interface for
|
||||||
|
libjpeg-turbo is written on top of the TurboJPEG API.
|
||||||
|
|
||||||
|
libjpeg API: This is the de facto industry-standard API for compressing and
|
||||||
|
decompressing JPEG images. It is more difficult to use than the TurboJPEG
|
||||||
|
API but also more powerful. libjpeg-turbo is both API/ABI-compatible and
|
||||||
|
mathematically compatible with libjpeg v6b. It can also optionally be
|
||||||
|
configured to be API/ABI-compatible with libjpeg v7 and v8 (see below.)
|
||||||
|
|
||||||
|
|
||||||
=============================
|
=============================
|
||||||
Replacing libjpeg at Run Time
|
Replacing libjpeg at Run Time
|
||||||
=============================
|
=============================
|
||||||
@@ -72,13 +101,13 @@ NOTE: {lib} can be lib, lib32, lib64, or lib/64, depending on the O/S and
|
|||||||
architecture.
|
architecture.
|
||||||
|
|
||||||
System administrators can also replace the libjpeg sym links in /usr/{lib} with
|
System administrators can also replace the libjpeg sym links in /usr/{lib} with
|
||||||
links to the libjpeg dynamic library located in /opt/libjpeg-turbo/{lib}. This
|
links to the libjpeg-turbo dynamic library located in /opt/libjpeg-turbo/{lib}.
|
||||||
will effectively accelerate every dynamically linked libjpeg application on the
|
This will effectively accelerate every application that uses the libjpeg
|
||||||
system.
|
dynamic library on the system.
|
||||||
|
|
||||||
The libjpeg-turbo SDK for Visual C++ installs the libjpeg-turbo DLL
|
The libjpeg-turbo SDK for Visual C++ installs the libjpeg-turbo DLL
|
||||||
(jpeg62.dll, jpeg7.dll, or jpeg8.dll, depending on whether libjpeg v6b, v7, or
|
(jpeg62.dll, jpeg7.dll, or jpeg8.dll, depending on whether it was built with
|
||||||
v8 emulation is enabled) into c:\libjpeg-turbo[64]\bin, and the PATH
|
libjpeg v6b, v7, or v8 emulation) into c:\libjpeg-turbo[64]\bin, and the PATH
|
||||||
environment variable can be modified such that this directory is searched
|
environment variable can be modified such that this directory is searched
|
||||||
before any others that might contain a libjpeg DLL. However, if a libjpeg
|
before any others that might contain a libjpeg DLL. However, if a libjpeg
|
||||||
DLL exists in an application's install directory, then Windows will load this
|
DLL exists in an application's install directory, then Windows will load this
|
||||||
@@ -88,16 +117,16 @@ version of this DLL and copy c:\libjpeg-turbo[64]\bin\jpeg*.dll into the
|
|||||||
application's install directory to accelerate it.
|
application's install directory to accelerate it.
|
||||||
|
|
||||||
The version of the libjpeg-turbo DLL distributed in the libjpeg-turbo SDK for
|
The version of the libjpeg-turbo DLL distributed in the libjpeg-turbo SDK for
|
||||||
Visual C++ requires the Visual C++ 2008 C run time DLL (msvcr90.dll).
|
Visual C++ requires the Visual C++ 2008 C run-time DLL (msvcr90.dll).
|
||||||
msvcr90.dll ships with more recent versions of Windows, but users of older
|
msvcr90.dll ships with more recent versions of Windows, but users of older
|
||||||
Windows releases can obtain it from the Visual C++ 2008 Redistributable
|
Windows releases can obtain it from the Visual C++ 2008 Redistributable
|
||||||
Package, which is available as a free download from Microsoft's web site.
|
Package, which is available as a free download from Microsoft's web site.
|
||||||
|
|
||||||
NOTE: Features of libjpeg which require passing a C run time structure, such
|
NOTE: Features of libjpeg that require passing a C run-time structure, such
|
||||||
as a file handle, from an application to libjpeg will probably not work with
|
as a file handle, from an application to libjpeg will probably not work with
|
||||||
the version of the libjpeg-turbo DLL distributed in the libjpeg-turbo SDK for
|
the version of the libjpeg-turbo DLL distributed in the libjpeg-turbo SDK for
|
||||||
Visual C++, unless the application is also built to use the Visual C++ 2008 C
|
Visual C++, unless the application is also built to use the Visual C++ 2008 C
|
||||||
run time DLL. In particular, this affects jpeg_stdio_dest() and
|
run-time DLL. In particular, this affects jpeg_stdio_dest() and
|
||||||
jpeg_stdio_src().
|
jpeg_stdio_src().
|
||||||
|
|
||||||
Mac applications typically embed their own copies of the libjpeg dylib inside
|
Mac applications typically embed their own copies of the libjpeg dylib inside
|
||||||
@@ -117,7 +146,7 @@ Replacing TurboJPEG/IPP
|
|||||||
libjpeg-turbo is a drop-in replacement for the TurboJPEG/IPP SDK used by
|
libjpeg-turbo is a drop-in replacement for the TurboJPEG/IPP SDK used by
|
||||||
VirtualGL 2.1.x and TurboVNC 0.6 (and prior.) libjpeg-turbo contains a wrapper
|
VirtualGL 2.1.x and TurboVNC 0.6 (and prior.) libjpeg-turbo contains a wrapper
|
||||||
library (TurboJPEG/OSS) that emulates the TurboJPEG API using libjpeg-turbo
|
library (TurboJPEG/OSS) that emulates the TurboJPEG API using libjpeg-turbo
|
||||||
instead of the closed source Intel Performance Primitives. You can replace the
|
instead of the closed-source Intel Performance Primitives. You can replace the
|
||||||
TurboJPEG/IPP package on Linux systems with the libjpeg-turbo package in order
|
TurboJPEG/IPP package on Linux systems with the libjpeg-turbo package in order
|
||||||
to make existing releases of VirtualGL 2.1.x and TurboVNC 0.x use the new codec
|
to make existing releases of VirtualGL 2.1.x and TurboVNC 0.x use the new codec
|
||||||
at run time. Note that the 64-bit libjpeg-turbo packages contain only 64-bit
|
at run time. Note that the 64-bit libjpeg-turbo packages contain only 64-bit
|
||||||
@@ -128,7 +157,7 @@ both the 64-bit and 32-bit versions of libjpeg-turbo.
|
|||||||
You can also build the VirtualGL 2.1.x and TurboVNC 0.6 source code with
|
You can also build the VirtualGL 2.1.x and TurboVNC 0.6 source code with
|
||||||
the libjpeg-turbo SDK instead of TurboJPEG/IPP. It should work identically.
|
the libjpeg-turbo SDK instead of TurboJPEG/IPP. It should work identically.
|
||||||
libjpeg-turbo also includes static library versions of TurboJPEG/OSS, which
|
libjpeg-turbo also includes static library versions of TurboJPEG/OSS, which
|
||||||
are used to build TurboVNC 1.0 and later.
|
are used to build VirtualGL 2.2 and TurboVNC 1.0 and later.
|
||||||
|
|
||||||
========================================
|
========================================
|
||||||
Using libjpeg-turbo in Your Own Programs
|
Using libjpeg-turbo in Your Own Programs
|
||||||
@@ -179,9 +208,9 @@ libjpeg-turbo) or jpeg-static.lib (to use the static version of libjpeg-turbo.)
|
|||||||
Colorspace Extensions
|
Colorspace Extensions
|
||||||
=====================
|
=====================
|
||||||
|
|
||||||
libjpeg-turbo includes extensions which allow JPEG images to be compressed
|
libjpeg-turbo includes extensions that allow JPEG images to be compressed
|
||||||
directly from (and decompressed directly to) buffers which use BGR, BGRX,
|
directly from (and decompressed directly to) buffers that use BGR, BGRX,
|
||||||
RGBX, XBGR, and XRGB pixel ordering. This is implemented with six new
|
RGBX, XBGR, and XRGB pixel ordering. This is implemented with ten new
|
||||||
colorspace constants:
|
colorspace constants:
|
||||||
|
|
||||||
JCS_EXT_RGB /* red/green/blue */
|
JCS_EXT_RGB /* red/green/blue */
|
||||||
@@ -190,11 +219,15 @@ colorspace constants:
|
|||||||
JCS_EXT_BGRX /* blue/green/red/x */
|
JCS_EXT_BGRX /* blue/green/red/x */
|
||||||
JCS_EXT_XBGR /* x/blue/green/red */
|
JCS_EXT_XBGR /* x/blue/green/red */
|
||||||
JCS_EXT_XRGB /* x/red/green/blue */
|
JCS_EXT_XRGB /* x/red/green/blue */
|
||||||
|
JCS_EXT_RGBA /* red/green/blue/alpha */
|
||||||
|
JCS_EXT_BGRA /* blue/green/red/alpha */
|
||||||
|
JCS_EXT_ABGR /* alpha/blue/green/red */
|
||||||
|
JCS_EXT_ARGB /* alpha/red/green/blue */
|
||||||
|
|
||||||
Setting cinfo.in_color_space (compression) or cinfo.out_color_space
|
Setting cinfo.in_color_space (compression) or cinfo.out_color_space
|
||||||
(decompression) to one of these values will cause libjpeg-turbo to read the
|
(decompression) to one of these values will cause libjpeg-turbo to read the
|
||||||
red, green, and blue values from (or write them to) the appropriate position in
|
red, green, and blue values from (or write them to) the appropriate position in
|
||||||
the pixel when YUV conversion is performed.
|
the pixel when compressing from/decompressing to an RGB buffer.
|
||||||
|
|
||||||
Your application can check for the existence of these extensions at compile
|
Your application can check for the existence of these extensions at compile
|
||||||
time with:
|
time with:
|
||||||
@@ -204,33 +237,41 @@ time with:
|
|||||||
At run time, attempting to use these extensions with a version of libjpeg
|
At run time, attempting to use these extensions with a version of libjpeg
|
||||||
that doesn't support them will result in a "Bogus input colorspace" error.
|
that doesn't support them will result in a "Bogus input colorspace" error.
|
||||||
|
|
||||||
|
When using the RGBX, BGRX, XBGR, and XRGB colorspaces during decompression, the
|
||||||
|
X byte is undefined, and in order to ensure the best performance, libjpeg-turbo
|
||||||
|
can set that byte to whatever value it wishes. If an application expects the X
|
||||||
|
byte to be used as an alpha channel, then it should specify JCS_EXT_RGBA,
|
||||||
|
JCS_EXT_BGRA, JCS_EXT_ABGR, or JCS_EXT_ARGB. When these colorspace constants
|
||||||
|
are used, the X byte is guaranteed to be 0xFF, which is interpreted as opaque.
|
||||||
|
|
||||||
|
Your application can check for the existence of the alpha channel colorspace
|
||||||
|
extensions at compile time with:
|
||||||
|
|
||||||
|
#ifdef JCS_ALPHA_EXTENSIONS
|
||||||
|
|
||||||
|
jcstest.c, located in the libjpeg-turbo source tree, demonstrates how to check
|
||||||
|
for the existence of the colorspace extensions at compile time and run time.
|
||||||
|
|
||||||
=================================
|
=================================
|
||||||
libjpeg v7 and v8 API/ABI support
|
libjpeg v7 and v8 API/ABI support
|
||||||
=================================
|
=================================
|
||||||
|
|
||||||
libjpeg v7 and v8 added new features to the API/ABI, and, unfortunately, the
|
With libjpeg v7 and v8, new features were added that necessitated extending the
|
||||||
compression and decompression structures were extended in a backward-
|
compression and decompression structures. Unfortunately, due to the exposed
|
||||||
incompatible manner to accommodate these features. Thus, programs which are
|
nature of those structures, extending them also necessitated breaking backward
|
||||||
|
ABI compatibility with previous libjpeg releases. Thus, programs that are
|
||||||
built to use libjpeg v7 or v8 did not work with libjpeg-turbo, since it is
|
built to use libjpeg v7 or v8 did not work with libjpeg-turbo, since it is
|
||||||
based on the libjpeg v6b code base. Although libjpeg v7 and v8 are still not
|
based on the libjpeg v6b code base. Although libjpeg v7 and v8 are still not
|
||||||
as widely used as v6b, enough programs (including a few Linux distros) have
|
as widely used as v6b, enough programs (including a few Linux distros) have
|
||||||
made the switch that it was desirable to provide support for the libjpeg v7/v8
|
made the switch that it was desirable to provide support for the libjpeg v7/v8
|
||||||
API/ABI in libjpeg-turbo.
|
API/ABI in libjpeg-turbo. Although libjpeg-turbo can now be configured as a
|
||||||
|
drop-in replacement for libjpeg v7 or v8, it should be noted that not all of
|
||||||
Some of the libjpeg v7 and v8 features -- DCT scaling, to name one -- involve
|
the features in libjpeg v7 and v8 are supported (see below.)
|
||||||
deep modifications to the code which cannot be accommodated by libjpeg-turbo
|
|
||||||
without either breaking compatibility with libjpeg v6b or producing an
|
|
||||||
unsupportable mess. In order to fully support libjpeg v8 with all of its
|
|
||||||
features, we would have to essentially port the SIMD extensions to the libjpeg
|
|
||||||
v8 code base and maintain two separate code trees. We are hesitant to do this
|
|
||||||
until/unless the newer libjpeg code bases garner more community support and
|
|
||||||
involvement and until/unless we have some notion of whether future libjpeg
|
|
||||||
releases will also be backward-incompatible.
|
|
||||||
|
|
||||||
By passing an argument of --with-jpeg7 or --with-jpeg8 to configure, or an
|
By passing an argument of --with-jpeg7 or --with-jpeg8 to configure, or an
|
||||||
argument of -DWITH_JPEG7=1 or -DWITH_JPEG8=1 to cmake, you can build a version
|
argument of -DWITH_JPEG7=1 or -DWITH_JPEG8=1 to cmake, you can build a version
|
||||||
of libjpeg-turbo which emulates the libjpeg v7 or v8 API/ABI, so that programs
|
of libjpeg-turbo that emulates the libjpeg v7 or v8 API/ABI, so that programs
|
||||||
which are built against libjpeg v7 or v8 can be run with libjpeg-turbo. The
|
that are built against libjpeg v7 or v8 can be run with libjpeg-turbo. The
|
||||||
following section describes which libjpeg v7+ features are supported and which
|
following section describes which libjpeg v7+ features are supported and which
|
||||||
aren't.
|
aren't.
|
||||||
|
|
||||||
@@ -264,6 +305,16 @@ Not supported:
|
|||||||
|
|
||||||
-- libjpeg: DCT scaling in compressor
|
-- libjpeg: DCT scaling in compressor
|
||||||
cinfo.scale_num and cinfo.scale_denom are silently ignored.
|
cinfo.scale_num and cinfo.scale_denom are silently ignored.
|
||||||
|
There is no technical reason why DCT scaling cannot be supported, but
|
||||||
|
without the SmartScale extension (see below), it would only be able to
|
||||||
|
down-scale using ratios of 1/2, 8/15, 4/7, 8/13, 2/3, 8/11, 4/5, and 8/9,
|
||||||
|
which is of limited usefulness.
|
||||||
|
|
||||||
|
-- libjpeg: SmartScale
|
||||||
|
cinfo.block_size is silently ignored.
|
||||||
|
SmartScale is an extension to the JPEG format that allows for DCT block
|
||||||
|
sizes other than 8x8. It would be difficult to support this feature while
|
||||||
|
retaining backward compatibility with libjpeg v6b.
|
||||||
|
|
||||||
-- libjpeg: IDCT scaling extensions in decompressor
|
-- libjpeg: IDCT scaling extensions in decompressor
|
||||||
libjpeg-turbo still supports IDCT scaling with scaling factors of 1/2, 1/4,
|
libjpeg-turbo still supports IDCT scaling with scaling factors of 1/2, 1/4,
|
||||||
@@ -271,9 +322,14 @@ Not supported:
|
|||||||
|
|
||||||
-- libjpeg: Fancy downsampling in compressor
|
-- libjpeg: Fancy downsampling in compressor
|
||||||
cinfo.do_fancy_downsampling is silently ignored.
|
cinfo.do_fancy_downsampling is silently ignored.
|
||||||
|
This requires the DCT scaling feature, which is not supported.
|
||||||
|
|
||||||
-- jpegtran: Scaling
|
-- jpegtran: Scaling
|
||||||
Seems to depend on the DCT scaling feature, which isn't supported.
|
This requires both the DCT scaling and SmartScale features, which are not
|
||||||
|
supported.
|
||||||
|
|
||||||
|
-- Lossless RGB JPEG files
|
||||||
|
This requires the SmartScale feature, which is not supported.
|
||||||
|
|
||||||
|
|
||||||
*******************************************************************************
|
*******************************************************************************
|
||||||
@@ -285,12 +341,13 @@ Restart Markers
|
|||||||
===============
|
===============
|
||||||
|
|
||||||
The optimized Huffman decoder in libjpeg-turbo does not handle restart markers
|
The optimized Huffman decoder in libjpeg-turbo does not handle restart markers
|
||||||
in a way that makes libjpeg happy, so it is necessary to use the slow Huffman
|
in a way that makes the rest of the libjpeg infrastructure happy, so it is
|
||||||
decoder when decompressing a JPEG image that has restart markers. This can
|
necessary to use the slow Huffman decoder when decompressing a JPEG image that
|
||||||
cause the decompression performance to drop by as much as 20%, but the
|
has restart markers. This can cause the decompression performance to drop by
|
||||||
performance will still be much much greater than that of libjpeg v6b. Many
|
as much as 20%, but the performance will still be much greater than that of
|
||||||
consumer packages, such as PhotoShop, use restart markers when generating JPEG
|
libjpeg. Many consumer packages, such as PhotoShop, use restart markers when
|
||||||
images, so images generated by those programs will experience this issue.
|
generating JPEG images, so images generated by those programs will experience
|
||||||
|
this issue.
|
||||||
|
|
||||||
===============================================
|
===============================================
|
||||||
Fast Integer Forward DCT at High Quality Levels
|
Fast Integer Forward DCT at High Quality Levels
|
||||||
|
|||||||
48
acinclude.m4
@@ -3,7 +3,7 @@
|
|||||||
# Check that NASM exists and determine flags
|
# Check that NASM exists and determine flags
|
||||||
AC_DEFUN([AC_PROG_NASM],[
|
AC_DEFUN([AC_PROG_NASM],[
|
||||||
|
|
||||||
AC_CHECK_PROGS(NASM, [nasm nasmw])
|
AC_CHECK_PROGS(NASM, [nasm nasmw yasm])
|
||||||
test -z "$NASM" && AC_MSG_ERROR([no nasm (Netwide Assembler) found])
|
test -z "$NASM" && AC_MSG_ERROR([no nasm (Netwide Assembler) found])
|
||||||
|
|
||||||
AC_MSG_CHECKING([for object file format of host system])
|
AC_MSG_CHECKING([for object file format of host system])
|
||||||
@@ -134,3 +134,49 @@ else
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
])
|
])
|
||||||
|
|
||||||
|
# AC_CHECK_COMPATIBLE_ARM_ASSEMBLER_IFELSE
|
||||||
|
# --------------------------
|
||||||
|
# Test whether the assembler is suitable and supports NEON instructions
|
||||||
|
AC_DEFUN([AC_CHECK_COMPATIBLE_ARM_ASSEMBLER_IFELSE],[
|
||||||
|
ac_good_gnu_arm_assembler=no
|
||||||
|
ac_save_CC="$CC"
|
||||||
|
ac_save_CFLAGS="$CFLAGS"
|
||||||
|
CFLAGS="$CCASFLAGS -x assembler-with-cpp"
|
||||||
|
CC="$CCAS"
|
||||||
|
AC_COMPILE_IFELSE([[
|
||||||
|
.text
|
||||||
|
.fpu neon
|
||||||
|
.arch armv7a
|
||||||
|
.object_arch armv4
|
||||||
|
.arm
|
||||||
|
pld [r0]
|
||||||
|
vmovn.u16 d0, q0]], ac_good_gnu_arm_assembler=yes)
|
||||||
|
|
||||||
|
ac_use_gas_preprocessor=no
|
||||||
|
if test "x$ac_good_gnu_arm_assembler" = "xno" ; then
|
||||||
|
CC="gas-preprocessor.pl $CCAS"
|
||||||
|
AC_COMPILE_IFELSE([[
|
||||||
|
.text
|
||||||
|
.fpu neon
|
||||||
|
.arch armv7a
|
||||||
|
.object_arch armv4
|
||||||
|
.arm
|
||||||
|
pld [r0]
|
||||||
|
vmovn.u16 d0, q0]], ac_use_gas_preprocessor=yes)
|
||||||
|
fi
|
||||||
|
CFLAGS="$ac_save_CFLAGS"
|
||||||
|
CC="$ac_save_CC"
|
||||||
|
|
||||||
|
if test "x$ac_use_gas_preprocessor" = "xyes" ; then
|
||||||
|
CCAS="gas-preprocessor.pl $CCAS"
|
||||||
|
AC_SUBST([CCAS])
|
||||||
|
ac_good_gnu_arm_assembler=yes
|
||||||
|
fi
|
||||||
|
|
||||||
|
if test "x$ac_good_gnu_arm_assembler" = "xyes" ; then
|
||||||
|
$1
|
||||||
|
else
|
||||||
|
$2
|
||||||
|
fi
|
||||||
|
])
|
||||||
|
|||||||
530
bmp.c
@@ -1,370 +1,274 @@
|
|||||||
/* Copyright (C)2004 Landmark Graphics Corporation
|
/*
|
||||||
* Copyright (C)2005 Sun Microsystems, Inc.
|
* Copyright (C)2011 D. R. Commander. All Rights Reserved.
|
||||||
*
|
*
|
||||||
* This library is free software and may be redistributed and/or modified under
|
* Redistribution and use in source and binary forms, with or without
|
||||||
* the terms of the wxWindows Library License, Version 3.1 or (at your option)
|
* modification, are permitted provided that the following conditions are met:
|
||||||
* any later version. The full license is in the LICENSE.txt file included
|
|
||||||
* with this distribution.
|
|
||||||
*
|
*
|
||||||
* This library is distributed in the hope that it will be useful,
|
* - Redistributions of source code must retain the above copyright notice,
|
||||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
* this list of conditions and the following disclaimer.
|
||||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
* - Redistributions in binary form must reproduce the above copyright notice,
|
||||||
* wxWindows Library License for more details.
|
* 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 <fcntl.h>
|
|
||||||
#include <sys/types.h>
|
|
||||||
#include <sys/stat.h>
|
|
||||||
#include <errno.h>
|
|
||||||
#include <stdlib.h>
|
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
#ifdef _WIN32
|
#include <setjmp.h>
|
||||||
#include <io.h>
|
#include <errno.h>
|
||||||
#else
|
#include "cdjpeg.h"
|
||||||
#include <unistd.h>
|
#include <jpeglib.h>
|
||||||
#endif
|
#include <jpegint.h>
|
||||||
#include "./rrutil.h"
|
#include "tjutil.h"
|
||||||
#include "./bmp.h"
|
#include "bmp.h"
|
||||||
|
|
||||||
#ifndef BI_BITFIELDS
|
|
||||||
#define BI_BITFIELDS 3L
|
|
||||||
#endif
|
|
||||||
#ifndef BI_RGB
|
|
||||||
#define BI_RGB 0L
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#define BMPHDRSIZE 54
|
/* This duplicates the functionality of the VirtualGL bitmap library using
|
||||||
typedef struct _bmphdr
|
the components from cjpeg and djpeg */
|
||||||
|
|
||||||
|
|
||||||
|
/* Error handling (based on example in example.c) */
|
||||||
|
|
||||||
|
static char errStr[JMSG_LENGTH_MAX]="No error";
|
||||||
|
|
||||||
|
struct my_error_mgr
|
||||||
{
|
{
|
||||||
unsigned short bfType;
|
struct jpeg_error_mgr pub;
|
||||||
unsigned int bfSize;
|
jmp_buf setjmp_buffer;
|
||||||
unsigned short bfReserved1, bfReserved2;
|
};
|
||||||
unsigned int bfOffBits;
|
typedef struct my_error_mgr *my_error_ptr;
|
||||||
|
|
||||||
unsigned int biSize;
|
static void my_error_exit(j_common_ptr cinfo)
|
||||||
int biWidth, biHeight;
|
|
||||||
unsigned short biPlanes, biBitCount;
|
|
||||||
unsigned int biCompression, biSizeImage;
|
|
||||||
int biXPelsPerMeter, biYPelsPerMeter;
|
|
||||||
unsigned int biClrUsed, biClrImportant;
|
|
||||||
} bmphdr;
|
|
||||||
|
|
||||||
static const char *__bmperr="No error";
|
|
||||||
|
|
||||||
static const int ps[BMPPIXELFORMATS]={3, 4, 3, 4, 4, 4};
|
|
||||||
static const int roffset[BMPPIXELFORMATS]={0, 0, 2, 2, 3, 1};
|
|
||||||
static const int goffset[BMPPIXELFORMATS]={1, 1, 1, 1, 2, 2};
|
|
||||||
static const int boffset[BMPPIXELFORMATS]={2, 2, 0, 0, 1, 3};
|
|
||||||
|
|
||||||
#define _throw(m) {__bmperr=m; retcode=-1; goto finally;}
|
|
||||||
#define _unix(f) {if((f)==-1) _throw(strerror(errno));}
|
|
||||||
#define _catch(f) {if((f)==-1) {retcode=-1; goto finally;}}
|
|
||||||
|
|
||||||
#define readme(fd, addr, size) \
|
|
||||||
if((bytesread=read(fd, addr, (size)))==-1) _throw(strerror(errno)); \
|
|
||||||
if(bytesread!=(size)) _throw("Read error");
|
|
||||||
|
|
||||||
void pixelconvert(unsigned char *srcbuf, enum BMPPIXELFORMAT srcformat,
|
|
||||||
int srcpitch, unsigned char *dstbuf, enum BMPPIXELFORMAT dstformat, int dstpitch,
|
|
||||||
int w, int h, int flip)
|
|
||||||
{
|
{
|
||||||
unsigned char *srcptr, *srcptr0, *dstptr, *dstptr0;
|
my_error_ptr myerr=(my_error_ptr)cinfo->err;
|
||||||
int i, j;
|
(*cinfo->err->output_message)(cinfo);
|
||||||
|
longjmp(myerr->setjmp_buffer, 1);
|
||||||
srcptr=flip? &srcbuf[srcpitch*(h-1)]:srcbuf;
|
|
||||||
for(j=0, dstptr=dstbuf; j<h; j++,
|
|
||||||
srcptr+=flip? -srcpitch:srcpitch, dstptr+=dstpitch)
|
|
||||||
{
|
|
||||||
for(i=0, srcptr0=srcptr, dstptr0=dstptr; i<w; i++,
|
|
||||||
srcptr0+=ps[srcformat], dstptr0+=ps[dstformat])
|
|
||||||
{
|
|
||||||
dstptr0[roffset[dstformat]]=srcptr0[roffset[srcformat]];
|
|
||||||
dstptr0[goffset[dstformat]]=srcptr0[goffset[srcformat]];
|
|
||||||
dstptr0[boffset[dstformat]]=srcptr0[boffset[srcformat]];
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
int loadppm(int *fd, unsigned char **buf, int *w, int *h,
|
/* Based on output_message() in jerror.c */
|
||||||
enum BMPPIXELFORMAT f, int align, int dstbottomup, int ascii)
|
|
||||||
|
static void my_output_message(j_common_ptr cinfo)
|
||||||
{
|
{
|
||||||
FILE *fs=NULL; int retcode=0, scalefactor, dstpitch;
|
(*cinfo->err->format_message)(cinfo, errStr);
|
||||||
unsigned char *tempbuf=NULL; char temps[255], temps2[255];
|
}
|
||||||
int numread=0, totalread=0, pixel[3], i, j;
|
|
||||||
|
|
||||||
if((fs=fdopen(*fd, "r"))==NULL) _throw(strerror(errno));
|
#define _throw(m) {snprintf(errStr, JMSG_LENGTH_MAX, "%s", m); \
|
||||||
|
retval=-1; goto bailout;}
|
||||||
|
#define _throwunix(m) {snprintf(errStr, JMSG_LENGTH_MAX, "%s\n%s", m, \
|
||||||
|
strerror(errno)); retval=-1; goto bailout;}
|
||||||
|
|
||||||
do
|
|
||||||
{
|
|
||||||
if(!fgets(temps, 255, fs)) _throw("Read error");
|
|
||||||
if(strlen(temps)==0 || temps[0]=='\n') continue;
|
|
||||||
if(sscanf(temps, "%s", temps2)==1 && temps2[1]=='#') continue;
|
|
||||||
switch(totalread)
|
|
||||||
{
|
|
||||||
case 0:
|
|
||||||
if((numread=sscanf(temps, "%d %d %d", w, h, &scalefactor))==EOF)
|
|
||||||
_throw("Read error");
|
|
||||||
break;
|
|
||||||
case 1:
|
|
||||||
if((numread=sscanf(temps, "%d %d", h, &scalefactor))==EOF)
|
|
||||||
_throw("Read error");
|
|
||||||
break;
|
|
||||||
case 2:
|
|
||||||
if((numread=sscanf(temps, "%d", &scalefactor))==EOF)
|
|
||||||
_throw("Read error");
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
totalread+=numread;
|
|
||||||
} while(totalread<3);
|
|
||||||
if((*w)<1 || (*h)<1 || scalefactor<1) _throw("Corrupt PPM header");
|
|
||||||
|
|
||||||
dstpitch=(((*w)*ps[f])+(align-1))&(~(align-1));
|
static void pixelconvert(unsigned char *srcbuf, int srcpf, int srcbottomup,
|
||||||
if((*buf=(unsigned char *)malloc(dstpitch*(*h)))==NULL)
|
unsigned char *dstbuf, int dstpf, int dstbottomup, int w, int h)
|
||||||
_throw("Memory allocation error");
|
{
|
||||||
if(ascii)
|
unsigned char *srcptr=srcbuf, *srcptr2;
|
||||||
{
|
int srcps=tjPixelSize[srcpf];
|
||||||
for(j=0; j<*h; j++)
|
int srcstride=srcbottomup? -w*srcps:w*srcps;
|
||||||
{
|
unsigned char *dstptr=dstbuf, *dstptr2;
|
||||||
for(i=0; i<*w; i++)
|
int dstps=tjPixelSize[dstpf];
|
||||||
{
|
int dststride=dstbottomup? -w*dstps:w*dstps;
|
||||||
if(fscanf(fs, "%d%d%d", &pixel[0], &pixel[1], &pixel[2])!=3)
|
int row, col;
|
||||||
_throw("Read error");
|
|
||||||
(*buf)[j*dstpitch+i*ps[f]+roffset[f]]=(unsigned char)(pixel[0]*255/scalefactor);
|
|
||||||
(*buf)[j*dstpitch+i*ps[f]+goffset[f]]=(unsigned char)(pixel[1]*255/scalefactor);
|
|
||||||
(*buf)[j*dstpitch+i*ps[f]+boffset[f]]=(unsigned char)(pixel[2]*255/scalefactor);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
if(scalefactor!=255)
|
|
||||||
_throw("Binary PPMs must have 8-bit components");
|
|
||||||
if((tempbuf=(unsigned char *)malloc((*w)*(*h)*3))==NULL)
|
|
||||||
_throw("Memory allocation error");
|
|
||||||
if(fread(tempbuf, (*w)*(*h)*3, 1, fs)!=1) _throw("Read error");
|
|
||||||
pixelconvert(tempbuf, BMP_RGB, (*w)*3, *buf, f, dstpitch, *w, *h, dstbottomup);
|
|
||||||
}
|
|
||||||
|
|
||||||
finally:
|
if(srcbottomup) srcptr=&srcbuf[w*srcps*(h-1)];
|
||||||
if(fs) {fclose(fs); *fd=-1;}
|
if(dstbottomup) dstptr=&dstbuf[w*dstps*(h-1)];
|
||||||
if(tempbuf) free(tempbuf);
|
for(row=0; row<h; row++, srcptr+=srcstride, dstptr+=dststride)
|
||||||
return retcode;
|
{
|
||||||
|
for(col=0, srcptr2=srcptr, dstptr2=dstptr; col<w; col++, srcptr2+=srcps,
|
||||||
|
dstptr2+=dstps)
|
||||||
|
{
|
||||||
|
dstptr2[tjRedOffset[dstpf]]=srcptr2[tjRedOffset[srcpf]];
|
||||||
|
dstptr2[tjGreenOffset[dstpf]]=srcptr2[tjGreenOffset[srcpf]];
|
||||||
|
dstptr2[tjBlueOffset[dstpf]]=srcptr2[tjBlueOffset[srcpf]];
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
int loadbmp(char *filename, unsigned char **buf, int *w, int *h,
|
int loadbmp(char *filename, unsigned char **buf, int *w, int *h,
|
||||||
enum BMPPIXELFORMAT f, int align, int dstbottomup)
|
int dstpf, int bottomup)
|
||||||
{
|
{
|
||||||
int fd=-1, bytesread, srcpitch, srcbottomup=1, srcps, dstpitch,
|
int retval=0, dstps, srcpf, tempc;
|
||||||
retcode=0;
|
struct jpeg_compress_struct cinfo;
|
||||||
unsigned char *tempbuf=NULL;
|
struct my_error_mgr jerr;
|
||||||
bmphdr bh; int flags=O_RDONLY;
|
cjpeg_source_ptr src;
|
||||||
|
FILE *file=NULL;
|
||||||
|
|
||||||
dstbottomup=dstbottomup? 1:0;
|
memset(&cinfo, 0, sizeof(struct jpeg_compress_struct));
|
||||||
#ifdef _WIN32
|
|
||||||
flags|=O_BINARY;
|
|
||||||
#endif
|
|
||||||
if(!filename || !buf || !w || !h || f<0 || f>BMPPIXELFORMATS-1 || align<1)
|
|
||||||
_throw("invalid argument to loadbmp()");
|
|
||||||
if((align&(align-1))!=0)
|
|
||||||
_throw("Alignment must be a power of 2");
|
|
||||||
_unix(fd=open(filename, flags));
|
|
||||||
|
|
||||||
readme(fd, &bh.bfType, sizeof(unsigned short));
|
if(!filename || !buf || !w || !h || dstpf<0 || dstpf>=TJ_NUMPF)
|
||||||
if(!littleendian()) bh.bfType=byteswap16(bh.bfType);
|
_throw("loadbmp(): Invalid argument");
|
||||||
|
|
||||||
if(bh.bfType==0x3650)
|
if((file=fopen(filename, "rb"))==NULL)
|
||||||
|
_throwunix("loadbmp(): Cannot open input file");
|
||||||
|
|
||||||
|
cinfo.err=jpeg_std_error(&jerr.pub);
|
||||||
|
jerr.pub.error_exit=my_error_exit;
|
||||||
|
jerr.pub.output_message=my_output_message;
|
||||||
|
|
||||||
|
if(setjmp(jerr.setjmp_buffer))
|
||||||
{
|
{
|
||||||
_catch(loadppm(&fd, buf, w, h, f, align, dstbottomup, 0));
|
/* If we get here, the JPEG code has signaled an error. */
|
||||||
goto finally;
|
retval=-1; goto bailout;
|
||||||
}
|
|
||||||
if(bh.bfType==0x3350)
|
|
||||||
{
|
|
||||||
_catch(loadppm(&fd, buf, w, h, f, align, dstbottomup, 1));
|
|
||||||
goto finally;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
readme(fd, &bh.bfSize, sizeof(unsigned int));
|
jpeg_create_compress(&cinfo);
|
||||||
readme(fd, &bh.bfReserved1, sizeof(unsigned short));
|
if((tempc=getc(file))<0 || ungetc(tempc, file)==EOF)
|
||||||
readme(fd, &bh.bfReserved2, sizeof(unsigned short));
|
_throwunix("loadbmp(): Could not read input file")
|
||||||
readme(fd, &bh.bfOffBits, sizeof(unsigned int));
|
else if(tempc==EOF) _throw("loadbmp(): Input file contains no data");
|
||||||
readme(fd, &bh.biSize, sizeof(unsigned int));
|
|
||||||
readme(fd, &bh.biWidth, sizeof(int));
|
|
||||||
readme(fd, &bh.biHeight, sizeof(int));
|
|
||||||
readme(fd, &bh.biPlanes, sizeof(unsigned short));
|
|
||||||
readme(fd, &bh.biBitCount, sizeof(unsigned short));
|
|
||||||
readme(fd, &bh.biCompression, sizeof(unsigned int));
|
|
||||||
readme(fd, &bh.biSizeImage, sizeof(unsigned int));
|
|
||||||
readme(fd, &bh.biXPelsPerMeter, sizeof(int));
|
|
||||||
readme(fd, &bh.biYPelsPerMeter, sizeof(int));
|
|
||||||
readme(fd, &bh.biClrUsed, sizeof(unsigned int));
|
|
||||||
readme(fd, &bh.biClrImportant, sizeof(unsigned int));
|
|
||||||
|
|
||||||
if(!littleendian())
|
if(tempc=='B')
|
||||||
{
|
{
|
||||||
bh.bfSize=byteswap(bh.bfSize);
|
if((src=jinit_read_bmp(&cinfo))==NULL)
|
||||||
bh.bfOffBits=byteswap(bh.bfOffBits);
|
_throw("loadbmp(): Could not initialize bitmap loader");
|
||||||
bh.biSize=byteswap(bh.biSize);
|
}
|
||||||
bh.biWidth=byteswap(bh.biWidth);
|
else if(tempc=='P')
|
||||||
bh.biHeight=byteswap(bh.biHeight);
|
{
|
||||||
bh.biPlanes=byteswap16(bh.biPlanes);
|
if((src=jinit_read_ppm(&cinfo))==NULL)
|
||||||
bh.biBitCount=byteswap16(bh.biBitCount);
|
_throw("loadbmp(): Could not initialize bitmap loader");
|
||||||
bh.biCompression=byteswap(bh.biCompression);
|
}
|
||||||
bh.biSizeImage=byteswap(bh.biSizeImage);
|
else _throw("loadbmp(): Unsupported file type");
|
||||||
bh.biXPelsPerMeter=byteswap(bh.biXPelsPerMeter);
|
|
||||||
bh.biYPelsPerMeter=byteswap(bh.biYPelsPerMeter);
|
src->input_file=file;
|
||||||
bh.biClrUsed=byteswap(bh.biClrUsed);
|
(*src->start_input)(&cinfo, src);
|
||||||
bh.biClrImportant=byteswap(bh.biClrImportant);
|
(*cinfo.mem->realize_virt_arrays)((j_common_ptr)&cinfo);
|
||||||
|
|
||||||
|
*w=cinfo.image_width; *h=cinfo.image_height;
|
||||||
|
|
||||||
|
if(cinfo.input_components==1 && cinfo.in_color_space==JCS_RGB)
|
||||||
|
srcpf=TJPF_GRAY;
|
||||||
|
else srcpf=TJPF_RGB;
|
||||||
|
|
||||||
|
dstps=tjPixelSize[dstpf];
|
||||||
|
if((*buf=(unsigned char *)malloc((*w)*(*h)*dstps))==NULL)
|
||||||
|
_throw("loadbmp(): Memory allocation failure");
|
||||||
|
|
||||||
|
while(cinfo.next_scanline<cinfo.image_height)
|
||||||
|
{
|
||||||
|
int i, nlines=(*src->get_pixel_rows)(&cinfo, src);
|
||||||
|
for(i=0; i<nlines; i++)
|
||||||
|
{
|
||||||
|
unsigned char *outbuf; int row;
|
||||||
|
row=cinfo.next_scanline+i;
|
||||||
|
if(bottomup) outbuf=&(*buf)[((*h)-row-1)*(*w)*dstps];
|
||||||
|
else outbuf=&(*buf)[row*(*w)*dstps];
|
||||||
|
pixelconvert(src->buffer[i], srcpf, 0, outbuf, dstpf, bottomup, *w,
|
||||||
|
nlines);
|
||||||
|
}
|
||||||
|
cinfo.next_scanline+=nlines;
|
||||||
}
|
}
|
||||||
|
|
||||||
if(bh.bfType!=0x4d42 || bh.bfOffBits<BMPHDRSIZE
|
(*src->finish_input)(&cinfo, src);
|
||||||
|| bh.biWidth<1 || bh.biHeight==0)
|
|
||||||
_throw("Corrupt bitmap header");
|
|
||||||
if((bh.biBitCount!=24 && bh.biBitCount!=32) || bh.biCompression!=BI_RGB)
|
|
||||||
_throw("Only uncompessed RGB bitmaps are supported");
|
|
||||||
|
|
||||||
*w=bh.biWidth; *h=bh.biHeight; srcps=bh.biBitCount/8;
|
bailout:
|
||||||
if(*h<0) {*h=-(*h); srcbottomup=0;}
|
jpeg_destroy_compress(&cinfo);
|
||||||
srcpitch=(((*w)*srcps)+3)&(~3);
|
if(file) fclose(file);
|
||||||
dstpitch=(((*w)*ps[f])+(align-1))&(~(align-1));
|
if(retval<0 && buf && *buf) {free(*buf); *buf=NULL;}
|
||||||
|
return retval;
|
||||||
if(srcpitch*(*h)+bh.bfOffBits!=bh.bfSize) _throw("Corrupt bitmap header");
|
|
||||||
if((tempbuf=(unsigned char *)malloc(srcpitch*(*h)))==NULL
|
|
||||||
|| (*buf=(unsigned char *)malloc(dstpitch*(*h)))==NULL)
|
|
||||||
_throw("Memory allocation error");
|
|
||||||
if(lseek(fd, (long)bh.bfOffBits, SEEK_SET)!=(long)bh.bfOffBits)
|
|
||||||
_throw(strerror(errno));
|
|
||||||
_unix(bytesread=read(fd, tempbuf, srcpitch*(*h)));
|
|
||||||
if(bytesread!=srcpitch*(*h)) _throw("Read error");
|
|
||||||
|
|
||||||
pixelconvert(tempbuf, BMP_BGR, srcpitch, *buf, f, dstpitch, *w, *h,
|
|
||||||
srcbottomup!=dstbottomup);
|
|
||||||
|
|
||||||
finally:
|
|
||||||
if(tempbuf) free(tempbuf);
|
|
||||||
if(fd!=-1) close(fd);
|
|
||||||
return retcode;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
#define writeme(fd, addr, size) \
|
|
||||||
if((byteswritten=write(fd, addr, (size)))==-1) _throw(strerror(errno)); \
|
|
||||||
if(byteswritten!=(size)) _throw("Write error");
|
|
||||||
|
|
||||||
int saveppm(char *filename, unsigned char *buf, int w, int h,
|
int savebmp(char *filename, unsigned char *buf, int w, int h, int srcpf,
|
||||||
enum BMPPIXELFORMAT f, int srcpitch, int srcbottomup)
|
int bottomup)
|
||||||
{
|
{
|
||||||
FILE *fs=NULL; int retcode=0;
|
int retval=0, srcps, dstpf;
|
||||||
unsigned char *tempbuf=NULL;
|
struct jpeg_decompress_struct dinfo;
|
||||||
|
struct my_error_mgr jerr;
|
||||||
|
djpeg_dest_ptr dst;
|
||||||
|
FILE *file=NULL;
|
||||||
|
char *ptr=NULL;
|
||||||
|
|
||||||
if((fs=fopen(filename, "wb"))==NULL) _throw(strerror(errno));
|
memset(&dinfo, 0, sizeof(struct jpeg_decompress_struct));
|
||||||
if(fprintf(fs, "P6\n")<1) _throw("Write error");
|
|
||||||
if(fprintf(fs, "%d %d\n", w, h)<1) _throw("Write error");
|
|
||||||
if(fprintf(fs, "255\n")<1) _throw("Write error");
|
|
||||||
|
|
||||||
if((tempbuf=(unsigned char *)malloc(w*h*3))==NULL)
|
if(!filename || !buf || w<1 || h<1 || srcpf<0 || srcpf>=TJ_NUMPF)
|
||||||
_throw("Memory allocation error");
|
_throw("savebmp(): Invalid argument");
|
||||||
|
|
||||||
pixelconvert(buf, f, srcpitch, tempbuf, BMP_RGB, w*3, w, h,
|
if((file=fopen(filename, "wb"))==NULL)
|
||||||
srcbottomup);
|
_throwunix("savebmp(): Cannot open output file");
|
||||||
|
|
||||||
if((fwrite(tempbuf, w*h*3, 1, fs))!=1) _throw("Write error");
|
dinfo.err=jpeg_std_error(&jerr.pub);
|
||||||
|
jerr.pub.error_exit=my_error_exit;
|
||||||
|
jerr.pub.output_message=my_output_message;
|
||||||
|
|
||||||
finally:
|
if(setjmp(jerr.setjmp_buffer))
|
||||||
if(tempbuf) free(tempbuf);
|
|
||||||
if(fs) fclose(fs);
|
|
||||||
return retcode;
|
|
||||||
}
|
|
||||||
|
|
||||||
int savebmp(char *filename, unsigned char *buf, int w, int h,
|
|
||||||
enum BMPPIXELFORMAT f, int srcpitch, int srcbottomup)
|
|
||||||
{
|
|
||||||
int fd=-1, byteswritten, dstpitch, retcode=0;
|
|
||||||
int flags=O_RDWR|O_CREAT|O_TRUNC;
|
|
||||||
unsigned char *tempbuf=NULL; char *temp;
|
|
||||||
bmphdr bh; int mode;
|
|
||||||
|
|
||||||
#ifdef _WIN32
|
|
||||||
flags|=O_BINARY; mode=_S_IREAD|_S_IWRITE;
|
|
||||||
#else
|
|
||||||
mode=S_IRUSR|S_IWUSR|S_IRGRP|S_IWGRP|S_IROTH|S_IWOTH;
|
|
||||||
#endif
|
|
||||||
if(!filename || !buf || w<1 || h<1 || f<0 || f>BMPPIXELFORMATS-1 || srcpitch<0)
|
|
||||||
_throw("bad argument to savebmp()");
|
|
||||||
|
|
||||||
if(srcpitch==0) srcpitch=w*ps[f];
|
|
||||||
|
|
||||||
if((temp=strrchr(filename, '.'))!=NULL)
|
|
||||||
{
|
{
|
||||||
if(!stricmp(temp, ".ppm"))
|
/* If we get here, the JPEG code has signaled an error. */
|
||||||
return saveppm(filename, buf, w, h, f, srcpitch, srcbottomup);
|
retval=-1; goto bailout;
|
||||||
}
|
}
|
||||||
|
|
||||||
_unix(fd=open(filename, flags, mode));
|
jpeg_create_decompress(&dinfo);
|
||||||
dstpitch=((w*3)+3)&(~3);
|
if(srcpf==TJPF_GRAY)
|
||||||
|
|
||||||
bh.bfType=0x4d42;
|
|
||||||
bh.bfSize=BMPHDRSIZE+dstpitch*h;
|
|
||||||
bh.bfReserved1=0; bh.bfReserved2=0;
|
|
||||||
bh.bfOffBits=BMPHDRSIZE;
|
|
||||||
bh.biSize=40;
|
|
||||||
bh.biWidth=w; bh.biHeight=h;
|
|
||||||
bh.biPlanes=0; bh.biBitCount=24;
|
|
||||||
bh.biCompression=BI_RGB; bh.biSizeImage=0;
|
|
||||||
bh.biXPelsPerMeter=0; bh.biYPelsPerMeter=0;
|
|
||||||
bh.biClrUsed=0; bh.biClrImportant=0;
|
|
||||||
|
|
||||||
if(!littleendian())
|
|
||||||
{
|
{
|
||||||
bh.bfType=byteswap16(bh.bfType);
|
dinfo.out_color_components=dinfo.output_components=1;
|
||||||
bh.bfSize=byteswap(bh.bfSize);
|
dinfo.out_color_space=JCS_GRAYSCALE;
|
||||||
bh.bfOffBits=byteswap(bh.bfOffBits);
|
}
|
||||||
bh.biSize=byteswap(bh.biSize);
|
else
|
||||||
bh.biWidth=byteswap(bh.biWidth);
|
{
|
||||||
bh.biHeight=byteswap(bh.biHeight);
|
dinfo.out_color_components=dinfo.output_components=3;
|
||||||
bh.biPlanes=byteswap16(bh.biPlanes);
|
dinfo.out_color_space=JCS_RGB;
|
||||||
bh.biBitCount=byteswap16(bh.biBitCount);
|
}
|
||||||
bh.biCompression=byteswap(bh.biCompression);
|
dinfo.image_width=w; dinfo.image_height=h;
|
||||||
bh.biSizeImage=byteswap(bh.biSizeImage);
|
dinfo.global_state=DSTATE_READY;
|
||||||
bh.biXPelsPerMeter=byteswap(bh.biXPelsPerMeter);
|
dinfo.scale_num=dinfo.scale_denom=1;
|
||||||
bh.biYPelsPerMeter=byteswap(bh.biYPelsPerMeter);
|
|
||||||
bh.biClrUsed=byteswap(bh.biClrUsed);
|
ptr=strrchr(filename, '.');
|
||||||
bh.biClrImportant=byteswap(bh.biClrImportant);
|
if(ptr && !strcasecmp(ptr, ".bmp"))
|
||||||
|
{
|
||||||
|
if((dst=jinit_write_bmp(&dinfo, 0))==NULL)
|
||||||
|
_throw("savebmp(): Could not initialize bitmap writer");
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
if((dst=jinit_write_ppm(&dinfo))==NULL)
|
||||||
|
_throw("savebmp(): Could not initialize PPM writer");
|
||||||
}
|
}
|
||||||
|
|
||||||
writeme(fd, &bh.bfType, sizeof(unsigned short));
|
dst->output_file=file;
|
||||||
writeme(fd, &bh.bfSize, sizeof(unsigned int));
|
(*dst->start_output)(&dinfo, dst);
|
||||||
writeme(fd, &bh.bfReserved1, sizeof(unsigned short));
|
(*dinfo.mem->realize_virt_arrays)((j_common_ptr)&dinfo);
|
||||||
writeme(fd, &bh.bfReserved2, sizeof(unsigned short));
|
|
||||||
writeme(fd, &bh.bfOffBits, sizeof(unsigned int));
|
|
||||||
writeme(fd, &bh.biSize, sizeof(unsigned int));
|
|
||||||
writeme(fd, &bh.biWidth, sizeof(int));
|
|
||||||
writeme(fd, &bh.biHeight, sizeof(int));
|
|
||||||
writeme(fd, &bh.biPlanes, sizeof(unsigned short));
|
|
||||||
writeme(fd, &bh.biBitCount, sizeof(unsigned short));
|
|
||||||
writeme(fd, &bh.biCompression, sizeof(unsigned int));
|
|
||||||
writeme(fd, &bh.biSizeImage, sizeof(unsigned int));
|
|
||||||
writeme(fd, &bh.biXPelsPerMeter, sizeof(int));
|
|
||||||
writeme(fd, &bh.biYPelsPerMeter, sizeof(int));
|
|
||||||
writeme(fd, &bh.biClrUsed, sizeof(unsigned int));
|
|
||||||
writeme(fd, &bh.biClrImportant, sizeof(unsigned int));
|
|
||||||
|
|
||||||
if((tempbuf=(unsigned char *)malloc(dstpitch*h))==NULL)
|
if(srcpf==TJPF_GRAY) dstpf=srcpf;
|
||||||
_throw("Memory allocation error");
|
else dstpf=TJPF_RGB;
|
||||||
|
srcps=tjPixelSize[srcpf];
|
||||||
|
|
||||||
pixelconvert(buf, f, srcpitch, tempbuf, BMP_BGR, dstpitch, w, h,
|
while(dinfo.output_scanline<dinfo.output_height)
|
||||||
!srcbottomup);
|
{
|
||||||
|
int i, nlines=dst->buffer_height;
|
||||||
|
for(i=0; i<nlines; i++)
|
||||||
|
{
|
||||||
|
unsigned char *inbuf; int row;
|
||||||
|
row=dinfo.output_scanline+i;
|
||||||
|
if(bottomup) inbuf=&buf[(h-row-1)*w*srcps];
|
||||||
|
else inbuf=&buf[row*w*srcps];
|
||||||
|
pixelconvert(inbuf, srcpf, bottomup, dst->buffer[i], dstpf, 0, w,
|
||||||
|
nlines);
|
||||||
|
}
|
||||||
|
(*dst->put_pixel_rows)(&dinfo, dst, nlines);
|
||||||
|
dinfo.output_scanline+=nlines;
|
||||||
|
}
|
||||||
|
|
||||||
if((byteswritten=write(fd, tempbuf, dstpitch*h))!=dstpitch*h)
|
(*dst->finish_output)(&dinfo, dst);
|
||||||
_throw(strerror(errno));
|
|
||||||
|
|
||||||
finally:
|
bailout:
|
||||||
if(tempbuf) free(tempbuf);
|
jpeg_destroy_decompress(&dinfo);
|
||||||
if(fd!=-1) close(fd);
|
if(file) fclose(file);
|
||||||
return retcode;
|
return retval;
|
||||||
}
|
}
|
||||||
|
|
||||||
const char *bmpgeterr(void)
|
const char *bmpgeterr(void)
|
||||||
{
|
{
|
||||||
return __bmperr;
|
return errStr;
|
||||||
}
|
}
|
||||||
|
|||||||
63
bmp.h
@@ -1,44 +1,41 @@
|
|||||||
/* Copyright (C)2004 Landmark Graphics Corporation
|
/*
|
||||||
* Copyright (C)2005 Sun Microsystems, Inc.
|
* Copyright (C)2011 D. R. Commander. All Rights Reserved.
|
||||||
* Copyright (C)2011 D. R. Commander
|
|
||||||
*
|
*
|
||||||
* This library is free software and may be redistributed and/or modified under
|
* Redistribution and use in source and binary forms, with or without
|
||||||
* the terms of the wxWindows Library License, Version 3.1 or (at your option)
|
* modification, are permitted provided that the following conditions are met:
|
||||||
* any later version. The full license is in the LICENSE.txt file included
|
|
||||||
* with this distribution.
|
|
||||||
*
|
*
|
||||||
* This library is distributed in the hope that it will be useful,
|
* - Redistributions of source code must retain the above copyright notice,
|
||||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
* this list of conditions and the following disclaimer.
|
||||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
* - Redistributions in binary form must reproduce the above copyright notice,
|
||||||
* wxWindows Library License for more details.
|
* 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
|
||||||
// This provides rudimentary facilities for loading and saving true color
|
* contributors may be used to endorse or promote products derived from this
|
||||||
// BMP and PPM files
|
* 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.
|
||||||
|
*/
|
||||||
|
|
||||||
#ifndef __BMP_H__
|
#ifndef __BMP_H__
|
||||||
#define __BMP_H__
|
#define __BMP_H__
|
||||||
|
|
||||||
#define BMPPIXELFORMATS 6
|
#include "./turbojpeg.h"
|
||||||
enum BMPPIXELFORMAT {BMP_RGB=0, BMP_RGBX, BMP_BGR, BMP_BGRX, BMP_XBGR, BMP_XRGB};
|
|
||||||
|
|
||||||
#ifdef __cplusplus
|
int loadbmp(char *filename, unsigned char **buf, int *w, int *h, int pf,
|
||||||
extern "C" {
|
int bottomup);
|
||||||
#endif
|
|
||||||
|
|
||||||
// This will load a Windows bitmap from a file and return a buffer with the
|
int savebmp(char *filename, unsigned char *buf, int w, int h, int pf,
|
||||||
// specified pixel format, scanline alignment, and orientation. The width and
|
int bottomup);
|
||||||
// height are returned in w and h.
|
|
||||||
|
|
||||||
int loadbmp(char *filename, unsigned char **buf, int *w, int *h,
|
|
||||||
enum BMPPIXELFORMAT f, int align, int dstbottomup);
|
|
||||||
|
|
||||||
// This will save a buffer with the specified pixel format, pitch, orientation,
|
|
||||||
// width, and height as a 24-bit Windows bitmap or PPM (the filename determines
|
|
||||||
// which format to use)
|
|
||||||
|
|
||||||
int savebmp(char *filename, unsigned char *buf, int w, int h,
|
|
||||||
enum BMPPIXELFORMAT f, int srcpitch, int srcbottomup);
|
|
||||||
|
|
||||||
const char *bmpgeterr(void);
|
const char *bmpgeterr(void);
|
||||||
|
|
||||||
|
|||||||
16
cjpeg.1
@@ -1,4 +1,4 @@
|
|||||||
.TH CJPEG 1 "11 October 2010"
|
.TH CJPEG 1 "31 January 2012"
|
||||||
.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
|
||||||
@@ -121,7 +121,7 @@ quality-sensitive applications, for which the artifacts generated by
|
|||||||
subsampling may be unacceptable.
|
subsampling may be unacceptable.
|
||||||
.PP
|
.PP
|
||||||
The \fB-quality\fR option accepts a comma-separated list of parameters, which
|
The \fB-quality\fR option accepts a comma-separated list of parameters, which
|
||||||
respectively refer to the quality levels which should be assigned to the
|
respectively refer to the quality levels that should be assigned to the
|
||||||
quantization table slots. If there are more q-table slots than parameters,
|
quantization table slots. If there are more q-table slots than parameters,
|
||||||
then the last parameter is replicated. Thus, if only one quality parameter is
|
then the last parameter is replicated. Thus, if only one quality parameter is
|
||||||
given, this is used for both luminance and chrominance (slots 0 and 1,
|
given, this is used for both luminance and chrominance (slots 0 and 1,
|
||||||
@@ -150,6 +150,12 @@ about the same --- often a little smaller.
|
|||||||
.PP
|
.PP
|
||||||
Switches for advanced users:
|
Switches for advanced users:
|
||||||
.TP
|
.TP
|
||||||
|
.B \-arithmetic
|
||||||
|
Use arithmetic coding.
|
||||||
|
.B Caution:
|
||||||
|
arithmetic coded JPEG is not yet widely implemented, so many decoders will be
|
||||||
|
unable to view an arithmetic coded JPEG file at all.
|
||||||
|
.TP
|
||||||
.B \-dct int
|
.B \-dct int
|
||||||
Use integer DCT method (default).
|
Use integer DCT method (default).
|
||||||
.TP
|
.TP
|
||||||
@@ -214,12 +220,6 @@ visibly blur the image, however.
|
|||||||
.PP
|
.PP
|
||||||
Switches for wizards:
|
Switches for wizards:
|
||||||
.TP
|
.TP
|
||||||
.B \-arithmetic
|
|
||||||
Use arithmetic coding.
|
|
||||||
.B Caution:
|
|
||||||
arithmetic coded JPEG is not yet widely implemented, so many decoders will be
|
|
||||||
unable to view an arithmetic coded JPEG file at all.
|
|
||||||
.TP
|
|
||||||
.B \-baseline
|
.B \-baseline
|
||||||
Force baseline-compatible quantization tables to be generated. This clamps
|
Force baseline-compatible quantization tables to be generated. This clamps
|
||||||
quantization values to 8 bits even at low quality settings. (This switch is
|
quantization values to 8 bits even at low quality settings. (This switch is
|
||||||
|
|||||||
12
cjpeg.c
@@ -164,6 +164,9 @@ usage (void)
|
|||||||
fprintf(stderr, " -targa Input file is Targa format (usually not needed)\n");
|
fprintf(stderr, " -targa Input file is Targa format (usually not needed)\n");
|
||||||
#endif
|
#endif
|
||||||
fprintf(stderr, "Switches for advanced users:\n");
|
fprintf(stderr, "Switches for advanced users:\n");
|
||||||
|
#ifdef C_ARITH_CODING_SUPPORTED
|
||||||
|
fprintf(stderr, " -arithmetic Use arithmetic coding\n");
|
||||||
|
#endif
|
||||||
#ifdef DCT_ISLOW_SUPPORTED
|
#ifdef DCT_ISLOW_SUPPORTED
|
||||||
fprintf(stderr, " -dct int Use integer DCT method%s\n",
|
fprintf(stderr, " -dct int Use integer DCT method%s\n",
|
||||||
(JDCT_DEFAULT == JDCT_ISLOW ? " (default)" : ""));
|
(JDCT_DEFAULT == JDCT_ISLOW ? " (default)" : ""));
|
||||||
@@ -184,9 +187,6 @@ usage (void)
|
|||||||
fprintf(stderr, " -outfile name Specify name for output file\n");
|
fprintf(stderr, " -outfile name Specify name for output file\n");
|
||||||
fprintf(stderr, " -verbose or -debug Emit debug output\n");
|
fprintf(stderr, " -verbose or -debug Emit debug output\n");
|
||||||
fprintf(stderr, "Switches for wizards:\n");
|
fprintf(stderr, "Switches for wizards:\n");
|
||||||
#ifdef C_ARITH_CODING_SUPPORTED
|
|
||||||
fprintf(stderr, " -arithmetic Use arithmetic coding\n");
|
|
||||||
#endif
|
|
||||||
fprintf(stderr, " -baseline Force baseline quantization tables\n");
|
fprintf(stderr, " -baseline Force baseline quantization tables\n");
|
||||||
fprintf(stderr, " -qtables file Use quantization tables given in file\n");
|
fprintf(stderr, " -qtables file Use quantization tables given in file\n");
|
||||||
fprintf(stderr, " -qslots N[,...] Set component quantization tables\n");
|
fprintf(stderr, " -qslots N[,...] Set component quantization tables\n");
|
||||||
@@ -277,9 +277,9 @@ parse_switches (j_compress_ptr cinfo, int argc, char **argv,
|
|||||||
if (! printed_version) {
|
if (! printed_version) {
|
||||||
fprintf(stderr, "%s version %s (build %s)\n",
|
fprintf(stderr, "%s version %s (build %s)\n",
|
||||||
PACKAGE_NAME, VERSION, BUILD);
|
PACKAGE_NAME, VERSION, BUILD);
|
||||||
fprintf(stderr, "%s\n\n", LJTCOPYRIGHT);
|
fprintf(stderr, "%s\n\n", JCOPYRIGHT);
|
||||||
fprintf(stderr, "Based on Independent JPEG Group's libjpeg, version %s\n%s\n\n",
|
fprintf(stderr, "Emulating The Independent JPEG Group's libjpeg, version %s\n\n",
|
||||||
JVERSION, JCOPYRIGHT);
|
JVERSION);
|
||||||
printed_version = TRUE;
|
printed_version = TRUE;
|
||||||
}
|
}
|
||||||
cinfo->err->trace_level++;
|
cinfo->err->trace_level++;
|
||||||
|
|||||||
34
cmakescripts/testclean.cmake
Normal file
@@ -0,0 +1,34 @@
|
|||||||
|
file(GLOB FILES
|
||||||
|
testout*
|
||||||
|
*_GRAY_*.bmp
|
||||||
|
*_GRAY_*.png
|
||||||
|
*_GRAY_*.ppm
|
||||||
|
*_GRAY_*.jpg
|
||||||
|
*_GRAY.yuv
|
||||||
|
*_420_*.bmp
|
||||||
|
*_420_*.png
|
||||||
|
*_420_*.ppm
|
||||||
|
*_420_*.jpg
|
||||||
|
*_420.yuv
|
||||||
|
*_422_*.bmp
|
||||||
|
*_422_*.png
|
||||||
|
*_422_*.ppm
|
||||||
|
*_422_*.jpg
|
||||||
|
*_422.yuv
|
||||||
|
*_444_*.bmp
|
||||||
|
*_444_*.png
|
||||||
|
*_444_*.ppm
|
||||||
|
*_444_*.jpg
|
||||||
|
*_444.yuv
|
||||||
|
*_440_*.bmp
|
||||||
|
*_440_*.png
|
||||||
|
*_440_*.ppm
|
||||||
|
*_440_*.jpg
|
||||||
|
*_440.yuv)
|
||||||
|
|
||||||
|
if(NOT FILES STREQUAL "")
|
||||||
|
message(STATUS "Removing test files")
|
||||||
|
file(REMOVE ${FILES})
|
||||||
|
else()
|
||||||
|
message(STATUS "No files to remove")
|
||||||
|
endif()
|
||||||
113
configure.ac
@@ -2,7 +2,7 @@
|
|||||||
# Process this file with autoconf to produce a configure script.
|
# Process this file with autoconf to produce a configure script.
|
||||||
|
|
||||||
AC_PREREQ([2.56])
|
AC_PREREQ([2.56])
|
||||||
AC_INIT([libjpeg-turbo], [1.1.1])
|
AC_INIT([libjpeg-turbo], [1.2.1])
|
||||||
BUILD=`date +%Y%m%d`
|
BUILD=`date +%Y%m%d`
|
||||||
|
|
||||||
AM_INIT_AUTOMAKE([-Wall foreign dist-bzip2])
|
AM_INIT_AUTOMAKE([-Wall foreign dist-bzip2])
|
||||||
@@ -16,6 +16,7 @@ SAVED_CFLAGS=${CFLAGS}
|
|||||||
SAVED_CPPFLAGS=${CPPFLAGS}
|
SAVED_CPPFLAGS=${CPPFLAGS}
|
||||||
AC_PROG_CPP
|
AC_PROG_CPP
|
||||||
AC_PROG_CC
|
AC_PROG_CC
|
||||||
|
AM_PROG_AS
|
||||||
AC_PROG_INSTALL
|
AC_PROG_INSTALL
|
||||||
AC_PROG_LIBTOOL
|
AC_PROG_LIBTOOL
|
||||||
AC_PROG_LN_S
|
AC_PROG_LN_S
|
||||||
@@ -139,6 +140,8 @@ AC_MSG_RESULT([$SO_MAJOR_VERSION:$SO_MINOR_VERSION])
|
|||||||
AC_SUBST(SO_MAJOR_VERSION)
|
AC_SUBST(SO_MAJOR_VERSION)
|
||||||
AC_SUBST(SO_MINOR_VERSION)
|
AC_SUBST(SO_MINOR_VERSION)
|
||||||
|
|
||||||
|
AC_DEFINE_UNQUOTED(LIBJPEG_TURBO_VERSION, [$VERSION], [libjpeg-turbo version])
|
||||||
|
|
||||||
VERSION_SCRIPT=yes
|
VERSION_SCRIPT=yes
|
||||||
AC_ARG_ENABLE([ld-version-script],
|
AC_ARG_ENABLE([ld-version-script],
|
||||||
AS_HELP_STRING([--disable-ld-version-script],
|
AS_HELP_STRING([--disable-ld-version-script],
|
||||||
@@ -172,6 +175,20 @@ AC_MSG_RESULT($VERSION_SCRIPT)
|
|||||||
AM_CONDITIONAL(VERSION_SCRIPT, test "x$VERSION_SCRIPT" = "xyes")
|
AM_CONDITIONAL(VERSION_SCRIPT, test "x$VERSION_SCRIPT" = "xyes")
|
||||||
AC_SUBST(VERSION_SCRIPT_FLAG)
|
AC_SUBST(VERSION_SCRIPT_FLAG)
|
||||||
|
|
||||||
|
# Check for non-broken inline under various spellings
|
||||||
|
AC_MSG_CHECKING(for inline)
|
||||||
|
ljt_cv_inline=""
|
||||||
|
AC_TRY_COMPILE(, [} __attribute__((always_inline)) int foo() { return 0; }
|
||||||
|
int bar() { return foo();], ljt_cv_inline="__attribute__((always_inline))",
|
||||||
|
AC_TRY_COMPILE(, [} __inline__ int foo() { return 0; }
|
||||||
|
int bar() { return foo();], ljt_cv_inline="__inline__",
|
||||||
|
AC_TRY_COMPILE(, [} __inline int foo() { return 0; }
|
||||||
|
int bar() { return foo();], ljt_cv_inline="__inline",
|
||||||
|
AC_TRY_COMPILE(, [} inline int foo() { return 0; }
|
||||||
|
int bar() { return foo();], ljt_cv_inline="inline"))))
|
||||||
|
AC_MSG_RESULT($ljt_cv_inline)
|
||||||
|
AC_DEFINE_UNQUOTED([INLINE],[$ljt_cv_inline],[How to obtain function inlining.])
|
||||||
|
|
||||||
AC_MSG_CHECKING([whether to include arithmetic encoding support])
|
AC_MSG_CHECKING([whether to include arithmetic encoding support])
|
||||||
AC_ARG_WITH([arith-enc],
|
AC_ARG_WITH([arith-enc],
|
||||||
AC_HELP_STRING([--without-arith-enc], [Omit arithmetic encoding support]))
|
AC_HELP_STRING([--without-arith-enc], [Omit arithmetic encoding support]))
|
||||||
@@ -196,6 +213,84 @@ AM_CONDITIONAL([WITH_ARITH_DEC], [test "x$with_arith_dec" != "xno"])
|
|||||||
|
|
||||||
AM_CONDITIONAL([WITH_ARITH], [test "x$with_arith_dec" != "xno" -o "x$with_arith_enc" != "xno"])
|
AM_CONDITIONAL([WITH_ARITH], [test "x$with_arith_dec" != "xno" -o "x$with_arith_enc" != "xno"])
|
||||||
|
|
||||||
|
AC_ARG_VAR(JAVAC, [Java compiler command (default: javac)])
|
||||||
|
if test "x$JAVAC" = "x"; then
|
||||||
|
JAVAC=javac
|
||||||
|
fi
|
||||||
|
AC_SUBST(JAVAC)
|
||||||
|
AC_ARG_VAR(JAVACFLAGS, [Java compiler flags])
|
||||||
|
AC_SUBST(JAVACFLAGS)
|
||||||
|
AC_ARG_VAR(JAR, [Java archive command (default: jar)])
|
||||||
|
if test "x$JAR" = "x"; then
|
||||||
|
JAR=jar
|
||||||
|
fi
|
||||||
|
AC_SUBST(JAR)
|
||||||
|
AC_ARG_VAR(JAVA, [Java runtime command (default: java)])
|
||||||
|
if test "x$JAVA" = "x"; then
|
||||||
|
JAVA=java
|
||||||
|
fi
|
||||||
|
AC_SUBST(JAVA)
|
||||||
|
AC_ARG_VAR(JNI_CFLAGS, [C compiler flags needed to include jni.h (default: -I/System/Library/Frameworks/JavaVM.framework/Headers on OS X, '-I/usr/java/include -I/usr/java/include/solaris' on Solaris, and '-I/usr/java/default/include -I/usr/java/default/include/linux' on Linux)])
|
||||||
|
|
||||||
|
AC_MSG_CHECKING([whether to build TurboJPEG/OSS Java wrapper])
|
||||||
|
AC_ARG_WITH([java],
|
||||||
|
AC_HELP_STRING([--with-java],[Build Java wrapper for the TurboJPEG/OSS library]))
|
||||||
|
|
||||||
|
RPM_CONFIG_ARGS=
|
||||||
|
WITH_JAVA=0
|
||||||
|
if test "x$with_java" = "xyes"; then
|
||||||
|
AC_MSG_RESULT(yes)
|
||||||
|
|
||||||
|
case $host_os in
|
||||||
|
darwin*)
|
||||||
|
DEFAULT_JNI_CFLAGS=-I/System/Library/Frameworks/JavaVM.framework/Headers
|
||||||
|
;;
|
||||||
|
solaris*)
|
||||||
|
DEFAULT_JNI_CFLAGS='-I/usr/java/include -I/usr/java/include/solaris'
|
||||||
|
;;
|
||||||
|
linux*)
|
||||||
|
DEFAULT_JNI_CFLAGS='-I/usr/java/default/include -I/usr/java/default/include/linux'
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
if test "x$JNI_CFLAGS" = "x"; then
|
||||||
|
JNI_CFLAGS=$DEFAULT_JNI_CFLAGS
|
||||||
|
fi
|
||||||
|
|
||||||
|
SAVE_CPPFLAGS=${CPPFLAGS}
|
||||||
|
CPPFLAGS="${CPPFLAGS} ${JNI_CFLAGS}"
|
||||||
|
AC_CHECK_HEADERS([jni.h], [DUMMY=1],
|
||||||
|
[AC_MSG_ERROR([Could not find JNI header file])])
|
||||||
|
CPPFLAGS=${SAVE_CPPFLAGS}
|
||||||
|
AC_SUBST(JNI_CFLAGS)
|
||||||
|
|
||||||
|
RPM_CONFIG_ARGS=--with-java
|
||||||
|
JAVA_RPM_CONTENTS_1='%dir /opt/%{name}/classes'
|
||||||
|
JAVA_RPM_CONTENTS_2=/opt/%{name}/classes/turbojpeg.jar
|
||||||
|
WITH_JAVA=1
|
||||||
|
else
|
||||||
|
AC_MSG_RESULT(no)
|
||||||
|
fi
|
||||||
|
AM_CONDITIONAL([WITH_JAVA], [test "x$with_java" = "xyes"])
|
||||||
|
AC_SUBST(WITH_JAVA)
|
||||||
|
AC_SUBST(JAVA_RPM_CONTENTS_1)
|
||||||
|
AC_SUBST(JAVA_RPM_CONTENTS_2)
|
||||||
|
AC_SUBST(RPM_CONFIG_ARGS)
|
||||||
|
|
||||||
|
# optionally force using gas-preprocessor.pl for compatibility testing
|
||||||
|
AC_ARG_WITH([gas-preprocessor],
|
||||||
|
AC_HELP_STRING([--with-gas-preprocessor],[Force using gas-preprocessor.pl on ARM.]))
|
||||||
|
if test "x${with_gas_preprocessor}" = "xyes"; then
|
||||||
|
case $host_os in
|
||||||
|
darwin*)
|
||||||
|
CCAS="gas-preprocessor.pl -fix-unreq $CC"
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
CCAS="gas-preprocessor.pl -no-fix-unreq $CC"
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
AC_SUBST([CCAS])
|
||||||
|
fi
|
||||||
|
|
||||||
# SIMD is optional
|
# SIMD is optional
|
||||||
AC_ARG_WITH([simd],
|
AC_ARG_WITH([simd],
|
||||||
AC_HELP_STRING([--without-simd],[Omit SIMD extensions.]))
|
AC_HELP_STRING([--without-simd],[Omit SIMD extensions.]))
|
||||||
@@ -213,6 +308,16 @@ if test "x${with_simd}" != "xno"; then
|
|||||||
AC_PROG_NASM
|
AC_PROG_NASM
|
||||||
simd_arch=i386
|
simd_arch=i386
|
||||||
;;
|
;;
|
||||||
|
arm*)
|
||||||
|
AC_MSG_RESULT([yes (arm)])
|
||||||
|
AC_MSG_CHECKING([if the assembler is GNU-compatible and can be used])
|
||||||
|
AC_CHECK_COMPATIBLE_ARM_ASSEMBLER_IFELSE(
|
||||||
|
[AC_MSG_RESULT([yes])
|
||||||
|
simd_arch=arm],
|
||||||
|
[AC_MSG_RESULT([no])
|
||||||
|
with_simd=no
|
||||||
|
AC_MSG_WARN([SIMD support can't be enabled. Performance will suffer.])])
|
||||||
|
;;
|
||||||
*)
|
*)
|
||||||
AC_MSG_RESULT([no ("$host_cpu")])
|
AC_MSG_RESULT([no ("$host_cpu")])
|
||||||
AC_MSG_WARN([SIMD support not available for this CPU. Performance will suffer.])
|
AC_MSG_WARN([SIMD support not available for this CPU. Performance will suffer.])
|
||||||
@@ -226,8 +331,10 @@ if test "x${with_simd}" != "xno"; then
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
AM_CONDITIONAL([WITH_SIMD], [test "x$with_simd" != "xno"])
|
AM_CONDITIONAL([WITH_SIMD], [test "x$with_simd" != "xno"])
|
||||||
|
AM_CONDITIONAL([WITH_SSE_FLOAT_DCT], [test "x$simd_arch" = "xx86_64" -o "x$simd_arch" = "xi386"])
|
||||||
AM_CONDITIONAL([SIMD_I386], [test "x$simd_arch" = "xi386"])
|
AM_CONDITIONAL([SIMD_I386], [test "x$simd_arch" = "xi386"])
|
||||||
AM_CONDITIONAL([SIMD_X86_64], [test "x$simd_arch" = "xx86_64"])
|
AM_CONDITIONAL([SIMD_X86_64], [test "x$simd_arch" = "xx86_64"])
|
||||||
|
AM_CONDITIONAL([SIMD_ARM], [test "x$simd_arch" = "xarm"])
|
||||||
AM_CONDITIONAL([X86_64], [test "x$host_cpu" = "xx86_64" -o "x$host_cpu" = "xamd64"])
|
AM_CONDITIONAL([X86_64], [test "x$host_cpu" = "xx86_64" -o "x$host_cpu" = "xamd64"])
|
||||||
|
|
||||||
case "$host_cpu" in
|
case "$host_cpu" in
|
||||||
@@ -255,13 +362,15 @@ AC_CONFIG_HEADERS([jconfig.h])
|
|||||||
AC_CONFIG_FILES([pkgscripts/libjpeg-turbo.spec:release/libjpeg-turbo.spec.in])
|
AC_CONFIG_FILES([pkgscripts/libjpeg-turbo.spec:release/libjpeg-turbo.spec.in])
|
||||||
AC_CONFIG_FILES([pkgscripts/makecygwinpkg:release/makecygwinpkg.in])
|
AC_CONFIG_FILES([pkgscripts/makecygwinpkg:release/makecygwinpkg.in])
|
||||||
AC_CONFIG_FILES([pkgscripts/makedpkg:release/makedpkg.in])
|
AC_CONFIG_FILES([pkgscripts/makedpkg:release/makedpkg.in])
|
||||||
AC_CONFIG_FILES([pkgscripts/deb-control:release/deb-control.in])
|
|
||||||
AC_CONFIG_FILES([pkgscripts/makemacpkg:release/makemacpkg.in])
|
AC_CONFIG_FILES([pkgscripts/makemacpkg:release/makemacpkg.in])
|
||||||
AC_CONFIG_FILES([pkgscripts/Description.plist:release/Description.plist.in])
|
AC_CONFIG_FILES([pkgscripts/Description.plist:release/Description.plist.in])
|
||||||
AC_CONFIG_FILES([pkgscripts/Info.plist:release/Info.plist.in])
|
AC_CONFIG_FILES([pkgscripts/Info.plist:release/Info.plist.in])
|
||||||
AC_CONFIG_FILES([pkgscripts/uninstall:release/uninstall.in])
|
AC_CONFIG_FILES([pkgscripts/uninstall:release/uninstall.in])
|
||||||
AC_CONFIG_FILES([pkgscripts/makesunpkg:release/makesunpkg.in])
|
AC_CONFIG_FILES([pkgscripts/makesunpkg:release/makesunpkg.in])
|
||||||
AC_CONFIG_FILES([pkgscripts/pkginfo:release/pkginfo.in])
|
AC_CONFIG_FILES([pkgscripts/pkginfo:release/pkginfo.in])
|
||||||
|
AC_CONFIG_FILES([tjbenchtest])
|
||||||
|
AC_CONFIG_FILES([tjexampletest])
|
||||||
AC_CONFIG_FILES([libjpeg.map])
|
AC_CONFIG_FILES([libjpeg.map])
|
||||||
AC_CONFIG_FILES([Makefile simd/Makefile])
|
AC_CONFIG_FILES([Makefile simd/Makefile])
|
||||||
|
AC_CONFIG_FILES([java/Makefile])
|
||||||
AC_OUTPUT
|
AC_OUTPUT
|
||||||
|
|||||||
13
djpeg.c
@@ -2,7 +2,7 @@
|
|||||||
* djpeg.c
|
* djpeg.c
|
||||||
*
|
*
|
||||||
* Copyright (C) 1991-1997, Thomas G. Lane.
|
* Copyright (C) 1991-1997, Thomas G. Lane.
|
||||||
* Copyright (C) 2010, D. R. Commander.
|
* Copyright (C) 2010-2011, D. R. Commander.
|
||||||
* This file is part of the Independent JPEG Group's software.
|
* This file is part of the Independent JPEG Group's software.
|
||||||
* For conditions of distribution and use, see the accompanying README file.
|
* For conditions of distribution and use, see the accompanying README file.
|
||||||
*
|
*
|
||||||
@@ -103,6 +103,7 @@ usage (void)
|
|||||||
fprintf(stderr, " -colors N Reduce image to no more than N colors\n");
|
fprintf(stderr, " -colors N Reduce image to no more than N colors\n");
|
||||||
fprintf(stderr, " -fast Fast, low-quality processing\n");
|
fprintf(stderr, " -fast Fast, low-quality processing\n");
|
||||||
fprintf(stderr, " -grayscale Force grayscale output\n");
|
fprintf(stderr, " -grayscale Force grayscale output\n");
|
||||||
|
fprintf(stderr, " -rgb Force RGB output\n");
|
||||||
#ifdef IDCT_SCALING_SUPPORTED
|
#ifdef IDCT_SCALING_SUPPORTED
|
||||||
fprintf(stderr, " -scale M/N Scale output image by fraction M/N, eg, 1/8\n");
|
fprintf(stderr, " -scale M/N Scale output image by fraction M/N, eg, 1/8\n");
|
||||||
#endif
|
#endif
|
||||||
@@ -244,9 +245,9 @@ parse_switches (j_decompress_ptr cinfo, int argc, char **argv,
|
|||||||
if (! printed_version) {
|
if (! printed_version) {
|
||||||
fprintf(stderr, "%s version %s (build %s)\n",
|
fprintf(stderr, "%s version %s (build %s)\n",
|
||||||
PACKAGE_NAME, VERSION, BUILD);
|
PACKAGE_NAME, VERSION, BUILD);
|
||||||
fprintf(stderr, "%s\n\n", LJTCOPYRIGHT);
|
fprintf(stderr, "%s\n\n", JCOPYRIGHT);
|
||||||
fprintf(stderr, "Based on Independent JPEG Group's libjpeg, version %s\n%s\n\n",
|
fprintf(stderr, "Emulating The Independent JPEG Group's libjpeg, version %s\n\n",
|
||||||
JVERSION, JCOPYRIGHT);
|
JVERSION);
|
||||||
printed_version = TRUE;
|
printed_version = TRUE;
|
||||||
}
|
}
|
||||||
cinfo->err->trace_level++;
|
cinfo->err->trace_level++;
|
||||||
@@ -268,6 +269,10 @@ parse_switches (j_decompress_ptr cinfo, int argc, char **argv,
|
|||||||
/* Force monochrome output. */
|
/* Force monochrome output. */
|
||||||
cinfo->out_color_space = JCS_GRAYSCALE;
|
cinfo->out_color_space = JCS_GRAYSCALE;
|
||||||
|
|
||||||
|
} else if (keymatch(arg, "rgb", 2)) {
|
||||||
|
/* Force RGB output. */
|
||||||
|
cinfo->out_color_space = JCS_RGB;
|
||||||
|
|
||||||
} else if (keymatch(arg, "map", 3)) {
|
} else if (keymatch(arg, "map", 3)) {
|
||||||
/* Quantize to a color map taken from an input file. */
|
/* Quantize to a color map taken from an input file. */
|
||||||
if (++argn >= argc) /* advance to next argument */
|
if (++argn >= argc) /* advance to next argument */
|
||||||
|
|||||||
88
doc/html/annotated.html
Normal file
@@ -0,0 +1,88 @@
|
|||||||
|
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||||
|
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||||
|
<head>
|
||||||
|
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
||||||
|
<title>TurboJPEG: Data Structures</title>
|
||||||
|
<link href="tabs.css" rel="stylesheet" type="text/css"/>
|
||||||
|
<link href="search/search.css" rel="stylesheet" type="text/css"/>
|
||||||
|
<script type="text/javascript" src="search/search.js"></script>
|
||||||
|
<link href="doxygen.css" rel="stylesheet" type="text/css"/>
|
||||||
|
</head>
|
||||||
|
<body onload='searchBox.OnSelectItem(0);'>
|
||||||
|
<!-- Generated by Doxygen 1.7.4 -->
|
||||||
|
<script type="text/javascript"><!--
|
||||||
|
var searchBox = new SearchBox("searchBox", "search",false,'Search');
|
||||||
|
--></script>
|
||||||
|
<div id="top">
|
||||||
|
<div id="titlearea">
|
||||||
|
<table cellspacing="0" cellpadding="0">
|
||||||
|
<tbody>
|
||||||
|
<tr style="height: 56px;">
|
||||||
|
<td style="padding-left: 0.5em;">
|
||||||
|
<div id="projectname">TurboJPEG <span id="projectnumber">1.2.1</span></div>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
|
<div id="navrow1" class="tabs">
|
||||||
|
<ul class="tablist">
|
||||||
|
<li><a href="index.html"><span>Main Page</span></a></li>
|
||||||
|
<li><a href="modules.html"><span>Modules</span></a></li>
|
||||||
|
<li class="current"><a href="annotated.html"><span>Data Structures</span></a></li>
|
||||||
|
<li id="searchli">
|
||||||
|
<div id="MSearchBox" class="MSearchBoxInactive">
|
||||||
|
<span class="left">
|
||||||
|
<img id="MSearchSelect" src="search/mag_sel.png"
|
||||||
|
onmouseover="return searchBox.OnSearchSelectShow()"
|
||||||
|
onmouseout="return searchBox.OnSearchSelectHide()"
|
||||||
|
alt=""/>
|
||||||
|
<input type="text" id="MSearchField" value="Search" accesskey="S"
|
||||||
|
onfocus="searchBox.OnSearchFieldFocus(true)"
|
||||||
|
onblur="searchBox.OnSearchFieldFocus(false)"
|
||||||
|
onkeyup="searchBox.OnSearchFieldChange(event)"/>
|
||||||
|
</span><span class="right">
|
||||||
|
<a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
|
||||||
|
</span>
|
||||||
|
</div>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
<div id="navrow2" class="tabs2">
|
||||||
|
<ul class="tablist">
|
||||||
|
<li class="current"><a href="annotated.html"><span>Data Structures</span></a></li>
|
||||||
|
<li><a href="classes.html"><span>Data Structure Index</span></a></li>
|
||||||
|
<li><a href="functions.html"><span>Data Fields</span></a></li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="header">
|
||||||
|
<div class="headertitle">
|
||||||
|
<div class="title">Data Structures</div> </div>
|
||||||
|
</div>
|
||||||
|
<div class="contents">
|
||||||
|
<div class="textblock">Here are the data structures with brief descriptions:</div><table>
|
||||||
|
<tr><td class="indexkey"><a class="el" href="structtjregion.html">tjregion</a></td><td class="indexvalue">Cropping region </td></tr>
|
||||||
|
<tr><td class="indexkey"><a class="el" href="structtjscalingfactor.html">tjscalingfactor</a></td><td class="indexvalue">Scaling factor </td></tr>
|
||||||
|
<tr><td class="indexkey"><a class="el" href="structtjtransform.html">tjtransform</a></td><td class="indexvalue">Lossless transform </td></tr>
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
|
<!-- window showing the filter options -->
|
||||||
|
<div id="MSearchSelectWindow"
|
||||||
|
onmouseover="return searchBox.OnSearchSelectShow()"
|
||||||
|
onmouseout="return searchBox.OnSearchSelectHide()"
|
||||||
|
onkeydown="return searchBox.OnSearchSelectKey(event)">
|
||||||
|
<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark"> </span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark"> </span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark"> </span>Variables</a></div>
|
||||||
|
|
||||||
|
<!-- iframe showing the search results (closed by default) -->
|
||||||
|
<div id="MSearchResultsWindow">
|
||||||
|
<iframe src="javascript:void(0)" frameborder="0"
|
||||||
|
name="MSearchResults" id="MSearchResults">
|
||||||
|
</iframe>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<hr class="footer"/><address class="footer"><small>Generated on Fri Jun 29 2012 18:14:55 for TurboJPEG by 
|
||||||
|
<a href="http://www.doxygen.org/index.html">
|
||||||
|
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.4 </small></address>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
BIN
doc/html/bc_s.png
Normal file
|
After Width: | Height: | Size: 677 B |
87
doc/html/classes.html
Normal file
@@ -0,0 +1,87 @@
|
|||||||
|
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||||
|
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||||
|
<head>
|
||||||
|
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
||||||
|
<title>TurboJPEG: Data Structure Index</title>
|
||||||
|
<link href="tabs.css" rel="stylesheet" type="text/css"/>
|
||||||
|
<link href="search/search.css" rel="stylesheet" type="text/css"/>
|
||||||
|
<script type="text/javascript" src="search/search.js"></script>
|
||||||
|
<link href="doxygen.css" rel="stylesheet" type="text/css"/>
|
||||||
|
</head>
|
||||||
|
<body onload='searchBox.OnSelectItem(0);'>
|
||||||
|
<!-- Generated by Doxygen 1.7.4 -->
|
||||||
|
<script type="text/javascript"><!--
|
||||||
|
var searchBox = new SearchBox("searchBox", "search",false,'Search');
|
||||||
|
--></script>
|
||||||
|
<div id="top">
|
||||||
|
<div id="titlearea">
|
||||||
|
<table cellspacing="0" cellpadding="0">
|
||||||
|
<tbody>
|
||||||
|
<tr style="height: 56px;">
|
||||||
|
<td style="padding-left: 0.5em;">
|
||||||
|
<div id="projectname">TurboJPEG <span id="projectnumber">1.2.1</span></div>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
|
<div id="navrow1" class="tabs">
|
||||||
|
<ul class="tablist">
|
||||||
|
<li><a href="index.html"><span>Main Page</span></a></li>
|
||||||
|
<li><a href="modules.html"><span>Modules</span></a></li>
|
||||||
|
<li class="current"><a href="annotated.html"><span>Data Structures</span></a></li>
|
||||||
|
<li id="searchli">
|
||||||
|
<div id="MSearchBox" class="MSearchBoxInactive">
|
||||||
|
<span class="left">
|
||||||
|
<img id="MSearchSelect" src="search/mag_sel.png"
|
||||||
|
onmouseover="return searchBox.OnSearchSelectShow()"
|
||||||
|
onmouseout="return searchBox.OnSearchSelectHide()"
|
||||||
|
alt=""/>
|
||||||
|
<input type="text" id="MSearchField" value="Search" accesskey="S"
|
||||||
|
onfocus="searchBox.OnSearchFieldFocus(true)"
|
||||||
|
onblur="searchBox.OnSearchFieldFocus(false)"
|
||||||
|
onkeyup="searchBox.OnSearchFieldChange(event)"/>
|
||||||
|
</span><span class="right">
|
||||||
|
<a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
|
||||||
|
</span>
|
||||||
|
</div>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
<div id="navrow2" class="tabs2">
|
||||||
|
<ul class="tablist">
|
||||||
|
<li><a href="annotated.html"><span>Data Structures</span></a></li>
|
||||||
|
<li class="current"><a href="classes.html"><span>Data Structure Index</span></a></li>
|
||||||
|
<li><a href="functions.html"><span>Data Fields</span></a></li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="header">
|
||||||
|
<div class="headertitle">
|
||||||
|
<div class="title">Data Structure Index</div> </div>
|
||||||
|
</div>
|
||||||
|
<div class="contents">
|
||||||
|
<div class="qindex"><a class="qindex" href="#letter_T">T</a></div>
|
||||||
|
<table align="center" width="95%" border="0" cellspacing="0" cellpadding="0">
|
||||||
|
<tr><td><a name="letter_T"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">  T  </div></td></tr></table>
|
||||||
|
</td><td><a class="el" href="structtjregion.html">tjregion</a>   </td><td><a class="el" href="structtjscalingfactor.html">tjscalingfactor</a>   </td><td><a class="el" href="structtjtransform.html">tjtransform</a>   </td></tr></table><div class="qindex"><a class="qindex" href="#letter_T">T</a></div>
|
||||||
|
</div>
|
||||||
|
<!-- window showing the filter options -->
|
||||||
|
<div id="MSearchSelectWindow"
|
||||||
|
onmouseover="return searchBox.OnSearchSelectShow()"
|
||||||
|
onmouseout="return searchBox.OnSearchSelectHide()"
|
||||||
|
onkeydown="return searchBox.OnSearchSelectKey(event)">
|
||||||
|
<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark"> </span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark"> </span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark"> </span>Variables</a></div>
|
||||||
|
|
||||||
|
<!-- iframe showing the search results (closed by default) -->
|
||||||
|
<div id="MSearchResultsWindow">
|
||||||
|
<iframe src="javascript:void(0)" frameborder="0"
|
||||||
|
name="MSearchResults" id="MSearchResults">
|
||||||
|
</iframe>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<hr class="footer"/><address class="footer"><small>Generated on Fri Jun 29 2012 18:14:55 for TurboJPEG by 
|
||||||
|
<a href="http://www.doxygen.org/index.html">
|
||||||
|
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.4 </small></address>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
BIN
doc/html/closed.png
Normal file
|
After Width: | Height: | Size: 126 B |
835
doc/html/doxygen.css
Normal file
@@ -0,0 +1,835 @@
|
|||||||
|
/* The standard CSS for doxygen */
|
||||||
|
|
||||||
|
body, table, div, p, dl {
|
||||||
|
font-family: Lucida Grande, Verdana, Geneva, Arial, sans-serif;
|
||||||
|
font-size: 12px;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* @group Heading Levels */
|
||||||
|
|
||||||
|
h1 {
|
||||||
|
font-size: 150%;
|
||||||
|
}
|
||||||
|
|
||||||
|
.title {
|
||||||
|
font-size: 150%;
|
||||||
|
font-weight: bold;
|
||||||
|
margin: 10px 2px;
|
||||||
|
}
|
||||||
|
|
||||||
|
h2 {
|
||||||
|
font-size: 120%;
|
||||||
|
}
|
||||||
|
|
||||||
|
h3 {
|
||||||
|
font-size: 100%;
|
||||||
|
}
|
||||||
|
|
||||||
|
dt {
|
||||||
|
font-weight: bold;
|
||||||
|
}
|
||||||
|
|
||||||
|
div.multicol {
|
||||||
|
-moz-column-gap: 1em;
|
||||||
|
-webkit-column-gap: 1em;
|
||||||
|
-moz-column-count: 3;
|
||||||
|
-webkit-column-count: 3;
|
||||||
|
}
|
||||||
|
|
||||||
|
p.startli, p.startdd, p.starttd {
|
||||||
|
margin-top: 2px;
|
||||||
|
}
|
||||||
|
|
||||||
|
p.endli {
|
||||||
|
margin-bottom: 0px;
|
||||||
|
}
|
||||||
|
|
||||||
|
p.enddd {
|
||||||
|
margin-bottom: 4px;
|
||||||
|
}
|
||||||
|
|
||||||
|
p.endtd {
|
||||||
|
margin-bottom: 2px;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* @end */
|
||||||
|
|
||||||
|
caption {
|
||||||
|
font-weight: bold;
|
||||||
|
}
|
||||||
|
|
||||||
|
span.legend {
|
||||||
|
font-size: 70%;
|
||||||
|
text-align: center;
|
||||||
|
}
|
||||||
|
|
||||||
|
h3.version {
|
||||||
|
font-size: 90%;
|
||||||
|
text-align: center;
|
||||||
|
}
|
||||||
|
|
||||||
|
div.qindex, div.navtab{
|
||||||
|
background-color: #EBEFF6;
|
||||||
|
border: 1px solid #A3B4D7;
|
||||||
|
text-align: center;
|
||||||
|
margin: 2px;
|
||||||
|
padding: 2px;
|
||||||
|
}
|
||||||
|
|
||||||
|
div.qindex, div.navpath {
|
||||||
|
width: 100%;
|
||||||
|
line-height: 140%;
|
||||||
|
}
|
||||||
|
|
||||||
|
div.navtab {
|
||||||
|
margin-right: 15px;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* @group Link Styling */
|
||||||
|
|
||||||
|
a {
|
||||||
|
color: #3D578C;
|
||||||
|
font-weight: normal;
|
||||||
|
text-decoration: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
.contents a:visited {
|
||||||
|
color: #4665A2;
|
||||||
|
}
|
||||||
|
|
||||||
|
a:hover {
|
||||||
|
text-decoration: underline;
|
||||||
|
}
|
||||||
|
|
||||||
|
a.qindex {
|
||||||
|
font-weight: bold;
|
||||||
|
}
|
||||||
|
|
||||||
|
a.qindexHL {
|
||||||
|
font-weight: bold;
|
||||||
|
background-color: #9CAFD4;
|
||||||
|
color: #ffffff;
|
||||||
|
border: 1px double #869DCA;
|
||||||
|
}
|
||||||
|
|
||||||
|
.contents a.qindexHL:visited {
|
||||||
|
color: #ffffff;
|
||||||
|
}
|
||||||
|
|
||||||
|
a.el {
|
||||||
|
font-weight: bold;
|
||||||
|
}
|
||||||
|
|
||||||
|
a.elRef {
|
||||||
|
}
|
||||||
|
|
||||||
|
a.code {
|
||||||
|
color: #4665A2;
|
||||||
|
}
|
||||||
|
|
||||||
|
a.codeRef {
|
||||||
|
color: #4665A2;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* @end */
|
||||||
|
|
||||||
|
dl.el {
|
||||||
|
margin-left: -1cm;
|
||||||
|
}
|
||||||
|
|
||||||
|
.fragment {
|
||||||
|
font-family: monospace, fixed;
|
||||||
|
font-size: 105%;
|
||||||
|
}
|
||||||
|
|
||||||
|
pre.fragment {
|
||||||
|
border: 1px solid #C4CFE5;
|
||||||
|
background-color: #FBFCFD;
|
||||||
|
padding: 4px 6px;
|
||||||
|
margin: 4px 8px 4px 2px;
|
||||||
|
overflow: auto;
|
||||||
|
word-wrap: break-word;
|
||||||
|
font-size: 9pt;
|
||||||
|
line-height: 125%;
|
||||||
|
}
|
||||||
|
|
||||||
|
div.ah {
|
||||||
|
background-color: black;
|
||||||
|
font-weight: bold;
|
||||||
|
color: #ffffff;
|
||||||
|
margin-bottom: 3px;
|
||||||
|
margin-top: 3px;
|
||||||
|
padding: 0.2em;
|
||||||
|
border: solid thin #333;
|
||||||
|
border-radius: 0.5em;
|
||||||
|
-webkit-border-radius: .5em;
|
||||||
|
-moz-border-radius: .5em;
|
||||||
|
box-shadow: 2px 2px 3px #999;
|
||||||
|
-webkit-box-shadow: 2px 2px 3px #999;
|
||||||
|
-moz-box-shadow: rgba(0, 0, 0, 0.15) 2px 2px 2px;
|
||||||
|
background-image: -webkit-gradient(linear, left top, left bottom, from(#eee), to(#000),color-stop(0.3, #444));
|
||||||
|
background-image: -moz-linear-gradient(center top, #eee 0%, #444 40%, #000);
|
||||||
|
}
|
||||||
|
|
||||||
|
div.groupHeader {
|
||||||
|
margin-left: 16px;
|
||||||
|
margin-top: 12px;
|
||||||
|
font-weight: bold;
|
||||||
|
}
|
||||||
|
|
||||||
|
div.groupText {
|
||||||
|
margin-left: 16px;
|
||||||
|
font-style: italic;
|
||||||
|
}
|
||||||
|
|
||||||
|
body {
|
||||||
|
background: white;
|
||||||
|
color: black;
|
||||||
|
margin: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
div.contents {
|
||||||
|
margin-top: 10px;
|
||||||
|
margin-left: 10px;
|
||||||
|
margin-right: 5px;
|
||||||
|
}
|
||||||
|
|
||||||
|
td.indexkey {
|
||||||
|
background-color: #EBEFF6;
|
||||||
|
font-weight: bold;
|
||||||
|
border: 1px solid #C4CFE5;
|
||||||
|
margin: 2px 0px 2px 0;
|
||||||
|
padding: 2px 10px;
|
||||||
|
}
|
||||||
|
|
||||||
|
td.indexvalue {
|
||||||
|
background-color: #EBEFF6;
|
||||||
|
border: 1px solid #C4CFE5;
|
||||||
|
padding: 2px 10px;
|
||||||
|
margin: 2px 0px;
|
||||||
|
}
|
||||||
|
|
||||||
|
tr.memlist {
|
||||||
|
background-color: #EEF1F7;
|
||||||
|
}
|
||||||
|
|
||||||
|
p.formulaDsp {
|
||||||
|
text-align: center;
|
||||||
|
}
|
||||||
|
|
||||||
|
img.formulaDsp {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
img.formulaInl {
|
||||||
|
vertical-align: middle;
|
||||||
|
}
|
||||||
|
|
||||||
|
div.center {
|
||||||
|
text-align: center;
|
||||||
|
margin-top: 0px;
|
||||||
|
margin-bottom: 0px;
|
||||||
|
padding: 0px;
|
||||||
|
}
|
||||||
|
|
||||||
|
div.center img {
|
||||||
|
border: 0px;
|
||||||
|
}
|
||||||
|
|
||||||
|
address.footer {
|
||||||
|
text-align: right;
|
||||||
|
padding-right: 12px;
|
||||||
|
}
|
||||||
|
|
||||||
|
img.footer {
|
||||||
|
border: 0px;
|
||||||
|
vertical-align: middle;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* @group Code Colorization */
|
||||||
|
|
||||||
|
span.keyword {
|
||||||
|
color: #008000
|
||||||
|
}
|
||||||
|
|
||||||
|
span.keywordtype {
|
||||||
|
color: #604020
|
||||||
|
}
|
||||||
|
|
||||||
|
span.keywordflow {
|
||||||
|
color: #e08000
|
||||||
|
}
|
||||||
|
|
||||||
|
span.comment {
|
||||||
|
color: #800000
|
||||||
|
}
|
||||||
|
|
||||||
|
span.preprocessor {
|
||||||
|
color: #806020
|
||||||
|
}
|
||||||
|
|
||||||
|
span.stringliteral {
|
||||||
|
color: #002080
|
||||||
|
}
|
||||||
|
|
||||||
|
span.charliteral {
|
||||||
|
color: #008080
|
||||||
|
}
|
||||||
|
|
||||||
|
span.vhdldigit {
|
||||||
|
color: #ff00ff
|
||||||
|
}
|
||||||
|
|
||||||
|
span.vhdlchar {
|
||||||
|
color: #000000
|
||||||
|
}
|
||||||
|
|
||||||
|
span.vhdlkeyword {
|
||||||
|
color: #700070
|
||||||
|
}
|
||||||
|
|
||||||
|
span.vhdllogic {
|
||||||
|
color: #ff0000
|
||||||
|
}
|
||||||
|
|
||||||
|
/* @end */
|
||||||
|
|
||||||
|
/*
|
||||||
|
.search {
|
||||||
|
color: #003399;
|
||||||
|
font-weight: bold;
|
||||||
|
}
|
||||||
|
|
||||||
|
form.search {
|
||||||
|
margin-bottom: 0px;
|
||||||
|
margin-top: 0px;
|
||||||
|
}
|
||||||
|
|
||||||
|
input.search {
|
||||||
|
font-size: 75%;
|
||||||
|
color: #000080;
|
||||||
|
font-weight: normal;
|
||||||
|
background-color: #e8eef2;
|
||||||
|
}
|
||||||
|
*/
|
||||||
|
|
||||||
|
td.tiny {
|
||||||
|
font-size: 75%;
|
||||||
|
}
|
||||||
|
|
||||||
|
.dirtab {
|
||||||
|
padding: 4px;
|
||||||
|
border-collapse: collapse;
|
||||||
|
border: 1px solid #A3B4D7;
|
||||||
|
}
|
||||||
|
|
||||||
|
th.dirtab {
|
||||||
|
background: #EBEFF6;
|
||||||
|
font-weight: bold;
|
||||||
|
}
|
||||||
|
|
||||||
|
hr {
|
||||||
|
height: 0px;
|
||||||
|
border: none;
|
||||||
|
border-top: 1px solid #4A6AAA;
|
||||||
|
}
|
||||||
|
|
||||||
|
hr.footer {
|
||||||
|
height: 1px;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* @group Member Descriptions */
|
||||||
|
|
||||||
|
table.memberdecls {
|
||||||
|
border-spacing: 0px;
|
||||||
|
padding: 0px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.mdescLeft, .mdescRight,
|
||||||
|
.memItemLeft, .memItemRight,
|
||||||
|
.memTemplItemLeft, .memTemplItemRight, .memTemplParams {
|
||||||
|
background-color: #F9FAFC;
|
||||||
|
border: none;
|
||||||
|
margin: 4px;
|
||||||
|
padding: 1px 0 0 8px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.mdescLeft, .mdescRight {
|
||||||
|
padding: 0px 8px 4px 8px;
|
||||||
|
color: #555;
|
||||||
|
}
|
||||||
|
|
||||||
|
.memItemLeft, .memItemRight, .memTemplParams {
|
||||||
|
border-top: 1px solid #C4CFE5;
|
||||||
|
}
|
||||||
|
|
||||||
|
.memItemLeft, .memTemplItemLeft {
|
||||||
|
white-space: nowrap;
|
||||||
|
}
|
||||||
|
|
||||||
|
.memItemRight {
|
||||||
|
width: 100%;
|
||||||
|
}
|
||||||
|
|
||||||
|
.memTemplParams {
|
||||||
|
color: #4665A2;
|
||||||
|
white-space: nowrap;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* @end */
|
||||||
|
|
||||||
|
/* @group Member Details */
|
||||||
|
|
||||||
|
/* Styles for detailed member documentation */
|
||||||
|
|
||||||
|
.memtemplate {
|
||||||
|
font-size: 80%;
|
||||||
|
color: #4665A2;
|
||||||
|
font-weight: normal;
|
||||||
|
margin-left: 9px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.memnav {
|
||||||
|
background-color: #EBEFF6;
|
||||||
|
border: 1px solid #A3B4D7;
|
||||||
|
text-align: center;
|
||||||
|
margin: 2px;
|
||||||
|
margin-right: 15px;
|
||||||
|
padding: 2px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.mempage {
|
||||||
|
width: 100%;
|
||||||
|
}
|
||||||
|
|
||||||
|
.memitem {
|
||||||
|
padding: 0;
|
||||||
|
margin-bottom: 10px;
|
||||||
|
margin-right: 5px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.memname {
|
||||||
|
white-space: nowrap;
|
||||||
|
font-weight: bold;
|
||||||
|
margin-left: 6px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.memproto {
|
||||||
|
border-top: 1px solid #A8B8D9;
|
||||||
|
border-left: 1px solid #A8B8D9;
|
||||||
|
border-right: 1px solid #A8B8D9;
|
||||||
|
padding: 6px 0px 6px 0px;
|
||||||
|
color: #253555;
|
||||||
|
font-weight: bold;
|
||||||
|
text-shadow: 0px 1px 1px rgba(255, 255, 255, 0.9);
|
||||||
|
/* opera specific markup */
|
||||||
|
box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15);
|
||||||
|
border-top-right-radius: 8px;
|
||||||
|
border-top-left-radius: 8px;
|
||||||
|
/* firefox specific markup */
|
||||||
|
-moz-box-shadow: rgba(0, 0, 0, 0.15) 5px 5px 5px;
|
||||||
|
-moz-border-radius-topright: 8px;
|
||||||
|
-moz-border-radius-topleft: 8px;
|
||||||
|
/* webkit specific markup */
|
||||||
|
-webkit-box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15);
|
||||||
|
-webkit-border-top-right-radius: 8px;
|
||||||
|
-webkit-border-top-left-radius: 8px;
|
||||||
|
background-image:url('nav_f.png');
|
||||||
|
background-repeat:repeat-x;
|
||||||
|
background-color: #E2E8F2;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
.memdoc {
|
||||||
|
border-bottom: 1px solid #A8B8D9;
|
||||||
|
border-left: 1px solid #A8B8D9;
|
||||||
|
border-right: 1px solid #A8B8D9;
|
||||||
|
padding: 2px 5px;
|
||||||
|
background-color: #FBFCFD;
|
||||||
|
border-top-width: 0;
|
||||||
|
/* opera specific markup */
|
||||||
|
border-bottom-left-radius: 8px;
|
||||||
|
border-bottom-right-radius: 8px;
|
||||||
|
box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15);
|
||||||
|
/* firefox specific markup */
|
||||||
|
-moz-border-radius-bottomleft: 8px;
|
||||||
|
-moz-border-radius-bottomright: 8px;
|
||||||
|
-moz-box-shadow: rgba(0, 0, 0, 0.15) 5px 5px 5px;
|
||||||
|
background-image: -moz-linear-gradient(center top, #FFFFFF 0%, #FFFFFF 60%, #F7F8FB 95%, #EEF1F7);
|
||||||
|
/* webkit specific markup */
|
||||||
|
-webkit-border-bottom-left-radius: 8px;
|
||||||
|
-webkit-border-bottom-right-radius: 8px;
|
||||||
|
-webkit-box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15);
|
||||||
|
background-image: -webkit-gradient(linear,center top,center bottom,from(#FFFFFF), color-stop(0.6,#FFFFFF), color-stop(0.60,#FFFFFF), color-stop(0.95,#F7F8FB), to(#EEF1F7));
|
||||||
|
}
|
||||||
|
|
||||||
|
.paramkey {
|
||||||
|
text-align: right;
|
||||||
|
}
|
||||||
|
|
||||||
|
.paramtype {
|
||||||
|
white-space: nowrap;
|
||||||
|
}
|
||||||
|
|
||||||
|
.paramname {
|
||||||
|
color: #602020;
|
||||||
|
white-space: nowrap;
|
||||||
|
}
|
||||||
|
.paramname em {
|
||||||
|
font-style: normal;
|
||||||
|
}
|
||||||
|
|
||||||
|
.params, .retval, .exception, .tparams {
|
||||||
|
border-spacing: 6px 2px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.params .paramname, .retval .paramname {
|
||||||
|
font-weight: bold;
|
||||||
|
vertical-align: top;
|
||||||
|
}
|
||||||
|
|
||||||
|
.params .paramtype {
|
||||||
|
font-style: italic;
|
||||||
|
vertical-align: top;
|
||||||
|
}
|
||||||
|
|
||||||
|
.params .paramdir {
|
||||||
|
font-family: "courier new",courier,monospace;
|
||||||
|
vertical-align: top;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
/* @end */
|
||||||
|
|
||||||
|
/* @group Directory (tree) */
|
||||||
|
|
||||||
|
/* for the tree view */
|
||||||
|
|
||||||
|
.ftvtree {
|
||||||
|
font-family: sans-serif;
|
||||||
|
margin: 0px;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* these are for tree view when used as main index */
|
||||||
|
|
||||||
|
.directory {
|
||||||
|
font-size: 9pt;
|
||||||
|
font-weight: bold;
|
||||||
|
margin: 5px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.directory h3 {
|
||||||
|
margin: 0px;
|
||||||
|
margin-top: 1em;
|
||||||
|
font-size: 11pt;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
The following two styles can be used to replace the root node title
|
||||||
|
with an image of your choice. Simply uncomment the next two styles,
|
||||||
|
specify the name of your image and be sure to set 'height' to the
|
||||||
|
proper pixel height of your image.
|
||||||
|
*/
|
||||||
|
|
||||||
|
/*
|
||||||
|
.directory h3.swap {
|
||||||
|
height: 61px;
|
||||||
|
background-repeat: no-repeat;
|
||||||
|
background-image: url("yourimage.gif");
|
||||||
|
}
|
||||||
|
.directory h3.swap span {
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
|
*/
|
||||||
|
|
||||||
|
.directory > h3 {
|
||||||
|
margin-top: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.directory p {
|
||||||
|
margin: 0px;
|
||||||
|
white-space: nowrap;
|
||||||
|
}
|
||||||
|
|
||||||
|
.directory div {
|
||||||
|
display: none;
|
||||||
|
margin: 0px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.directory img {
|
||||||
|
vertical-align: -30%;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* these are for tree view when not used as main index */
|
||||||
|
|
||||||
|
.directory-alt {
|
||||||
|
font-size: 100%;
|
||||||
|
font-weight: bold;
|
||||||
|
}
|
||||||
|
|
||||||
|
.directory-alt h3 {
|
||||||
|
margin: 0px;
|
||||||
|
margin-top: 1em;
|
||||||
|
font-size: 11pt;
|
||||||
|
}
|
||||||
|
|
||||||
|
.directory-alt > h3 {
|
||||||
|
margin-top: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.directory-alt p {
|
||||||
|
margin: 0px;
|
||||||
|
white-space: nowrap;
|
||||||
|
}
|
||||||
|
|
||||||
|
.directory-alt div {
|
||||||
|
display: none;
|
||||||
|
margin: 0px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.directory-alt img {
|
||||||
|
vertical-align: -30%;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* @end */
|
||||||
|
|
||||||
|
div.dynheader {
|
||||||
|
margin-top: 8px;
|
||||||
|
}
|
||||||
|
|
||||||
|
address {
|
||||||
|
font-style: normal;
|
||||||
|
color: #2A3D61;
|
||||||
|
}
|
||||||
|
|
||||||
|
table.doxtable {
|
||||||
|
border-collapse:collapse;
|
||||||
|
}
|
||||||
|
|
||||||
|
table.doxtable td, table.doxtable th {
|
||||||
|
border: 1px solid #2D4068;
|
||||||
|
padding: 3px 7px 2px;
|
||||||
|
}
|
||||||
|
|
||||||
|
table.doxtable th {
|
||||||
|
background-color: #374F7F;
|
||||||
|
color: #FFFFFF;
|
||||||
|
font-size: 110%;
|
||||||
|
padding-bottom: 4px;
|
||||||
|
padding-top: 5px;
|
||||||
|
text-align:left;
|
||||||
|
}
|
||||||
|
|
||||||
|
.tabsearch {
|
||||||
|
top: 0px;
|
||||||
|
left: 10px;
|
||||||
|
height: 36px;
|
||||||
|
background-image: url('tab_b.png');
|
||||||
|
z-index: 101;
|
||||||
|
overflow: hidden;
|
||||||
|
font-size: 13px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.navpath ul
|
||||||
|
{
|
||||||
|
font-size: 11px;
|
||||||
|
background-image:url('tab_b.png');
|
||||||
|
background-repeat:repeat-x;
|
||||||
|
height:30px;
|
||||||
|
line-height:30px;
|
||||||
|
color:#8AA0CC;
|
||||||
|
border:solid 1px #C2CDE4;
|
||||||
|
overflow:hidden;
|
||||||
|
margin:0px;
|
||||||
|
padding:0px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.navpath li
|
||||||
|
{
|
||||||
|
list-style-type:none;
|
||||||
|
float:left;
|
||||||
|
padding-left:10px;
|
||||||
|
padding-right:15px;
|
||||||
|
background-image:url('bc_s.png');
|
||||||
|
background-repeat:no-repeat;
|
||||||
|
background-position:right;
|
||||||
|
color:#364D7C;
|
||||||
|
}
|
||||||
|
|
||||||
|
.navpath li.navelem a
|
||||||
|
{
|
||||||
|
height:32px;
|
||||||
|
display:block;
|
||||||
|
text-decoration: none;
|
||||||
|
outline: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
.navpath li.navelem a:hover
|
||||||
|
{
|
||||||
|
color:#6884BD;
|
||||||
|
}
|
||||||
|
|
||||||
|
.navpath li.footer
|
||||||
|
{
|
||||||
|
list-style-type:none;
|
||||||
|
float:right;
|
||||||
|
padding-left:10px;
|
||||||
|
padding-right:15px;
|
||||||
|
background-image:none;
|
||||||
|
background-repeat:no-repeat;
|
||||||
|
background-position:right;
|
||||||
|
color:#364D7C;
|
||||||
|
font-size: 8pt;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
div.summary
|
||||||
|
{
|
||||||
|
float: right;
|
||||||
|
font-size: 8pt;
|
||||||
|
padding-right: 5px;
|
||||||
|
width: 50%;
|
||||||
|
text-align: right;
|
||||||
|
}
|
||||||
|
|
||||||
|
div.summary a
|
||||||
|
{
|
||||||
|
white-space: nowrap;
|
||||||
|
}
|
||||||
|
|
||||||
|
div.ingroups
|
||||||
|
{
|
||||||
|
font-size: 8pt;
|
||||||
|
padding-left: 5px;
|
||||||
|
width: 50%;
|
||||||
|
text-align: left;
|
||||||
|
}
|
||||||
|
|
||||||
|
div.ingroups a
|
||||||
|
{
|
||||||
|
white-space: nowrap;
|
||||||
|
}
|
||||||
|
|
||||||
|
div.header
|
||||||
|
{
|
||||||
|
background-image:url('nav_h.png');
|
||||||
|
background-repeat:repeat-x;
|
||||||
|
background-color: #F9FAFC;
|
||||||
|
margin: 0px;
|
||||||
|
border-bottom: 1px solid #C4CFE5;
|
||||||
|
}
|
||||||
|
|
||||||
|
div.headertitle
|
||||||
|
{
|
||||||
|
padding: 5px 5px 5px 10px;
|
||||||
|
}
|
||||||
|
|
||||||
|
dl
|
||||||
|
{
|
||||||
|
padding: 0 0 0 10px;
|
||||||
|
}
|
||||||
|
|
||||||
|
dl.note, dl.warning, dl.attention, dl.pre, dl.post, dl.invariant, dl.deprecated, dl.todo, dl.test, dl.bug
|
||||||
|
{
|
||||||
|
border-left:4px solid;
|
||||||
|
padding: 0 0 0 6px;
|
||||||
|
}
|
||||||
|
|
||||||
|
dl.note
|
||||||
|
{
|
||||||
|
border-color: #D0C000;
|
||||||
|
}
|
||||||
|
|
||||||
|
dl.warning, dl.attention
|
||||||
|
{
|
||||||
|
border-color: #FF0000;
|
||||||
|
}
|
||||||
|
|
||||||
|
dl.pre, dl.post, dl.invariant
|
||||||
|
{
|
||||||
|
border-color: #00D000;
|
||||||
|
}
|
||||||
|
|
||||||
|
dl.deprecated
|
||||||
|
{
|
||||||
|
border-color: #505050;
|
||||||
|
}
|
||||||
|
|
||||||
|
dl.todo
|
||||||
|
{
|
||||||
|
border-color: #00C0E0;
|
||||||
|
}
|
||||||
|
|
||||||
|
dl.test
|
||||||
|
{
|
||||||
|
border-color: #3030E0;
|
||||||
|
}
|
||||||
|
|
||||||
|
dl.bug
|
||||||
|
{
|
||||||
|
border-color: #C08050;
|
||||||
|
}
|
||||||
|
|
||||||
|
#projectlogo
|
||||||
|
{
|
||||||
|
text-align: center;
|
||||||
|
vertical-align: bottom;
|
||||||
|
border-collapse: separate;
|
||||||
|
}
|
||||||
|
|
||||||
|
#projectlogo img
|
||||||
|
{
|
||||||
|
border: 0px none;
|
||||||
|
}
|
||||||
|
|
||||||
|
#projectname
|
||||||
|
{
|
||||||
|
font: 300% Tahoma, Arial,sans-serif;
|
||||||
|
margin: 0px;
|
||||||
|
padding: 2px 0px;
|
||||||
|
}
|
||||||
|
|
||||||
|
#projectbrief
|
||||||
|
{
|
||||||
|
font: 120% Tahoma, Arial,sans-serif;
|
||||||
|
margin: 0px;
|
||||||
|
padding: 0px;
|
||||||
|
}
|
||||||
|
|
||||||
|
#projectnumber
|
||||||
|
{
|
||||||
|
font: 50% Tahoma, Arial,sans-serif;
|
||||||
|
margin: 0px;
|
||||||
|
padding: 0px;
|
||||||
|
}
|
||||||
|
|
||||||
|
#titlearea
|
||||||
|
{
|
||||||
|
padding: 0px;
|
||||||
|
margin: 0px;
|
||||||
|
width: 100%;
|
||||||
|
border-bottom: 1px solid #5373B4;
|
||||||
|
}
|
||||||
|
|
||||||
|
.image
|
||||||
|
{
|
||||||
|
text-align: center;
|
||||||
|
}
|
||||||
|
|
||||||
|
.dotgraph
|
||||||
|
{
|
||||||
|
text-align: center;
|
||||||
|
}
|
||||||
|
|
||||||
|
.mscgraph
|
||||||
|
{
|
||||||
|
text-align: center;
|
||||||
|
}
|
||||||
|
|
||||||
|
.caption
|
||||||
|
{
|
||||||
|
font-weight: bold;
|
||||||
|
}
|
||||||
|
|
||||||
BIN
doc/html/doxygen.png
Normal file
|
After Width: | Height: | Size: 3.8 KiB |
120
doc/html/functions.html
Normal file
@@ -0,0 +1,120 @@
|
|||||||
|
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||||
|
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||||
|
<head>
|
||||||
|
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
||||||
|
<title>TurboJPEG: Data Fields</title>
|
||||||
|
<link href="tabs.css" rel="stylesheet" type="text/css"/>
|
||||||
|
<link href="search/search.css" rel="stylesheet" type="text/css"/>
|
||||||
|
<script type="text/javascript" src="search/search.js"></script>
|
||||||
|
<link href="doxygen.css" rel="stylesheet" type="text/css"/>
|
||||||
|
</head>
|
||||||
|
<body onload='searchBox.OnSelectItem(0);'>
|
||||||
|
<!-- Generated by Doxygen 1.7.4 -->
|
||||||
|
<script type="text/javascript"><!--
|
||||||
|
var searchBox = new SearchBox("searchBox", "search",false,'Search');
|
||||||
|
--></script>
|
||||||
|
<div id="top">
|
||||||
|
<div id="titlearea">
|
||||||
|
<table cellspacing="0" cellpadding="0">
|
||||||
|
<tbody>
|
||||||
|
<tr style="height: 56px;">
|
||||||
|
<td style="padding-left: 0.5em;">
|
||||||
|
<div id="projectname">TurboJPEG <span id="projectnumber">1.2.1</span></div>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
|
<div id="navrow1" class="tabs">
|
||||||
|
<ul class="tablist">
|
||||||
|
<li><a href="index.html"><span>Main Page</span></a></li>
|
||||||
|
<li><a href="modules.html"><span>Modules</span></a></li>
|
||||||
|
<li class="current"><a href="annotated.html"><span>Data Structures</span></a></li>
|
||||||
|
<li id="searchli">
|
||||||
|
<div id="MSearchBox" class="MSearchBoxInactive">
|
||||||
|
<span class="left">
|
||||||
|
<img id="MSearchSelect" src="search/mag_sel.png"
|
||||||
|
onmouseover="return searchBox.OnSearchSelectShow()"
|
||||||
|
onmouseout="return searchBox.OnSearchSelectHide()"
|
||||||
|
alt=""/>
|
||||||
|
<input type="text" id="MSearchField" value="Search" accesskey="S"
|
||||||
|
onfocus="searchBox.OnSearchFieldFocus(true)"
|
||||||
|
onblur="searchBox.OnSearchFieldFocus(false)"
|
||||||
|
onkeyup="searchBox.OnSearchFieldChange(event)"/>
|
||||||
|
</span><span class="right">
|
||||||
|
<a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
|
||||||
|
</span>
|
||||||
|
</div>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
<div id="navrow2" class="tabs2">
|
||||||
|
<ul class="tablist">
|
||||||
|
<li><a href="annotated.html"><span>Data Structures</span></a></li>
|
||||||
|
<li><a href="classes.html"><span>Data Structure Index</span></a></li>
|
||||||
|
<li class="current"><a href="functions.html"><span>Data Fields</span></a></li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
<div id="navrow3" class="tabs2">
|
||||||
|
<ul class="tablist">
|
||||||
|
<li class="current"><a href="functions.html"><span>All</span></a></li>
|
||||||
|
<li><a href="functions_vars.html"><span>Variables</span></a></li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="contents">
|
||||||
|
<div class="textblock">Here is a list of all documented struct and union fields with links to the struct/union documentation for each field:</div><ul>
|
||||||
|
<li>customFilter
|
||||||
|
: <a class="el" href="structtjtransform.html#a43ee1bcdd2a8d7249a756774f78793c1">tjtransform</a>
|
||||||
|
</li>
|
||||||
|
<li>data
|
||||||
|
: <a class="el" href="structtjtransform.html#a688fe8f1a8ecc12a538d9e561cf338e3">tjtransform</a>
|
||||||
|
</li>
|
||||||
|
<li>denom
|
||||||
|
: <a class="el" href="structtjscalingfactor.html#aefbcdf3e9e62274b2d312c695f133ce3">tjscalingfactor</a>
|
||||||
|
</li>
|
||||||
|
<li>h
|
||||||
|
: <a class="el" href="structtjregion.html#aecefc45a26f4d8b60dd4d825c1710115">tjregion</a>
|
||||||
|
</li>
|
||||||
|
<li>num
|
||||||
|
: <a class="el" href="structtjscalingfactor.html#a9b011e57f981ee23083e2c1aa5e640ec">tjscalingfactor</a>
|
||||||
|
</li>
|
||||||
|
<li>op
|
||||||
|
: <a class="el" href="structtjtransform.html#a2525aab4ba6978a1c273f74fef50e498">tjtransform</a>
|
||||||
|
</li>
|
||||||
|
<li>options
|
||||||
|
: <a class="el" href="structtjtransform.html#ac0e74655baa4402209a21e1ae481c8f6">tjtransform</a>
|
||||||
|
</li>
|
||||||
|
<li>r
|
||||||
|
: <a class="el" href="structtjtransform.html#ac324e5e442abec8a961e5bf219db12cf">tjtransform</a>
|
||||||
|
</li>
|
||||||
|
<li>w
|
||||||
|
: <a class="el" href="structtjregion.html#ab6eb73ceef584fc23c8c8097926dce42">tjregion</a>
|
||||||
|
</li>
|
||||||
|
<li>x
|
||||||
|
: <a class="el" href="structtjregion.html#a4b6a37a93997091b26a75831fa291ad9">tjregion</a>
|
||||||
|
</li>
|
||||||
|
<li>y
|
||||||
|
: <a class="el" href="structtjregion.html#a7b3e0c24cfe87acc80e334cafdcf22c2">tjregion</a>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
<!-- window showing the filter options -->
|
||||||
|
<div id="MSearchSelectWindow"
|
||||||
|
onmouseover="return searchBox.OnSearchSelectShow()"
|
||||||
|
onmouseout="return searchBox.OnSearchSelectHide()"
|
||||||
|
onkeydown="return searchBox.OnSearchSelectKey(event)">
|
||||||
|
<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark"> </span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark"> </span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark"> </span>Variables</a></div>
|
||||||
|
|
||||||
|
<!-- iframe showing the search results (closed by default) -->
|
||||||
|
<div id="MSearchResultsWindow">
|
||||||
|
<iframe src="javascript:void(0)" frameborder="0"
|
||||||
|
name="MSearchResults" id="MSearchResults">
|
||||||
|
</iframe>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<hr class="footer"/><address class="footer"><small>Generated on Fri Jun 29 2012 18:14:55 for TurboJPEG by 
|
||||||
|
<a href="http://www.doxygen.org/index.html">
|
||||||
|
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.4 </small></address>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
120
doc/html/functions_vars.html
Normal file
@@ -0,0 +1,120 @@
|
|||||||
|
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||||
|
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||||
|
<head>
|
||||||
|
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
||||||
|
<title>TurboJPEG: Data Fields - Variables</title>
|
||||||
|
<link href="tabs.css" rel="stylesheet" type="text/css"/>
|
||||||
|
<link href="search/search.css" rel="stylesheet" type="text/css"/>
|
||||||
|
<script type="text/javascript" src="search/search.js"></script>
|
||||||
|
<link href="doxygen.css" rel="stylesheet" type="text/css"/>
|
||||||
|
</head>
|
||||||
|
<body onload='searchBox.OnSelectItem(0);'>
|
||||||
|
<!-- Generated by Doxygen 1.7.4 -->
|
||||||
|
<script type="text/javascript"><!--
|
||||||
|
var searchBox = new SearchBox("searchBox", "search",false,'Search');
|
||||||
|
--></script>
|
||||||
|
<div id="top">
|
||||||
|
<div id="titlearea">
|
||||||
|
<table cellspacing="0" cellpadding="0">
|
||||||
|
<tbody>
|
||||||
|
<tr style="height: 56px;">
|
||||||
|
<td style="padding-left: 0.5em;">
|
||||||
|
<div id="projectname">TurboJPEG <span id="projectnumber">1.2.1</span></div>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
|
<div id="navrow1" class="tabs">
|
||||||
|
<ul class="tablist">
|
||||||
|
<li><a href="index.html"><span>Main Page</span></a></li>
|
||||||
|
<li><a href="modules.html"><span>Modules</span></a></li>
|
||||||
|
<li class="current"><a href="annotated.html"><span>Data Structures</span></a></li>
|
||||||
|
<li id="searchli">
|
||||||
|
<div id="MSearchBox" class="MSearchBoxInactive">
|
||||||
|
<span class="left">
|
||||||
|
<img id="MSearchSelect" src="search/mag_sel.png"
|
||||||
|
onmouseover="return searchBox.OnSearchSelectShow()"
|
||||||
|
onmouseout="return searchBox.OnSearchSelectHide()"
|
||||||
|
alt=""/>
|
||||||
|
<input type="text" id="MSearchField" value="Search" accesskey="S"
|
||||||
|
onfocus="searchBox.OnSearchFieldFocus(true)"
|
||||||
|
onblur="searchBox.OnSearchFieldFocus(false)"
|
||||||
|
onkeyup="searchBox.OnSearchFieldChange(event)"/>
|
||||||
|
</span><span class="right">
|
||||||
|
<a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
|
||||||
|
</span>
|
||||||
|
</div>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
<div id="navrow2" class="tabs2">
|
||||||
|
<ul class="tablist">
|
||||||
|
<li><a href="annotated.html"><span>Data Structures</span></a></li>
|
||||||
|
<li><a href="classes.html"><span>Data Structure Index</span></a></li>
|
||||||
|
<li class="current"><a href="functions.html"><span>Data Fields</span></a></li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
<div id="navrow3" class="tabs2">
|
||||||
|
<ul class="tablist">
|
||||||
|
<li><a href="functions.html"><span>All</span></a></li>
|
||||||
|
<li class="current"><a href="functions_vars.html"><span>Variables</span></a></li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="contents">
|
||||||
|
 <ul>
|
||||||
|
<li>customFilter
|
||||||
|
: <a class="el" href="structtjtransform.html#a43ee1bcdd2a8d7249a756774f78793c1">tjtransform</a>
|
||||||
|
</li>
|
||||||
|
<li>data
|
||||||
|
: <a class="el" href="structtjtransform.html#a688fe8f1a8ecc12a538d9e561cf338e3">tjtransform</a>
|
||||||
|
</li>
|
||||||
|
<li>denom
|
||||||
|
: <a class="el" href="structtjscalingfactor.html#aefbcdf3e9e62274b2d312c695f133ce3">tjscalingfactor</a>
|
||||||
|
</li>
|
||||||
|
<li>h
|
||||||
|
: <a class="el" href="structtjregion.html#aecefc45a26f4d8b60dd4d825c1710115">tjregion</a>
|
||||||
|
</li>
|
||||||
|
<li>num
|
||||||
|
: <a class="el" href="structtjscalingfactor.html#a9b011e57f981ee23083e2c1aa5e640ec">tjscalingfactor</a>
|
||||||
|
</li>
|
||||||
|
<li>op
|
||||||
|
: <a class="el" href="structtjtransform.html#a2525aab4ba6978a1c273f74fef50e498">tjtransform</a>
|
||||||
|
</li>
|
||||||
|
<li>options
|
||||||
|
: <a class="el" href="structtjtransform.html#ac0e74655baa4402209a21e1ae481c8f6">tjtransform</a>
|
||||||
|
</li>
|
||||||
|
<li>r
|
||||||
|
: <a class="el" href="structtjtransform.html#ac324e5e442abec8a961e5bf219db12cf">tjtransform</a>
|
||||||
|
</li>
|
||||||
|
<li>w
|
||||||
|
: <a class="el" href="structtjregion.html#ab6eb73ceef584fc23c8c8097926dce42">tjregion</a>
|
||||||
|
</li>
|
||||||
|
<li>x
|
||||||
|
: <a class="el" href="structtjregion.html#a4b6a37a93997091b26a75831fa291ad9">tjregion</a>
|
||||||
|
</li>
|
||||||
|
<li>y
|
||||||
|
: <a class="el" href="structtjregion.html#a7b3e0c24cfe87acc80e334cafdcf22c2">tjregion</a>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
<!-- window showing the filter options -->
|
||||||
|
<div id="MSearchSelectWindow"
|
||||||
|
onmouseover="return searchBox.OnSearchSelectShow()"
|
||||||
|
onmouseout="return searchBox.OnSearchSelectHide()"
|
||||||
|
onkeydown="return searchBox.OnSearchSelectKey(event)">
|
||||||
|
<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark"> </span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark"> </span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark"> </span>Variables</a></div>
|
||||||
|
|
||||||
|
<!-- iframe showing the search results (closed by default) -->
|
||||||
|
<div id="MSearchResultsWindow">
|
||||||
|
<iframe src="javascript:void(0)" frameborder="0"
|
||||||
|
name="MSearchResults" id="MSearchResults">
|
||||||
|
</iframe>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<hr class="footer"/><address class="footer"><small>Generated on Fri Jun 29 2012 18:14:55 for TurboJPEG by 
|
||||||
|
<a href="http://www.doxygen.org/index.html">
|
||||||
|
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.4 </small></address>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
1601
doc/html/group___turbo_j_p_e_g.html
Normal file
76
doc/html/index.html
Normal file
@@ -0,0 +1,76 @@
|
|||||||
|
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||||
|
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||||
|
<head>
|
||||||
|
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
||||||
|
<title>TurboJPEG: Main Page</title>
|
||||||
|
<link href="tabs.css" rel="stylesheet" type="text/css"/>
|
||||||
|
<link href="search/search.css" rel="stylesheet" type="text/css"/>
|
||||||
|
<script type="text/javascript" src="search/search.js"></script>
|
||||||
|
<link href="doxygen.css" rel="stylesheet" type="text/css"/>
|
||||||
|
</head>
|
||||||
|
<body onload='searchBox.OnSelectItem(0);'>
|
||||||
|
<!-- Generated by Doxygen 1.7.4 -->
|
||||||
|
<script type="text/javascript"><!--
|
||||||
|
var searchBox = new SearchBox("searchBox", "search",false,'Search');
|
||||||
|
--></script>
|
||||||
|
<div id="top">
|
||||||
|
<div id="titlearea">
|
||||||
|
<table cellspacing="0" cellpadding="0">
|
||||||
|
<tbody>
|
||||||
|
<tr style="height: 56px;">
|
||||||
|
<td style="padding-left: 0.5em;">
|
||||||
|
<div id="projectname">TurboJPEG <span id="projectnumber">1.2.1</span></div>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
|
<div id="navrow1" class="tabs">
|
||||||
|
<ul class="tablist">
|
||||||
|
<li class="current"><a href="index.html"><span>Main Page</span></a></li>
|
||||||
|
<li><a href="modules.html"><span>Modules</span></a></li>
|
||||||
|
<li><a href="annotated.html"><span>Data Structures</span></a></li>
|
||||||
|
<li id="searchli">
|
||||||
|
<div id="MSearchBox" class="MSearchBoxInactive">
|
||||||
|
<span class="left">
|
||||||
|
<img id="MSearchSelect" src="search/mag_sel.png"
|
||||||
|
onmouseover="return searchBox.OnSearchSelectShow()"
|
||||||
|
onmouseout="return searchBox.OnSearchSelectHide()"
|
||||||
|
alt=""/>
|
||||||
|
<input type="text" id="MSearchField" value="Search" accesskey="S"
|
||||||
|
onfocus="searchBox.OnSearchFieldFocus(true)"
|
||||||
|
onblur="searchBox.OnSearchFieldFocus(false)"
|
||||||
|
onkeyup="searchBox.OnSearchFieldChange(event)"/>
|
||||||
|
</span><span class="right">
|
||||||
|
<a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
|
||||||
|
</span>
|
||||||
|
</div>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="header">
|
||||||
|
<div class="headertitle">
|
||||||
|
<div class="title">TurboJPEG Documentation</div> </div>
|
||||||
|
</div>
|
||||||
|
<div class="contents">
|
||||||
|
</div>
|
||||||
|
<!-- window showing the filter options -->
|
||||||
|
<div id="MSearchSelectWindow"
|
||||||
|
onmouseover="return searchBox.OnSearchSelectShow()"
|
||||||
|
onmouseout="return searchBox.OnSearchSelectHide()"
|
||||||
|
onkeydown="return searchBox.OnSearchSelectKey(event)">
|
||||||
|
<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark"> </span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark"> </span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark"> </span>Variables</a></div>
|
||||||
|
|
||||||
|
<!-- iframe showing the search results (closed by default) -->
|
||||||
|
<div id="MSearchResultsWindow">
|
||||||
|
<iframe src="javascript:void(0)" frameborder="0"
|
||||||
|
name="MSearchResults" id="MSearchResults">
|
||||||
|
</iframe>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<hr class="footer"/><address class="footer"><small>Generated on Fri Jun 29 2012 18:14:55 for TurboJPEG by 
|
||||||
|
<a href="http://www.doxygen.org/index.html">
|
||||||
|
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.4 </small></address>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
112
doc/html/installdox
Executable file
@@ -0,0 +1,112 @@
|
|||||||
|
#!/usr/bin/perl
|
||||||
|
|
||||||
|
%subst = ( );
|
||||||
|
$quiet = 0;
|
||||||
|
|
||||||
|
while ( @ARGV ) {
|
||||||
|
$_ = shift @ARGV;
|
||||||
|
if ( s/^-// ) {
|
||||||
|
if ( /^l(.*)/ ) {
|
||||||
|
$v = ($1 eq "") ? shift @ARGV : $1;
|
||||||
|
($v =~ /\/$/) || ($v .= "/");
|
||||||
|
$_ = $v;
|
||||||
|
if ( /(.+)\@(.+)/ ) {
|
||||||
|
if ( exists $subst{$1} ) {
|
||||||
|
$subst{$1} = $2;
|
||||||
|
} else {
|
||||||
|
print STDERR "Unknown tag file $1 given with option -l\n";
|
||||||
|
&usage();
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
print STDERR "Argument $_ is invalid for option -l\n";
|
||||||
|
&usage();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
elsif ( /^q/ ) {
|
||||||
|
$quiet = 1;
|
||||||
|
}
|
||||||
|
elsif ( /^\?|^h/ ) {
|
||||||
|
&usage();
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
print STDERR "Illegal option -$_\n";
|
||||||
|
&usage();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
push (@files, $_ );
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
foreach $sub (keys %subst)
|
||||||
|
{
|
||||||
|
if ( $subst{$sub} eq "" )
|
||||||
|
{
|
||||||
|
print STDERR "No substitute given for tag file `$sub'\n";
|
||||||
|
&usage();
|
||||||
|
}
|
||||||
|
elsif ( ! $quiet && $sub ne "_doc" && $sub ne "_cgi" )
|
||||||
|
{
|
||||||
|
print "Substituting $subst{$sub} for each occurrence of tag file $sub\n";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if ( ! @files ) {
|
||||||
|
if (opendir(D,".")) {
|
||||||
|
foreach $file ( readdir(D) ) {
|
||||||
|
$match = ".html";
|
||||||
|
next if ( $file =~ /^\.\.?$/ );
|
||||||
|
($file =~ /$match/) && (push @files, $file);
|
||||||
|
($file =~ /\.svg/) && (push @files, $file);
|
||||||
|
($file =~ "navtree.js") && (push @files, $file);
|
||||||
|
}
|
||||||
|
closedir(D);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if ( ! @files ) {
|
||||||
|
print STDERR "Warning: No input files given and none found!\n";
|
||||||
|
}
|
||||||
|
|
||||||
|
foreach $f (@files)
|
||||||
|
{
|
||||||
|
if ( ! $quiet ) {
|
||||||
|
print "Editing: $f...\n";
|
||||||
|
}
|
||||||
|
$oldf = $f;
|
||||||
|
$f .= ".bak";
|
||||||
|
unless (rename $oldf,$f) {
|
||||||
|
print STDERR "Error: cannot rename file $oldf\n";
|
||||||
|
exit 1;
|
||||||
|
}
|
||||||
|
if (open(F,"<$f")) {
|
||||||
|
unless (open(G,">$oldf")) {
|
||||||
|
print STDERR "Error: opening file $oldf for writing\n";
|
||||||
|
exit 1;
|
||||||
|
}
|
||||||
|
if ($oldf ne "tree.js") {
|
||||||
|
while (<F>) {
|
||||||
|
s/doxygen\=\"([^ \"\:\t\>\<]*)\:([^ \"\t\>\<]*)\" (xlink:href|href|src)=\"\2/doxygen\=\"$1:$subst{$1}\" \3=\"$subst{$1}/g;
|
||||||
|
print G "$_";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
while (<F>) {
|
||||||
|
s/\"([^ \"\:\t\>\<]*)\:([^ \"\t\>\<]*)\", \"\2/\"$1:$subst{$1}\" ,\"$subst{$1}/g;
|
||||||
|
print G "$_";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
print STDERR "Warning file $f does not exist\n";
|
||||||
|
}
|
||||||
|
unlink $f;
|
||||||
|
}
|
||||||
|
|
||||||
|
sub usage {
|
||||||
|
print STDERR "Usage: installdox [options] [html-file [html-file ...]]\n";
|
||||||
|
print STDERR "Options:\n";
|
||||||
|
print STDERR " -l tagfile\@linkName tag file + URL or directory \n";
|
||||||
|
print STDERR " -q Quiet mode\n\n";
|
||||||
|
exit 1;
|
||||||
|
}
|
||||||
54
doc/html/jquery.js
vendored
Normal file
79
doc/html/modules.html
Normal file
@@ -0,0 +1,79 @@
|
|||||||
|
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||||
|
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||||
|
<head>
|
||||||
|
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
||||||
|
<title>TurboJPEG: Modules</title>
|
||||||
|
<link href="tabs.css" rel="stylesheet" type="text/css"/>
|
||||||
|
<link href="search/search.css" rel="stylesheet" type="text/css"/>
|
||||||
|
<script type="text/javascript" src="search/search.js"></script>
|
||||||
|
<link href="doxygen.css" rel="stylesheet" type="text/css"/>
|
||||||
|
</head>
|
||||||
|
<body onload='searchBox.OnSelectItem(0);'>
|
||||||
|
<!-- Generated by Doxygen 1.7.4 -->
|
||||||
|
<script type="text/javascript"><!--
|
||||||
|
var searchBox = new SearchBox("searchBox", "search",false,'Search');
|
||||||
|
--></script>
|
||||||
|
<div id="top">
|
||||||
|
<div id="titlearea">
|
||||||
|
<table cellspacing="0" cellpadding="0">
|
||||||
|
<tbody>
|
||||||
|
<tr style="height: 56px;">
|
||||||
|
<td style="padding-left: 0.5em;">
|
||||||
|
<div id="projectname">TurboJPEG <span id="projectnumber">1.2.1</span></div>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
|
<div id="navrow1" class="tabs">
|
||||||
|
<ul class="tablist">
|
||||||
|
<li><a href="index.html"><span>Main Page</span></a></li>
|
||||||
|
<li class="current"><a href="modules.html"><span>Modules</span></a></li>
|
||||||
|
<li><a href="annotated.html"><span>Data Structures</span></a></li>
|
||||||
|
<li id="searchli">
|
||||||
|
<div id="MSearchBox" class="MSearchBoxInactive">
|
||||||
|
<span class="left">
|
||||||
|
<img id="MSearchSelect" src="search/mag_sel.png"
|
||||||
|
onmouseover="return searchBox.OnSearchSelectShow()"
|
||||||
|
onmouseout="return searchBox.OnSearchSelectHide()"
|
||||||
|
alt=""/>
|
||||||
|
<input type="text" id="MSearchField" value="Search" accesskey="S"
|
||||||
|
onfocus="searchBox.OnSearchFieldFocus(true)"
|
||||||
|
onblur="searchBox.OnSearchFieldFocus(false)"
|
||||||
|
onkeyup="searchBox.OnSearchFieldChange(event)"/>
|
||||||
|
</span><span class="right">
|
||||||
|
<a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
|
||||||
|
</span>
|
||||||
|
</div>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="header">
|
||||||
|
<div class="headertitle">
|
||||||
|
<div class="title">Modules</div> </div>
|
||||||
|
</div>
|
||||||
|
<div class="contents">
|
||||||
|
<div class="textblock">Here is a list of all modules:</div><ul>
|
||||||
|
<li><a class="el" href="group___turbo_j_p_e_g.html">TurboJPEG</a></li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
<!-- window showing the filter options -->
|
||||||
|
<div id="MSearchSelectWindow"
|
||||||
|
onmouseover="return searchBox.OnSearchSelectShow()"
|
||||||
|
onmouseout="return searchBox.OnSearchSelectHide()"
|
||||||
|
onkeydown="return searchBox.OnSearchSelectKey(event)">
|
||||||
|
<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark"> </span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark"> </span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark"> </span>Variables</a></div>
|
||||||
|
|
||||||
|
<!-- iframe showing the search results (closed by default) -->
|
||||||
|
<div id="MSearchResultsWindow">
|
||||||
|
<iframe src="javascript:void(0)" frameborder="0"
|
||||||
|
name="MSearchResults" id="MSearchResults">
|
||||||
|
</iframe>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<hr class="footer"/><address class="footer"><small>Generated on Fri Jun 29 2012 18:14:55 for TurboJPEG by 
|
||||||
|
<a href="http://www.doxygen.org/index.html">
|
||||||
|
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.4 </small></address>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
BIN
doc/html/nav_f.png
Normal file
|
After Width: | Height: | Size: 159 B |
BIN
doc/html/nav_h.png
Normal file
|
After Width: | Height: | Size: 97 B |
BIN
doc/html/open.png
Normal file
|
After Width: | Height: | Size: 118 B |
26
doc/html/search/all_63.html
Normal file
@@ -0,0 +1,26 @@
|
|||||||
|
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||||
|
<html><head><title></title>
|
||||||
|
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
||||||
|
<link rel="stylesheet" type="text/css" href="search.css"/>
|
||||||
|
<script type="text/javascript" src="search.js"></script>
|
||||||
|
</head>
|
||||||
|
<body class="SRPage">
|
||||||
|
<div id="SRIndex">
|
||||||
|
<div class="SRStatus" id="Loading">Loading...</div>
|
||||||
|
<div class="SRResult" id="SR_customfilter">
|
||||||
|
<div class="SREntry">
|
||||||
|
<a id="Item0" onkeydown="return searchResults.Nav(event,0)" onkeypress="return searchResults.Nav(event,0)" onkeyup="return searchResults.Nav(event,0)" class="SRSymbol" href="../structtjtransform.html#a43ee1bcdd2a8d7249a756774f78793c1" target="_parent">customFilter</a>
|
||||||
|
<span class="SRScope">tjtransform</span>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="SRStatus" id="Searching">Searching...</div>
|
||||||
|
<div class="SRStatus" id="NoMatches">No Matches</div>
|
||||||
|
<script type="text/javascript"><!--
|
||||||
|
document.getElementById("Loading").style.display="none";
|
||||||
|
document.getElementById("NoMatches").style.display="none";
|
||||||
|
var searchResults = new SearchResults("searchResults");
|
||||||
|
searchResults.Search();
|
||||||
|
--></script>
|
||||||
|
</div>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
32
doc/html/search/all_64.html
Normal file
@@ -0,0 +1,32 @@
|
|||||||
|
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||||
|
<html><head><title></title>
|
||||||
|
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
||||||
|
<link rel="stylesheet" type="text/css" href="search.css"/>
|
||||||
|
<script type="text/javascript" src="search.js"></script>
|
||||||
|
</head>
|
||||||
|
<body class="SRPage">
|
||||||
|
<div id="SRIndex">
|
||||||
|
<div class="SRStatus" id="Loading">Loading...</div>
|
||||||
|
<div class="SRResult" id="SR_data">
|
||||||
|
<div class="SREntry">
|
||||||
|
<a id="Item0" onkeydown="return searchResults.Nav(event,0)" onkeypress="return searchResults.Nav(event,0)" onkeyup="return searchResults.Nav(event,0)" class="SRSymbol" href="../structtjtransform.html#a688fe8f1a8ecc12a538d9e561cf338e3" target="_parent">data</a>
|
||||||
|
<span class="SRScope">tjtransform</span>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="SRResult" id="SR_denom">
|
||||||
|
<div class="SREntry">
|
||||||
|
<a id="Item1" onkeydown="return searchResults.Nav(event,1)" onkeypress="return searchResults.Nav(event,1)" onkeyup="return searchResults.Nav(event,1)" class="SRSymbol" href="../structtjscalingfactor.html#aefbcdf3e9e62274b2d312c695f133ce3" target="_parent">denom</a>
|
||||||
|
<span class="SRScope">tjscalingfactor</span>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="SRStatus" id="Searching">Searching...</div>
|
||||||
|
<div class="SRStatus" id="NoMatches">No Matches</div>
|
||||||
|
<script type="text/javascript"><!--
|
||||||
|
document.getElementById("Loading").style.display="none";
|
||||||
|
document.getElementById("NoMatches").style.display="none";
|
||||||
|
var searchResults = new SearchResults("searchResults");
|
||||||
|
searchResults.Search();
|
||||||
|
--></script>
|
||||||
|
</div>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
26
doc/html/search/all_68.html
Normal file
@@ -0,0 +1,26 @@
|
|||||||
|
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||||
|
<html><head><title></title>
|
||||||
|
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
||||||
|
<link rel="stylesheet" type="text/css" href="search.css"/>
|
||||||
|
<script type="text/javascript" src="search.js"></script>
|
||||||
|
</head>
|
||||||
|
<body class="SRPage">
|
||||||
|
<div id="SRIndex">
|
||||||
|
<div class="SRStatus" id="Loading">Loading...</div>
|
||||||
|
<div class="SRResult" id="SR_h">
|
||||||
|
<div class="SREntry">
|
||||||
|
<a id="Item0" onkeydown="return searchResults.Nav(event,0)" onkeypress="return searchResults.Nav(event,0)" onkeyup="return searchResults.Nav(event,0)" class="SRSymbol" href="../structtjregion.html#aecefc45a26f4d8b60dd4d825c1710115" target="_parent">h</a>
|
||||||
|
<span class="SRScope">tjregion</span>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="SRStatus" id="Searching">Searching...</div>
|
||||||
|
<div class="SRStatus" id="NoMatches">No Matches</div>
|
||||||
|
<script type="text/javascript"><!--
|
||||||
|
document.getElementById("Loading").style.display="none";
|
||||||
|
document.getElementById("NoMatches").style.display="none";
|
||||||
|
var searchResults = new SearchResults("searchResults");
|
||||||
|
searchResults.Search();
|
||||||
|
--></script>
|
||||||
|
</div>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
26
doc/html/search/all_6e.html
Normal file
@@ -0,0 +1,26 @@
|
|||||||
|
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||||
|
<html><head><title></title>
|
||||||
|
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
||||||
|
<link rel="stylesheet" type="text/css" href="search.css"/>
|
||||||
|
<script type="text/javascript" src="search.js"></script>
|
||||||
|
</head>
|
||||||
|
<body class="SRPage">
|
||||||
|
<div id="SRIndex">
|
||||||
|
<div class="SRStatus" id="Loading">Loading...</div>
|
||||||
|
<div class="SRResult" id="SR_num">
|
||||||
|
<div class="SREntry">
|
||||||
|
<a id="Item0" onkeydown="return searchResults.Nav(event,0)" onkeypress="return searchResults.Nav(event,0)" onkeyup="return searchResults.Nav(event,0)" class="SRSymbol" href="../structtjscalingfactor.html#a9b011e57f981ee23083e2c1aa5e640ec" target="_parent">num</a>
|
||||||
|
<span class="SRScope">tjscalingfactor</span>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="SRStatus" id="Searching">Searching...</div>
|
||||||
|
<div class="SRStatus" id="NoMatches">No Matches</div>
|
||||||
|
<script type="text/javascript"><!--
|
||||||
|
document.getElementById("Loading").style.display="none";
|
||||||
|
document.getElementById("NoMatches").style.display="none";
|
||||||
|
var searchResults = new SearchResults("searchResults");
|
||||||
|
searchResults.Search();
|
||||||
|
--></script>
|
||||||
|
</div>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
32
doc/html/search/all_6f.html
Normal file
@@ -0,0 +1,32 @@
|
|||||||
|
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||||
|
<html><head><title></title>
|
||||||
|
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
||||||
|
<link rel="stylesheet" type="text/css" href="search.css"/>
|
||||||
|
<script type="text/javascript" src="search.js"></script>
|
||||||
|
</head>
|
||||||
|
<body class="SRPage">
|
||||||
|
<div id="SRIndex">
|
||||||
|
<div class="SRStatus" id="Loading">Loading...</div>
|
||||||
|
<div class="SRResult" id="SR_op">
|
||||||
|
<div class="SREntry">
|
||||||
|
<a id="Item0" onkeydown="return searchResults.Nav(event,0)" onkeypress="return searchResults.Nav(event,0)" onkeyup="return searchResults.Nav(event,0)" class="SRSymbol" href="../structtjtransform.html#a2525aab4ba6978a1c273f74fef50e498" target="_parent">op</a>
|
||||||
|
<span class="SRScope">tjtransform</span>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="SRResult" id="SR_options">
|
||||||
|
<div class="SREntry">
|
||||||
|
<a id="Item1" onkeydown="return searchResults.Nav(event,1)" onkeypress="return searchResults.Nav(event,1)" onkeyup="return searchResults.Nav(event,1)" class="SRSymbol" href="../structtjtransform.html#ac0e74655baa4402209a21e1ae481c8f6" target="_parent">options</a>
|
||||||
|
<span class="SRScope">tjtransform</span>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="SRStatus" id="Searching">Searching...</div>
|
||||||
|
<div class="SRStatus" id="NoMatches">No Matches</div>
|
||||||
|
<script type="text/javascript"><!--
|
||||||
|
document.getElementById("Loading").style.display="none";
|
||||||
|
document.getElementById("NoMatches").style.display="none";
|
||||||
|
var searchResults = new SearchResults("searchResults");
|
||||||
|
searchResults.Search();
|
||||||
|
--></script>
|
||||||
|
</div>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
26
doc/html/search/all_72.html
Normal file
@@ -0,0 +1,26 @@
|
|||||||
|
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||||
|
<html><head><title></title>
|
||||||
|
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
||||||
|
<link rel="stylesheet" type="text/css" href="search.css"/>
|
||||||
|
<script type="text/javascript" src="search.js"></script>
|
||||||
|
</head>
|
||||||
|
<body class="SRPage">
|
||||||
|
<div id="SRIndex">
|
||||||
|
<div class="SRStatus" id="Loading">Loading...</div>
|
||||||
|
<div class="SRResult" id="SR_r">
|
||||||
|
<div class="SREntry">
|
||||||
|
<a id="Item0" onkeydown="return searchResults.Nav(event,0)" onkeypress="return searchResults.Nav(event,0)" onkeyup="return searchResults.Nav(event,0)" class="SRSymbol" href="../structtjtransform.html#ac324e5e442abec8a961e5bf219db12cf" target="_parent">r</a>
|
||||||
|
<span class="SRScope">tjtransform</span>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="SRStatus" id="Searching">Searching...</div>
|
||||||
|
<div class="SRStatus" id="NoMatches">No Matches</div>
|
||||||
|
<script type="text/javascript"><!--
|
||||||
|
document.getElementById("Loading").style.display="none";
|
||||||
|
document.getElementById("NoMatches").style.display="none";
|
||||||
|
var searchResults = new SearchResults("searchResults");
|
||||||
|
searchResults.Search();
|
||||||
|
--></script>
|
||||||
|
</div>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
35
doc/html/search/all_74.html
Normal file
@@ -0,0 +1,35 @@
|
|||||||
|
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||||
|
<html><head><title></title>
|
||||||
|
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
||||||
|
<link rel="stylesheet" type="text/css" href="search.css"/>
|
||||||
|
<script type="text/javascript" src="search.js"></script>
|
||||||
|
</head>
|
||||||
|
<body class="SRPage">
|
||||||
|
<div id="SRIndex">
|
||||||
|
<div class="SRStatus" id="Loading">Loading...</div>
|
||||||
|
<div class="SRResult" id="SR_tjregion">
|
||||||
|
<div class="SREntry">
|
||||||
|
<a id="Item0" onkeydown="return searchResults.Nav(event,0)" onkeypress="return searchResults.Nav(event,0)" onkeyup="return searchResults.Nav(event,0)" class="SRSymbol" href="../structtjregion.html" target="_parent">tjregion</a>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="SRResult" id="SR_tjscalingfactor">
|
||||||
|
<div class="SREntry">
|
||||||
|
<a id="Item1" onkeydown="return searchResults.Nav(event,1)" onkeypress="return searchResults.Nav(event,1)" onkeyup="return searchResults.Nav(event,1)" class="SRSymbol" href="../structtjscalingfactor.html" target="_parent">tjscalingfactor</a>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="SRResult" id="SR_tjtransform">
|
||||||
|
<div class="SREntry">
|
||||||
|
<a id="Item2" onkeydown="return searchResults.Nav(event,2)" onkeypress="return searchResults.Nav(event,2)" onkeyup="return searchResults.Nav(event,2)" class="SRSymbol" href="../structtjtransform.html" target="_parent">tjtransform</a>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="SRStatus" id="Searching">Searching...</div>
|
||||||
|
<div class="SRStatus" id="NoMatches">No Matches</div>
|
||||||
|
<script type="text/javascript"><!--
|
||||||
|
document.getElementById("Loading").style.display="none";
|
||||||
|
document.getElementById("NoMatches").style.display="none";
|
||||||
|
var searchResults = new SearchResults("searchResults");
|
||||||
|
searchResults.Search();
|
||||||
|
--></script>
|
||||||
|
</div>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
26
doc/html/search/all_77.html
Normal file
@@ -0,0 +1,26 @@
|
|||||||
|
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||||
|
<html><head><title></title>
|
||||||
|
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
||||||
|
<link rel="stylesheet" type="text/css" href="search.css"/>
|
||||||
|
<script type="text/javascript" src="search.js"></script>
|
||||||
|
</head>
|
||||||
|
<body class="SRPage">
|
||||||
|
<div id="SRIndex">
|
||||||
|
<div class="SRStatus" id="Loading">Loading...</div>
|
||||||
|
<div class="SRResult" id="SR_w">
|
||||||
|
<div class="SREntry">
|
||||||
|
<a id="Item0" onkeydown="return searchResults.Nav(event,0)" onkeypress="return searchResults.Nav(event,0)" onkeyup="return searchResults.Nav(event,0)" class="SRSymbol" href="../structtjregion.html#ab6eb73ceef584fc23c8c8097926dce42" target="_parent">w</a>
|
||||||
|
<span class="SRScope">tjregion</span>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="SRStatus" id="Searching">Searching...</div>
|
||||||
|
<div class="SRStatus" id="NoMatches">No Matches</div>
|
||||||
|
<script type="text/javascript"><!--
|
||||||
|
document.getElementById("Loading").style.display="none";
|
||||||
|
document.getElementById("NoMatches").style.display="none";
|
||||||
|
var searchResults = new SearchResults("searchResults");
|
||||||
|
searchResults.Search();
|
||||||
|
--></script>
|
||||||
|
</div>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
26
doc/html/search/all_78.html
Normal file
@@ -0,0 +1,26 @@
|
|||||||
|
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||||
|
<html><head><title></title>
|
||||||
|
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
||||||
|
<link rel="stylesheet" type="text/css" href="search.css"/>
|
||||||
|
<script type="text/javascript" src="search.js"></script>
|
||||||
|
</head>
|
||||||
|
<body class="SRPage">
|
||||||
|
<div id="SRIndex">
|
||||||
|
<div class="SRStatus" id="Loading">Loading...</div>
|
||||||
|
<div class="SRResult" id="SR_x">
|
||||||
|
<div class="SREntry">
|
||||||
|
<a id="Item0" onkeydown="return searchResults.Nav(event,0)" onkeypress="return searchResults.Nav(event,0)" onkeyup="return searchResults.Nav(event,0)" class="SRSymbol" href="../structtjregion.html#a4b6a37a93997091b26a75831fa291ad9" target="_parent">x</a>
|
||||||
|
<span class="SRScope">tjregion</span>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="SRStatus" id="Searching">Searching...</div>
|
||||||
|
<div class="SRStatus" id="NoMatches">No Matches</div>
|
||||||
|
<script type="text/javascript"><!--
|
||||||
|
document.getElementById("Loading").style.display="none";
|
||||||
|
document.getElementById("NoMatches").style.display="none";
|
||||||
|
var searchResults = new SearchResults("searchResults");
|
||||||
|
searchResults.Search();
|
||||||
|
--></script>
|
||||||
|
</div>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
26
doc/html/search/all_79.html
Normal file
@@ -0,0 +1,26 @@
|
|||||||
|
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||||
|
<html><head><title></title>
|
||||||
|
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
||||||
|
<link rel="stylesheet" type="text/css" href="search.css"/>
|
||||||
|
<script type="text/javascript" src="search.js"></script>
|
||||||
|
</head>
|
||||||
|
<body class="SRPage">
|
||||||
|
<div id="SRIndex">
|
||||||
|
<div class="SRStatus" id="Loading">Loading...</div>
|
||||||
|
<div class="SRResult" id="SR_y">
|
||||||
|
<div class="SREntry">
|
||||||
|
<a id="Item0" onkeydown="return searchResults.Nav(event,0)" onkeypress="return searchResults.Nav(event,0)" onkeyup="return searchResults.Nav(event,0)" class="SRSymbol" href="../structtjregion.html#a7b3e0c24cfe87acc80e334cafdcf22c2" target="_parent">y</a>
|
||||||
|
<span class="SRScope">tjregion</span>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="SRStatus" id="Searching">Searching...</div>
|
||||||
|
<div class="SRStatus" id="NoMatches">No Matches</div>
|
||||||
|
<script type="text/javascript"><!--
|
||||||
|
document.getElementById("Loading").style.display="none";
|
||||||
|
document.getElementById("NoMatches").style.display="none";
|
||||||
|
var searchResults = new SearchResults("searchResults");
|
||||||
|
searchResults.Search();
|
||||||
|
--></script>
|
||||||
|
</div>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
35
doc/html/search/classes_74.html
Normal file
@@ -0,0 +1,35 @@
|
|||||||
|
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||||
|
<html><head><title></title>
|
||||||
|
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
||||||
|
<link rel="stylesheet" type="text/css" href="search.css"/>
|
||||||
|
<script type="text/javascript" src="search.js"></script>
|
||||||
|
</head>
|
||||||
|
<body class="SRPage">
|
||||||
|
<div id="SRIndex">
|
||||||
|
<div class="SRStatus" id="Loading">Loading...</div>
|
||||||
|
<div class="SRResult" id="SR_tjregion">
|
||||||
|
<div class="SREntry">
|
||||||
|
<a id="Item0" onkeydown="return searchResults.Nav(event,0)" onkeypress="return searchResults.Nav(event,0)" onkeyup="return searchResults.Nav(event,0)" class="SRSymbol" href="../structtjregion.html" target="_parent">tjregion</a>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="SRResult" id="SR_tjscalingfactor">
|
||||||
|
<div class="SREntry">
|
||||||
|
<a id="Item1" onkeydown="return searchResults.Nav(event,1)" onkeypress="return searchResults.Nav(event,1)" onkeyup="return searchResults.Nav(event,1)" class="SRSymbol" href="../structtjscalingfactor.html" target="_parent">tjscalingfactor</a>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="SRResult" id="SR_tjtransform">
|
||||||
|
<div class="SREntry">
|
||||||
|
<a id="Item2" onkeydown="return searchResults.Nav(event,2)" onkeypress="return searchResults.Nav(event,2)" onkeyup="return searchResults.Nav(event,2)" class="SRSymbol" href="../structtjtransform.html" target="_parent">tjtransform</a>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="SRStatus" id="Searching">Searching...</div>
|
||||||
|
<div class="SRStatus" id="NoMatches">No Matches</div>
|
||||||
|
<script type="text/javascript"><!--
|
||||||
|
document.getElementById("Loading").style.display="none";
|
||||||
|
document.getElementById("NoMatches").style.display="none";
|
||||||
|
var searchResults = new SearchResults("searchResults");
|
||||||
|
searchResults.Search();
|
||||||
|
--></script>
|
||||||
|
</div>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
BIN
doc/html/search/close.png
Normal file
|
After Width: | Height: | Size: 273 B |
BIN
doc/html/search/mag_sel.png
Normal file
|
After Width: | Height: | Size: 563 B |
12
doc/html/search/nomatches.html
Normal file
@@ -0,0 +1,12 @@
|
|||||||
|
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||||
|
<html><head><title></title>
|
||||||
|
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
||||||
|
<link rel="stylesheet" type="text/css" href="search.css"/>
|
||||||
|
<script type="text/javascript" src="search.js"></script>
|
||||||
|
</head>
|
||||||
|
<body class="SRPage">
|
||||||
|
<div id="SRIndex">
|
||||||
|
<div class="SRStatus" id="NoMatches">No Matches</div>
|
||||||
|
</div>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
240
doc/html/search/search.css
Normal file
@@ -0,0 +1,240 @@
|
|||||||
|
/*---------------- Search Box */
|
||||||
|
|
||||||
|
#FSearchBox {
|
||||||
|
float: left;
|
||||||
|
}
|
||||||
|
|
||||||
|
#searchli {
|
||||||
|
float: right;
|
||||||
|
display: block;
|
||||||
|
width: 170px;
|
||||||
|
height: 36px;
|
||||||
|
}
|
||||||
|
|
||||||
|
#MSearchBox {
|
||||||
|
white-space : nowrap;
|
||||||
|
position: absolute;
|
||||||
|
float: none;
|
||||||
|
display: inline;
|
||||||
|
margin-top: 8px;
|
||||||
|
right: 0px;
|
||||||
|
width: 170px;
|
||||||
|
z-index: 102;
|
||||||
|
}
|
||||||
|
|
||||||
|
#MSearchBox .left
|
||||||
|
{
|
||||||
|
display:block;
|
||||||
|
position:absolute;
|
||||||
|
left:10px;
|
||||||
|
width:20px;
|
||||||
|
height:19px;
|
||||||
|
background:url('search_l.png') no-repeat;
|
||||||
|
background-position:right;
|
||||||
|
}
|
||||||
|
|
||||||
|
#MSearchSelect {
|
||||||
|
display:block;
|
||||||
|
position:absolute;
|
||||||
|
width:20px;
|
||||||
|
height:19px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.left #MSearchSelect {
|
||||||
|
left:4px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.right #MSearchSelect {
|
||||||
|
right:5px;
|
||||||
|
}
|
||||||
|
|
||||||
|
#MSearchField {
|
||||||
|
display:block;
|
||||||
|
position:absolute;
|
||||||
|
height:19px;
|
||||||
|
background:url('search_m.png') repeat-x;
|
||||||
|
border:none;
|
||||||
|
width:116px;
|
||||||
|
margin-left:20px;
|
||||||
|
padding-left:4px;
|
||||||
|
color: #909090;
|
||||||
|
outline: none;
|
||||||
|
font: 9pt Arial, Verdana, sans-serif;
|
||||||
|
}
|
||||||
|
|
||||||
|
#FSearchBox #MSearchField {
|
||||||
|
margin-left:15px;
|
||||||
|
}
|
||||||
|
|
||||||
|
#MSearchBox .right {
|
||||||
|
display:block;
|
||||||
|
position:absolute;
|
||||||
|
right:10px;
|
||||||
|
top:0px;
|
||||||
|
width:20px;
|
||||||
|
height:19px;
|
||||||
|
background:url('search_r.png') no-repeat;
|
||||||
|
background-position:left;
|
||||||
|
}
|
||||||
|
|
||||||
|
#MSearchClose {
|
||||||
|
display: none;
|
||||||
|
position: absolute;
|
||||||
|
top: 4px;
|
||||||
|
background : none;
|
||||||
|
border: none;
|
||||||
|
margin: 0px 4px 0px 0px;
|
||||||
|
padding: 0px 0px;
|
||||||
|
outline: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
.left #MSearchClose {
|
||||||
|
left: 6px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.right #MSearchClose {
|
||||||
|
right: 2px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.MSearchBoxActive #MSearchField {
|
||||||
|
color: #000000;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*---------------- Search filter selection */
|
||||||
|
|
||||||
|
#MSearchSelectWindow {
|
||||||
|
display: none;
|
||||||
|
position: absolute;
|
||||||
|
left: 0; top: 0;
|
||||||
|
border: 1px solid #90A5CE;
|
||||||
|
background-color: #F9FAFC;
|
||||||
|
z-index: 1;
|
||||||
|
padding-top: 4px;
|
||||||
|
padding-bottom: 4px;
|
||||||
|
-moz-border-radius: 4px;
|
||||||
|
-webkit-border-top-left-radius: 4px;
|
||||||
|
-webkit-border-top-right-radius: 4px;
|
||||||
|
-webkit-border-bottom-left-radius: 4px;
|
||||||
|
-webkit-border-bottom-right-radius: 4px;
|
||||||
|
-webkit-box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15);
|
||||||
|
}
|
||||||
|
|
||||||
|
.SelectItem {
|
||||||
|
font: 8pt Arial, Verdana, sans-serif;
|
||||||
|
padding-left: 2px;
|
||||||
|
padding-right: 12px;
|
||||||
|
border: 0px;
|
||||||
|
}
|
||||||
|
|
||||||
|
span.SelectionMark {
|
||||||
|
margin-right: 4px;
|
||||||
|
font-family: monospace;
|
||||||
|
outline-style: none;
|
||||||
|
text-decoration: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
a.SelectItem {
|
||||||
|
display: block;
|
||||||
|
outline-style: none;
|
||||||
|
color: #000000;
|
||||||
|
text-decoration: none;
|
||||||
|
padding-left: 6px;
|
||||||
|
padding-right: 12px;
|
||||||
|
}
|
||||||
|
|
||||||
|
a.SelectItem:focus,
|
||||||
|
a.SelectItem:active {
|
||||||
|
color: #000000;
|
||||||
|
outline-style: none;
|
||||||
|
text-decoration: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
a.SelectItem:hover {
|
||||||
|
color: #FFFFFF;
|
||||||
|
background-color: #3D578C;
|
||||||
|
outline-style: none;
|
||||||
|
text-decoration: none;
|
||||||
|
cursor: pointer;
|
||||||
|
display: block;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*---------------- Search results window */
|
||||||
|
|
||||||
|
iframe#MSearchResults {
|
||||||
|
width: 60ex;
|
||||||
|
height: 15em;
|
||||||
|
}
|
||||||
|
|
||||||
|
#MSearchResultsWindow {
|
||||||
|
display: none;
|
||||||
|
position: absolute;
|
||||||
|
left: 0; top: 0;
|
||||||
|
border: 1px solid #000;
|
||||||
|
background-color: #EEF1F7;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* ----------------------------------- */
|
||||||
|
|
||||||
|
|
||||||
|
#SRIndex {
|
||||||
|
clear:both;
|
||||||
|
padding-bottom: 15px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.SREntry {
|
||||||
|
font-size: 10pt;
|
||||||
|
padding-left: 1ex;
|
||||||
|
}
|
||||||
|
|
||||||
|
.SRPage .SREntry {
|
||||||
|
font-size: 8pt;
|
||||||
|
padding: 1px 5px;
|
||||||
|
}
|
||||||
|
|
||||||
|
body.SRPage {
|
||||||
|
margin: 5px 2px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.SRChildren {
|
||||||
|
padding-left: 3ex; padding-bottom: .5em
|
||||||
|
}
|
||||||
|
|
||||||
|
.SRPage .SRChildren {
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
.SRSymbol {
|
||||||
|
font-weight: bold;
|
||||||
|
color: #425E97;
|
||||||
|
font-family: Arial, Verdana, sans-serif;
|
||||||
|
text-decoration: none;
|
||||||
|
outline: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
a.SRScope {
|
||||||
|
display: block;
|
||||||
|
color: #425E97;
|
||||||
|
font-family: Arial, Verdana, sans-serif;
|
||||||
|
text-decoration: none;
|
||||||
|
outline: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
a.SRSymbol:focus, a.SRSymbol:active,
|
||||||
|
a.SRScope:focus, a.SRScope:active {
|
||||||
|
text-decoration: underline;
|
||||||
|
}
|
||||||
|
|
||||||
|
.SRPage .SRStatus {
|
||||||
|
padding: 2px 5px;
|
||||||
|
font-size: 8pt;
|
||||||
|
font-style: italic;
|
||||||
|
}
|
||||||
|
|
||||||
|
.SRResult {
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
DIV.searchresults {
|
||||||
|
margin-left: 10px;
|
||||||
|
margin-right: 10px;
|
||||||
|
}
|
||||||
730
doc/html/search/search.js
Normal file
@@ -0,0 +1,730 @@
|
|||||||
|
// Search script generated by doxygen
|
||||||
|
// Copyright (C) 2009 by Dimitri van Heesch.
|
||||||
|
|
||||||
|
// The code in this file is loosly based on main.js, part of Natural Docs,
|
||||||
|
// which is Copyright (C) 2003-2008 Greg Valure
|
||||||
|
// Natural Docs is licensed under the GPL.
|
||||||
|
|
||||||
|
var indexSectionsWithContent =
|
||||||
|
{
|
||||||
|
0: "0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001100010000011001010011100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
|
||||||
|
1: "0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
|
||||||
|
2: "0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001100010000011001000011100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"
|
||||||
|
};
|
||||||
|
|
||||||
|
var indexSectionNames =
|
||||||
|
{
|
||||||
|
0: "all",
|
||||||
|
1: "classes",
|
||||||
|
2: "variables"
|
||||||
|
};
|
||||||
|
|
||||||
|
function convertToId(search)
|
||||||
|
{
|
||||||
|
var result = '';
|
||||||
|
for (i=0;i<search.length;i++)
|
||||||
|
{
|
||||||
|
var c = search.charAt(i);
|
||||||
|
var cn = c.charCodeAt(0);
|
||||||
|
if (c.match(/[a-z0-9]/))
|
||||||
|
{
|
||||||
|
result+=c;
|
||||||
|
}
|
||||||
|
else if (cn<16)
|
||||||
|
{
|
||||||
|
result+="_0"+cn.toString(16);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
result+="_"+cn.toString(16);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
|
function getXPos(item)
|
||||||
|
{
|
||||||
|
var x = 0;
|
||||||
|
if (item.offsetWidth)
|
||||||
|
{
|
||||||
|
while (item && item!=document.body)
|
||||||
|
{
|
||||||
|
x += item.offsetLeft;
|
||||||
|
item = item.offsetParent;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return x;
|
||||||
|
}
|
||||||
|
|
||||||
|
function getYPos(item)
|
||||||
|
{
|
||||||
|
var y = 0;
|
||||||
|
if (item.offsetWidth)
|
||||||
|
{
|
||||||
|
while (item && item!=document.body)
|
||||||
|
{
|
||||||
|
y += item.offsetTop;
|
||||||
|
item = item.offsetParent;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return y;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* A class handling everything associated with the search panel.
|
||||||
|
|
||||||
|
Parameters:
|
||||||
|
name - The name of the global variable that will be
|
||||||
|
storing this instance. Is needed to be able to set timeouts.
|
||||||
|
resultPath - path to use for external files
|
||||||
|
*/
|
||||||
|
function SearchBox(name, resultsPath, inFrame, label)
|
||||||
|
{
|
||||||
|
if (!name || !resultsPath) { alert("Missing parameters to SearchBox."); }
|
||||||
|
|
||||||
|
// ---------- Instance variables
|
||||||
|
this.name = name;
|
||||||
|
this.resultsPath = resultsPath;
|
||||||
|
this.keyTimeout = 0;
|
||||||
|
this.keyTimeoutLength = 500;
|
||||||
|
this.closeSelectionTimeout = 300;
|
||||||
|
this.lastSearchValue = "";
|
||||||
|
this.lastResultsPage = "";
|
||||||
|
this.hideTimeout = 0;
|
||||||
|
this.searchIndex = 0;
|
||||||
|
this.searchActive = false;
|
||||||
|
this.insideFrame = inFrame;
|
||||||
|
this.searchLabel = label;
|
||||||
|
|
||||||
|
// ----------- DOM Elements
|
||||||
|
|
||||||
|
this.DOMSearchField = function()
|
||||||
|
{ return document.getElementById("MSearchField"); }
|
||||||
|
|
||||||
|
this.DOMSearchSelect = function()
|
||||||
|
{ return document.getElementById("MSearchSelect"); }
|
||||||
|
|
||||||
|
this.DOMSearchSelectWindow = function()
|
||||||
|
{ return document.getElementById("MSearchSelectWindow"); }
|
||||||
|
|
||||||
|
this.DOMPopupSearchResults = function()
|
||||||
|
{ return document.getElementById("MSearchResults"); }
|
||||||
|
|
||||||
|
this.DOMPopupSearchResultsWindow = function()
|
||||||
|
{ return document.getElementById("MSearchResultsWindow"); }
|
||||||
|
|
||||||
|
this.DOMSearchClose = function()
|
||||||
|
{ return document.getElementById("MSearchClose"); }
|
||||||
|
|
||||||
|
this.DOMSearchBox = function()
|
||||||
|
{ return document.getElementById("MSearchBox"); }
|
||||||
|
|
||||||
|
// ------------ Event Handlers
|
||||||
|
|
||||||
|
// Called when focus is added or removed from the search field.
|
||||||
|
this.OnSearchFieldFocus = function(isActive)
|
||||||
|
{
|
||||||
|
this.Activate(isActive);
|
||||||
|
}
|
||||||
|
|
||||||
|
this.OnSearchSelectShow = function()
|
||||||
|
{
|
||||||
|
var searchSelectWindow = this.DOMSearchSelectWindow();
|
||||||
|
var searchField = this.DOMSearchSelect();
|
||||||
|
|
||||||
|
if (this.insideFrame)
|
||||||
|
{
|
||||||
|
var left = getXPos(searchField);
|
||||||
|
var top = getYPos(searchField);
|
||||||
|
left += searchField.offsetWidth + 6;
|
||||||
|
top += searchField.offsetHeight;
|
||||||
|
|
||||||
|
// show search selection popup
|
||||||
|
searchSelectWindow.style.display='block';
|
||||||
|
left -= searchSelectWindow.offsetWidth;
|
||||||
|
searchSelectWindow.style.left = left + 'px';
|
||||||
|
searchSelectWindow.style.top = top + 'px';
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
var left = getXPos(searchField);
|
||||||
|
var top = getYPos(searchField);
|
||||||
|
top += searchField.offsetHeight;
|
||||||
|
|
||||||
|
// show search selection popup
|
||||||
|
searchSelectWindow.style.display='block';
|
||||||
|
searchSelectWindow.style.left = left + 'px';
|
||||||
|
searchSelectWindow.style.top = top + 'px';
|
||||||
|
}
|
||||||
|
|
||||||
|
// stop selection hide timer
|
||||||
|
if (this.hideTimeout)
|
||||||
|
{
|
||||||
|
clearTimeout(this.hideTimeout);
|
||||||
|
this.hideTimeout=0;
|
||||||
|
}
|
||||||
|
return false; // to avoid "image drag" default event
|
||||||
|
}
|
||||||
|
|
||||||
|
this.OnSearchSelectHide = function()
|
||||||
|
{
|
||||||
|
this.hideTimeout = setTimeout(this.name +".CloseSelectionWindow()",
|
||||||
|
this.closeSelectionTimeout);
|
||||||
|
}
|
||||||
|
|
||||||
|
// Called when the content of the search field is changed.
|
||||||
|
this.OnSearchFieldChange = function(evt)
|
||||||
|
{
|
||||||
|
if (this.keyTimeout) // kill running timer
|
||||||
|
{
|
||||||
|
clearTimeout(this.keyTimeout);
|
||||||
|
this.keyTimeout = 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
var e = (evt) ? evt : window.event; // for IE
|
||||||
|
if (e.keyCode==40 || e.keyCode==13)
|
||||||
|
{
|
||||||
|
if (e.shiftKey==1)
|
||||||
|
{
|
||||||
|
this.OnSearchSelectShow();
|
||||||
|
var win=this.DOMSearchSelectWindow();
|
||||||
|
for (i=0;i<win.childNodes.length;i++)
|
||||||
|
{
|
||||||
|
var child = win.childNodes[i]; // get span within a
|
||||||
|
if (child.className=='SelectItem')
|
||||||
|
{
|
||||||
|
child.focus();
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
else if (window.frames.MSearchResults.searchResults)
|
||||||
|
{
|
||||||
|
var elem = window.frames.MSearchResults.searchResults.NavNext(0);
|
||||||
|
if (elem) elem.focus();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else if (e.keyCode==27) // Escape out of the search field
|
||||||
|
{
|
||||||
|
this.DOMSearchField().blur();
|
||||||
|
this.DOMPopupSearchResultsWindow().style.display = 'none';
|
||||||
|
this.DOMSearchClose().style.display = 'none';
|
||||||
|
this.lastSearchValue = '';
|
||||||
|
this.Activate(false);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
// strip whitespaces
|
||||||
|
var searchValue = this.DOMSearchField().value.replace(/ +/g, "");
|
||||||
|
|
||||||
|
if (searchValue != this.lastSearchValue) // search value has changed
|
||||||
|
{
|
||||||
|
if (searchValue != "") // non-empty search
|
||||||
|
{
|
||||||
|
// set timer for search update
|
||||||
|
this.keyTimeout = setTimeout(this.name + '.Search()',
|
||||||
|
this.keyTimeoutLength);
|
||||||
|
}
|
||||||
|
else // empty search field
|
||||||
|
{
|
||||||
|
this.DOMPopupSearchResultsWindow().style.display = 'none';
|
||||||
|
this.DOMSearchClose().style.display = 'none';
|
||||||
|
this.lastSearchValue = '';
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
this.SelectItemCount = function(id)
|
||||||
|
{
|
||||||
|
var count=0;
|
||||||
|
var win=this.DOMSearchSelectWindow();
|
||||||
|
for (i=0;i<win.childNodes.length;i++)
|
||||||
|
{
|
||||||
|
var child = win.childNodes[i]; // get span within a
|
||||||
|
if (child.className=='SelectItem')
|
||||||
|
{
|
||||||
|
count++;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return count;
|
||||||
|
}
|
||||||
|
|
||||||
|
this.SelectItemSet = function(id)
|
||||||
|
{
|
||||||
|
var i,j=0;
|
||||||
|
var win=this.DOMSearchSelectWindow();
|
||||||
|
for (i=0;i<win.childNodes.length;i++)
|
||||||
|
{
|
||||||
|
var child = win.childNodes[i]; // get span within a
|
||||||
|
if (child.className=='SelectItem')
|
||||||
|
{
|
||||||
|
var node = child.firstChild;
|
||||||
|
if (j==id)
|
||||||
|
{
|
||||||
|
node.innerHTML='•';
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
node.innerHTML=' ';
|
||||||
|
}
|
||||||
|
j++;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Called when an search filter selection is made.
|
||||||
|
// set item with index id as the active item
|
||||||
|
this.OnSelectItem = function(id)
|
||||||
|
{
|
||||||
|
this.searchIndex = id;
|
||||||
|
this.SelectItemSet(id);
|
||||||
|
var searchValue = this.DOMSearchField().value.replace(/ +/g, "");
|
||||||
|
if (searchValue!="" && this.searchActive) // something was found -> do a search
|
||||||
|
{
|
||||||
|
this.Search();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
this.OnSearchSelectKey = function(evt)
|
||||||
|
{
|
||||||
|
var e = (evt) ? evt : window.event; // for IE
|
||||||
|
if (e.keyCode==40 && this.searchIndex<this.SelectItemCount()) // Down
|
||||||
|
{
|
||||||
|
this.searchIndex++;
|
||||||
|
this.OnSelectItem(this.searchIndex);
|
||||||
|
}
|
||||||
|
else if (e.keyCode==38 && this.searchIndex>0) // Up
|
||||||
|
{
|
||||||
|
this.searchIndex--;
|
||||||
|
this.OnSelectItem(this.searchIndex);
|
||||||
|
}
|
||||||
|
else if (e.keyCode==13 || e.keyCode==27)
|
||||||
|
{
|
||||||
|
this.OnSelectItem(this.searchIndex);
|
||||||
|
this.CloseSelectionWindow();
|
||||||
|
this.DOMSearchField().focus();
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
// --------- Actions
|
||||||
|
|
||||||
|
// Closes the results window.
|
||||||
|
this.CloseResultsWindow = function()
|
||||||
|
{
|
||||||
|
this.DOMPopupSearchResultsWindow().style.display = 'none';
|
||||||
|
this.DOMSearchClose().style.display = 'none';
|
||||||
|
this.Activate(false);
|
||||||
|
}
|
||||||
|
|
||||||
|
this.CloseSelectionWindow = function()
|
||||||
|
{
|
||||||
|
this.DOMSearchSelectWindow().style.display = 'none';
|
||||||
|
}
|
||||||
|
|
||||||
|
// Performs a search.
|
||||||
|
this.Search = function()
|
||||||
|
{
|
||||||
|
this.keyTimeout = 0;
|
||||||
|
|
||||||
|
// strip leading whitespace
|
||||||
|
var searchValue = this.DOMSearchField().value.replace(/^ +/, "");
|
||||||
|
|
||||||
|
var code = searchValue.toLowerCase().charCodeAt(0);
|
||||||
|
var hexCode;
|
||||||
|
if (code<16)
|
||||||
|
{
|
||||||
|
hexCode="0"+code.toString(16);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
hexCode=code.toString(16);
|
||||||
|
}
|
||||||
|
|
||||||
|
var resultsPage;
|
||||||
|
var resultsPageWithSearch;
|
||||||
|
var hasResultsPage;
|
||||||
|
|
||||||
|
if (indexSectionsWithContent[this.searchIndex].charAt(code) == '1')
|
||||||
|
{
|
||||||
|
resultsPage = this.resultsPath + '/' + indexSectionNames[this.searchIndex] + '_' + hexCode + '.html';
|
||||||
|
resultsPageWithSearch = resultsPage+'?'+escape(searchValue);
|
||||||
|
hasResultsPage = true;
|
||||||
|
}
|
||||||
|
else // nothing available for this search term
|
||||||
|
{
|
||||||
|
resultsPage = this.resultsPath + '/nomatches.html';
|
||||||
|
resultsPageWithSearch = resultsPage;
|
||||||
|
hasResultsPage = false;
|
||||||
|
}
|
||||||
|
|
||||||
|
window.frames.MSearchResults.location.href = resultsPageWithSearch;
|
||||||
|
var domPopupSearchResultsWindow = this.DOMPopupSearchResultsWindow();
|
||||||
|
|
||||||
|
if (domPopupSearchResultsWindow.style.display!='block')
|
||||||
|
{
|
||||||
|
var domSearchBox = this.DOMSearchBox();
|
||||||
|
this.DOMSearchClose().style.display = 'inline';
|
||||||
|
if (this.insideFrame)
|
||||||
|
{
|
||||||
|
var domPopupSearchResults = this.DOMPopupSearchResults();
|
||||||
|
domPopupSearchResultsWindow.style.position = 'relative';
|
||||||
|
domPopupSearchResultsWindow.style.display = 'block';
|
||||||
|
var width = document.body.clientWidth - 8; // the -8 is for IE :-(
|
||||||
|
domPopupSearchResultsWindow.style.width = width + 'px';
|
||||||
|
domPopupSearchResults.style.width = width + 'px';
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
var domPopupSearchResults = this.DOMPopupSearchResults();
|
||||||
|
var left = getXPos(domSearchBox) + 150; // domSearchBox.offsetWidth;
|
||||||
|
var top = getYPos(domSearchBox) + 20; // domSearchBox.offsetHeight + 1;
|
||||||
|
domPopupSearchResultsWindow.style.display = 'block';
|
||||||
|
left -= domPopupSearchResults.offsetWidth;
|
||||||
|
domPopupSearchResultsWindow.style.top = top + 'px';
|
||||||
|
domPopupSearchResultsWindow.style.left = left + 'px';
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
this.lastSearchValue = searchValue;
|
||||||
|
this.lastResultsPage = resultsPage;
|
||||||
|
}
|
||||||
|
|
||||||
|
// -------- Activation Functions
|
||||||
|
|
||||||
|
// Activates or deactivates the search panel, resetting things to
|
||||||
|
// their default values if necessary.
|
||||||
|
this.Activate = function(isActive)
|
||||||
|
{
|
||||||
|
if (isActive || // open it
|
||||||
|
this.DOMPopupSearchResultsWindow().style.display == 'block'
|
||||||
|
)
|
||||||
|
{
|
||||||
|
this.DOMSearchBox().className = 'MSearchBoxActive';
|
||||||
|
|
||||||
|
var searchField = this.DOMSearchField();
|
||||||
|
|
||||||
|
if (searchField.value == this.searchLabel) // clear "Search" term upon entry
|
||||||
|
{
|
||||||
|
searchField.value = '';
|
||||||
|
this.searchActive = true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else if (!isActive) // directly remove the panel
|
||||||
|
{
|
||||||
|
this.DOMSearchBox().className = 'MSearchBoxInactive';
|
||||||
|
this.DOMSearchField().value = this.searchLabel;
|
||||||
|
this.searchActive = false;
|
||||||
|
this.lastSearchValue = ''
|
||||||
|
this.lastResultsPage = '';
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// -----------------------------------------------------------------------
|
||||||
|
|
||||||
|
// The class that handles everything on the search results page.
|
||||||
|
function SearchResults(name)
|
||||||
|
{
|
||||||
|
// The number of matches from the last run of <Search()>.
|
||||||
|
this.lastMatchCount = 0;
|
||||||
|
this.lastKey = 0;
|
||||||
|
this.repeatOn = false;
|
||||||
|
|
||||||
|
// Toggles the visibility of the passed element ID.
|
||||||
|
this.FindChildElement = function(id)
|
||||||
|
{
|
||||||
|
var parentElement = document.getElementById(id);
|
||||||
|
var element = parentElement.firstChild;
|
||||||
|
|
||||||
|
while (element && element!=parentElement)
|
||||||
|
{
|
||||||
|
if (element.nodeName == 'DIV' && element.className == 'SRChildren')
|
||||||
|
{
|
||||||
|
return element;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (element.nodeName == 'DIV' && element.hasChildNodes())
|
||||||
|
{
|
||||||
|
element = element.firstChild;
|
||||||
|
}
|
||||||
|
else if (element.nextSibling)
|
||||||
|
{
|
||||||
|
element = element.nextSibling;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
do
|
||||||
|
{
|
||||||
|
element = element.parentNode;
|
||||||
|
}
|
||||||
|
while (element && element!=parentElement && !element.nextSibling);
|
||||||
|
|
||||||
|
if (element && element!=parentElement)
|
||||||
|
{
|
||||||
|
element = element.nextSibling;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
this.Toggle = function(id)
|
||||||
|
{
|
||||||
|
var element = this.FindChildElement(id);
|
||||||
|
if (element)
|
||||||
|
{
|
||||||
|
if (element.style.display == 'block')
|
||||||
|
{
|
||||||
|
element.style.display = 'none';
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
element.style.display = 'block';
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Searches for the passed string. If there is no parameter,
|
||||||
|
// it takes it from the URL query.
|
||||||
|
//
|
||||||
|
// Always returns true, since other documents may try to call it
|
||||||
|
// and that may or may not be possible.
|
||||||
|
this.Search = function(search)
|
||||||
|
{
|
||||||
|
if (!search) // get search word from URL
|
||||||
|
{
|
||||||
|
search = window.location.search;
|
||||||
|
search = search.substring(1); // Remove the leading '?'
|
||||||
|
search = unescape(search);
|
||||||
|
}
|
||||||
|
|
||||||
|
search = search.replace(/^ +/, ""); // strip leading spaces
|
||||||
|
search = search.replace(/ +$/, ""); // strip trailing spaces
|
||||||
|
search = search.toLowerCase();
|
||||||
|
search = convertToId(search);
|
||||||
|
|
||||||
|
var resultRows = document.getElementsByTagName("div");
|
||||||
|
var matches = 0;
|
||||||
|
|
||||||
|
var i = 0;
|
||||||
|
while (i < resultRows.length)
|
||||||
|
{
|
||||||
|
var row = resultRows.item(i);
|
||||||
|
if (row.className == "SRResult")
|
||||||
|
{
|
||||||
|
var rowMatchName = row.id.toLowerCase();
|
||||||
|
rowMatchName = rowMatchName.replace(/^sr\d*_/, ''); // strip 'sr123_'
|
||||||
|
|
||||||
|
if (search.length<=rowMatchName.length &&
|
||||||
|
rowMatchName.substr(0, search.length)==search)
|
||||||
|
{
|
||||||
|
row.style.display = 'block';
|
||||||
|
matches++;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
row.style.display = 'none';
|
||||||
|
}
|
||||||
|
}
|
||||||
|
i++;
|
||||||
|
}
|
||||||
|
document.getElementById("Searching").style.display='none';
|
||||||
|
if (matches == 0) // no results
|
||||||
|
{
|
||||||
|
document.getElementById("NoMatches").style.display='block';
|
||||||
|
}
|
||||||
|
else // at least one result
|
||||||
|
{
|
||||||
|
document.getElementById("NoMatches").style.display='none';
|
||||||
|
}
|
||||||
|
this.lastMatchCount = matches;
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
// return the first item with index index or higher that is visible
|
||||||
|
this.NavNext = function(index)
|
||||||
|
{
|
||||||
|
var focusItem;
|
||||||
|
while (1)
|
||||||
|
{
|
||||||
|
var focusName = 'Item'+index;
|
||||||
|
focusItem = document.getElementById(focusName);
|
||||||
|
if (focusItem && focusItem.parentNode.parentNode.style.display=='block')
|
||||||
|
{
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
else if (!focusItem) // last element
|
||||||
|
{
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
focusItem=null;
|
||||||
|
index++;
|
||||||
|
}
|
||||||
|
return focusItem;
|
||||||
|
}
|
||||||
|
|
||||||
|
this.NavPrev = function(index)
|
||||||
|
{
|
||||||
|
var focusItem;
|
||||||
|
while (1)
|
||||||
|
{
|
||||||
|
var focusName = 'Item'+index;
|
||||||
|
focusItem = document.getElementById(focusName);
|
||||||
|
if (focusItem && focusItem.parentNode.parentNode.style.display=='block')
|
||||||
|
{
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
else if (!focusItem) // last element
|
||||||
|
{
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
focusItem=null;
|
||||||
|
index--;
|
||||||
|
}
|
||||||
|
return focusItem;
|
||||||
|
}
|
||||||
|
|
||||||
|
this.ProcessKeys = function(e)
|
||||||
|
{
|
||||||
|
if (e.type == "keydown")
|
||||||
|
{
|
||||||
|
this.repeatOn = false;
|
||||||
|
this.lastKey = e.keyCode;
|
||||||
|
}
|
||||||
|
else if (e.type == "keypress")
|
||||||
|
{
|
||||||
|
if (!this.repeatOn)
|
||||||
|
{
|
||||||
|
if (this.lastKey) this.repeatOn = true;
|
||||||
|
return false; // ignore first keypress after keydown
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else if (e.type == "keyup")
|
||||||
|
{
|
||||||
|
this.lastKey = 0;
|
||||||
|
this.repeatOn = false;
|
||||||
|
}
|
||||||
|
return this.lastKey!=0;
|
||||||
|
}
|
||||||
|
|
||||||
|
this.Nav = function(evt,itemIndex)
|
||||||
|
{
|
||||||
|
var e = (evt) ? evt : window.event; // for IE
|
||||||
|
if (e.keyCode==13) return true;
|
||||||
|
if (!this.ProcessKeys(e)) return false;
|
||||||
|
|
||||||
|
if (this.lastKey==38) // Up
|
||||||
|
{
|
||||||
|
var newIndex = itemIndex-1;
|
||||||
|
var focusItem = this.NavPrev(newIndex);
|
||||||
|
if (focusItem)
|
||||||
|
{
|
||||||
|
var child = this.FindChildElement(focusItem.parentNode.parentNode.id);
|
||||||
|
if (child && child.style.display == 'block') // children visible
|
||||||
|
{
|
||||||
|
var n=0;
|
||||||
|
var tmpElem;
|
||||||
|
while (1) // search for last child
|
||||||
|
{
|
||||||
|
tmpElem = document.getElementById('Item'+newIndex+'_c'+n);
|
||||||
|
if (tmpElem)
|
||||||
|
{
|
||||||
|
focusItem = tmpElem;
|
||||||
|
}
|
||||||
|
else // found it!
|
||||||
|
{
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
n++;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (focusItem)
|
||||||
|
{
|
||||||
|
focusItem.focus();
|
||||||
|
}
|
||||||
|
else // return focus to search field
|
||||||
|
{
|
||||||
|
parent.document.getElementById("MSearchField").focus();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else if (this.lastKey==40) // Down
|
||||||
|
{
|
||||||
|
var newIndex = itemIndex+1;
|
||||||
|
var focusItem;
|
||||||
|
var item = document.getElementById('Item'+itemIndex);
|
||||||
|
var elem = this.FindChildElement(item.parentNode.parentNode.id);
|
||||||
|
if (elem && elem.style.display == 'block') // children visible
|
||||||
|
{
|
||||||
|
focusItem = document.getElementById('Item'+itemIndex+'_c0');
|
||||||
|
}
|
||||||
|
if (!focusItem) focusItem = this.NavNext(newIndex);
|
||||||
|
if (focusItem) focusItem.focus();
|
||||||
|
}
|
||||||
|
else if (this.lastKey==39) // Right
|
||||||
|
{
|
||||||
|
var item = document.getElementById('Item'+itemIndex);
|
||||||
|
var elem = this.FindChildElement(item.parentNode.parentNode.id);
|
||||||
|
if (elem) elem.style.display = 'block';
|
||||||
|
}
|
||||||
|
else if (this.lastKey==37) // Left
|
||||||
|
{
|
||||||
|
var item = document.getElementById('Item'+itemIndex);
|
||||||
|
var elem = this.FindChildElement(item.parentNode.parentNode.id);
|
||||||
|
if (elem) elem.style.display = 'none';
|
||||||
|
}
|
||||||
|
else if (this.lastKey==27) // Escape
|
||||||
|
{
|
||||||
|
parent.searchBox.CloseResultsWindow();
|
||||||
|
parent.document.getElementById("MSearchField").focus();
|
||||||
|
}
|
||||||
|
else if (this.lastKey==13) // Enter
|
||||||
|
{
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
this.NavChild = function(evt,itemIndex,childIndex)
|
||||||
|
{
|
||||||
|
var e = (evt) ? evt : window.event; // for IE
|
||||||
|
if (e.keyCode==13) return true;
|
||||||
|
if (!this.ProcessKeys(e)) return false;
|
||||||
|
|
||||||
|
if (this.lastKey==38) // Up
|
||||||
|
{
|
||||||
|
if (childIndex>0)
|
||||||
|
{
|
||||||
|
var newIndex = childIndex-1;
|
||||||
|
document.getElementById('Item'+itemIndex+'_c'+newIndex).focus();
|
||||||
|
}
|
||||||
|
else // already at first child, jump to parent
|
||||||
|
{
|
||||||
|
document.getElementById('Item'+itemIndex).focus();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else if (this.lastKey==40) // Down
|
||||||
|
{
|
||||||
|
var newIndex = childIndex+1;
|
||||||
|
var elem = document.getElementById('Item'+itemIndex+'_c'+newIndex);
|
||||||
|
if (!elem) // last child, jump to parent next parent
|
||||||
|
{
|
||||||
|
elem = this.NavNext(itemIndex+1);
|
||||||
|
}
|
||||||
|
if (elem)
|
||||||
|
{
|
||||||
|
elem.focus();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else if (this.lastKey==27) // Escape
|
||||||
|
{
|
||||||
|
parent.searchBox.CloseResultsWindow();
|
||||||
|
parent.document.getElementById("MSearchField").focus();
|
||||||
|
}
|
||||||
|
else if (this.lastKey==13) // Enter
|
||||||
|
{
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
BIN
doc/html/search/search_l.png
Normal file
|
After Width: | Height: | Size: 604 B |
BIN
doc/html/search/search_m.png
Normal file
|
After Width: | Height: | Size: 158 B |
BIN
doc/html/search/search_r.png
Normal file
|
After Width: | Height: | Size: 612 B |
26
doc/html/search/variables_63.html
Normal file
@@ -0,0 +1,26 @@
|
|||||||
|
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||||
|
<html><head><title></title>
|
||||||
|
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
||||||
|
<link rel="stylesheet" type="text/css" href="search.css"/>
|
||||||
|
<script type="text/javascript" src="search.js"></script>
|
||||||
|
</head>
|
||||||
|
<body class="SRPage">
|
||||||
|
<div id="SRIndex">
|
||||||
|
<div class="SRStatus" id="Loading">Loading...</div>
|
||||||
|
<div class="SRResult" id="SR_customfilter">
|
||||||
|
<div class="SREntry">
|
||||||
|
<a id="Item0" onkeydown="return searchResults.Nav(event,0)" onkeypress="return searchResults.Nav(event,0)" onkeyup="return searchResults.Nav(event,0)" class="SRSymbol" href="../structtjtransform.html#a43ee1bcdd2a8d7249a756774f78793c1" target="_parent">customFilter</a>
|
||||||
|
<span class="SRScope">tjtransform</span>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="SRStatus" id="Searching">Searching...</div>
|
||||||
|
<div class="SRStatus" id="NoMatches">No Matches</div>
|
||||||
|
<script type="text/javascript"><!--
|
||||||
|
document.getElementById("Loading").style.display="none";
|
||||||
|
document.getElementById("NoMatches").style.display="none";
|
||||||
|
var searchResults = new SearchResults("searchResults");
|
||||||
|
searchResults.Search();
|
||||||
|
--></script>
|
||||||
|
</div>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
32
doc/html/search/variables_64.html
Normal file
@@ -0,0 +1,32 @@
|
|||||||
|
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||||
|
<html><head><title></title>
|
||||||
|
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
||||||
|
<link rel="stylesheet" type="text/css" href="search.css"/>
|
||||||
|
<script type="text/javascript" src="search.js"></script>
|
||||||
|
</head>
|
||||||
|
<body class="SRPage">
|
||||||
|
<div id="SRIndex">
|
||||||
|
<div class="SRStatus" id="Loading">Loading...</div>
|
||||||
|
<div class="SRResult" id="SR_data">
|
||||||
|
<div class="SREntry">
|
||||||
|
<a id="Item0" onkeydown="return searchResults.Nav(event,0)" onkeypress="return searchResults.Nav(event,0)" onkeyup="return searchResults.Nav(event,0)" class="SRSymbol" href="../structtjtransform.html#a688fe8f1a8ecc12a538d9e561cf338e3" target="_parent">data</a>
|
||||||
|
<span class="SRScope">tjtransform</span>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="SRResult" id="SR_denom">
|
||||||
|
<div class="SREntry">
|
||||||
|
<a id="Item1" onkeydown="return searchResults.Nav(event,1)" onkeypress="return searchResults.Nav(event,1)" onkeyup="return searchResults.Nav(event,1)" class="SRSymbol" href="../structtjscalingfactor.html#aefbcdf3e9e62274b2d312c695f133ce3" target="_parent">denom</a>
|
||||||
|
<span class="SRScope">tjscalingfactor</span>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="SRStatus" id="Searching">Searching...</div>
|
||||||
|
<div class="SRStatus" id="NoMatches">No Matches</div>
|
||||||
|
<script type="text/javascript"><!--
|
||||||
|
document.getElementById("Loading").style.display="none";
|
||||||
|
document.getElementById("NoMatches").style.display="none";
|
||||||
|
var searchResults = new SearchResults("searchResults");
|
||||||
|
searchResults.Search();
|
||||||
|
--></script>
|
||||||
|
</div>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
26
doc/html/search/variables_68.html
Normal file
@@ -0,0 +1,26 @@
|
|||||||
|
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||||
|
<html><head><title></title>
|
||||||
|
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
||||||
|
<link rel="stylesheet" type="text/css" href="search.css"/>
|
||||||
|
<script type="text/javascript" src="search.js"></script>
|
||||||
|
</head>
|
||||||
|
<body class="SRPage">
|
||||||
|
<div id="SRIndex">
|
||||||
|
<div class="SRStatus" id="Loading">Loading...</div>
|
||||||
|
<div class="SRResult" id="SR_h">
|
||||||
|
<div class="SREntry">
|
||||||
|
<a id="Item0" onkeydown="return searchResults.Nav(event,0)" onkeypress="return searchResults.Nav(event,0)" onkeyup="return searchResults.Nav(event,0)" class="SRSymbol" href="../structtjregion.html#aecefc45a26f4d8b60dd4d825c1710115" target="_parent">h</a>
|
||||||
|
<span class="SRScope">tjregion</span>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="SRStatus" id="Searching">Searching...</div>
|
||||||
|
<div class="SRStatus" id="NoMatches">No Matches</div>
|
||||||
|
<script type="text/javascript"><!--
|
||||||
|
document.getElementById("Loading").style.display="none";
|
||||||
|
document.getElementById("NoMatches").style.display="none";
|
||||||
|
var searchResults = new SearchResults("searchResults");
|
||||||
|
searchResults.Search();
|
||||||
|
--></script>
|
||||||
|
</div>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
26
doc/html/search/variables_6e.html
Normal file
@@ -0,0 +1,26 @@
|
|||||||
|
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||||
|
<html><head><title></title>
|
||||||
|
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
||||||
|
<link rel="stylesheet" type="text/css" href="search.css"/>
|
||||||
|
<script type="text/javascript" src="search.js"></script>
|
||||||
|
</head>
|
||||||
|
<body class="SRPage">
|
||||||
|
<div id="SRIndex">
|
||||||
|
<div class="SRStatus" id="Loading">Loading...</div>
|
||||||
|
<div class="SRResult" id="SR_num">
|
||||||
|
<div class="SREntry">
|
||||||
|
<a id="Item0" onkeydown="return searchResults.Nav(event,0)" onkeypress="return searchResults.Nav(event,0)" onkeyup="return searchResults.Nav(event,0)" class="SRSymbol" href="../structtjscalingfactor.html#a9b011e57f981ee23083e2c1aa5e640ec" target="_parent">num</a>
|
||||||
|
<span class="SRScope">tjscalingfactor</span>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="SRStatus" id="Searching">Searching...</div>
|
||||||
|
<div class="SRStatus" id="NoMatches">No Matches</div>
|
||||||
|
<script type="text/javascript"><!--
|
||||||
|
document.getElementById("Loading").style.display="none";
|
||||||
|
document.getElementById("NoMatches").style.display="none";
|
||||||
|
var searchResults = new SearchResults("searchResults");
|
||||||
|
searchResults.Search();
|
||||||
|
--></script>
|
||||||
|
</div>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
32
doc/html/search/variables_6f.html
Normal file
@@ -0,0 +1,32 @@
|
|||||||
|
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||||
|
<html><head><title></title>
|
||||||
|
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
||||||
|
<link rel="stylesheet" type="text/css" href="search.css"/>
|
||||||
|
<script type="text/javascript" src="search.js"></script>
|
||||||
|
</head>
|
||||||
|
<body class="SRPage">
|
||||||
|
<div id="SRIndex">
|
||||||
|
<div class="SRStatus" id="Loading">Loading...</div>
|
||||||
|
<div class="SRResult" id="SR_op">
|
||||||
|
<div class="SREntry">
|
||||||
|
<a id="Item0" onkeydown="return searchResults.Nav(event,0)" onkeypress="return searchResults.Nav(event,0)" onkeyup="return searchResults.Nav(event,0)" class="SRSymbol" href="../structtjtransform.html#a2525aab4ba6978a1c273f74fef50e498" target="_parent">op</a>
|
||||||
|
<span class="SRScope">tjtransform</span>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="SRResult" id="SR_options">
|
||||||
|
<div class="SREntry">
|
||||||
|
<a id="Item1" onkeydown="return searchResults.Nav(event,1)" onkeypress="return searchResults.Nav(event,1)" onkeyup="return searchResults.Nav(event,1)" class="SRSymbol" href="../structtjtransform.html#ac0e74655baa4402209a21e1ae481c8f6" target="_parent">options</a>
|
||||||
|
<span class="SRScope">tjtransform</span>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="SRStatus" id="Searching">Searching...</div>
|
||||||
|
<div class="SRStatus" id="NoMatches">No Matches</div>
|
||||||
|
<script type="text/javascript"><!--
|
||||||
|
document.getElementById("Loading").style.display="none";
|
||||||
|
document.getElementById("NoMatches").style.display="none";
|
||||||
|
var searchResults = new SearchResults("searchResults");
|
||||||
|
searchResults.Search();
|
||||||
|
--></script>
|
||||||
|
</div>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
26
doc/html/search/variables_72.html
Normal file
@@ -0,0 +1,26 @@
|
|||||||
|
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||||
|
<html><head><title></title>
|
||||||
|
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
||||||
|
<link rel="stylesheet" type="text/css" href="search.css"/>
|
||||||
|
<script type="text/javascript" src="search.js"></script>
|
||||||
|
</head>
|
||||||
|
<body class="SRPage">
|
||||||
|
<div id="SRIndex">
|
||||||
|
<div class="SRStatus" id="Loading">Loading...</div>
|
||||||
|
<div class="SRResult" id="SR_r">
|
||||||
|
<div class="SREntry">
|
||||||
|
<a id="Item0" onkeydown="return searchResults.Nav(event,0)" onkeypress="return searchResults.Nav(event,0)" onkeyup="return searchResults.Nav(event,0)" class="SRSymbol" href="../structtjtransform.html#ac324e5e442abec8a961e5bf219db12cf" target="_parent">r</a>
|
||||||
|
<span class="SRScope">tjtransform</span>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="SRStatus" id="Searching">Searching...</div>
|
||||||
|
<div class="SRStatus" id="NoMatches">No Matches</div>
|
||||||
|
<script type="text/javascript"><!--
|
||||||
|
document.getElementById("Loading").style.display="none";
|
||||||
|
document.getElementById("NoMatches").style.display="none";
|
||||||
|
var searchResults = new SearchResults("searchResults");
|
||||||
|
searchResults.Search();
|
||||||
|
--></script>
|
||||||
|
</div>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
26
doc/html/search/variables_77.html
Normal file
@@ -0,0 +1,26 @@
|
|||||||
|
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||||
|
<html><head><title></title>
|
||||||
|
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
||||||
|
<link rel="stylesheet" type="text/css" href="search.css"/>
|
||||||
|
<script type="text/javascript" src="search.js"></script>
|
||||||
|
</head>
|
||||||
|
<body class="SRPage">
|
||||||
|
<div id="SRIndex">
|
||||||
|
<div class="SRStatus" id="Loading">Loading...</div>
|
||||||
|
<div class="SRResult" id="SR_w">
|
||||||
|
<div class="SREntry">
|
||||||
|
<a id="Item0" onkeydown="return searchResults.Nav(event,0)" onkeypress="return searchResults.Nav(event,0)" onkeyup="return searchResults.Nav(event,0)" class="SRSymbol" href="../structtjregion.html#ab6eb73ceef584fc23c8c8097926dce42" target="_parent">w</a>
|
||||||
|
<span class="SRScope">tjregion</span>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="SRStatus" id="Searching">Searching...</div>
|
||||||
|
<div class="SRStatus" id="NoMatches">No Matches</div>
|
||||||
|
<script type="text/javascript"><!--
|
||||||
|
document.getElementById("Loading").style.display="none";
|
||||||
|
document.getElementById("NoMatches").style.display="none";
|
||||||
|
var searchResults = new SearchResults("searchResults");
|
||||||
|
searchResults.Search();
|
||||||
|
--></script>
|
||||||
|
</div>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
26
doc/html/search/variables_78.html
Normal file
@@ -0,0 +1,26 @@
|
|||||||
|
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||||
|
<html><head><title></title>
|
||||||
|
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
||||||
|
<link rel="stylesheet" type="text/css" href="search.css"/>
|
||||||
|
<script type="text/javascript" src="search.js"></script>
|
||||||
|
</head>
|
||||||
|
<body class="SRPage">
|
||||||
|
<div id="SRIndex">
|
||||||
|
<div class="SRStatus" id="Loading">Loading...</div>
|
||||||
|
<div class="SRResult" id="SR_x">
|
||||||
|
<div class="SREntry">
|
||||||
|
<a id="Item0" onkeydown="return searchResults.Nav(event,0)" onkeypress="return searchResults.Nav(event,0)" onkeyup="return searchResults.Nav(event,0)" class="SRSymbol" href="../structtjregion.html#a4b6a37a93997091b26a75831fa291ad9" target="_parent">x</a>
|
||||||
|
<span class="SRScope">tjregion</span>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="SRStatus" id="Searching">Searching...</div>
|
||||||
|
<div class="SRStatus" id="NoMatches">No Matches</div>
|
||||||
|
<script type="text/javascript"><!--
|
||||||
|
document.getElementById("Loading").style.display="none";
|
||||||
|
document.getElementById("NoMatches").style.display="none";
|
||||||
|
var searchResults = new SearchResults("searchResults");
|
||||||
|
searchResults.Search();
|
||||||
|
--></script>
|
||||||
|
</div>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
26
doc/html/search/variables_79.html
Normal file
@@ -0,0 +1,26 @@
|
|||||||
|
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||||
|
<html><head><title></title>
|
||||||
|
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
||||||
|
<link rel="stylesheet" type="text/css" href="search.css"/>
|
||||||
|
<script type="text/javascript" src="search.js"></script>
|
||||||
|
</head>
|
||||||
|
<body class="SRPage">
|
||||||
|
<div id="SRIndex">
|
||||||
|
<div class="SRStatus" id="Loading">Loading...</div>
|
||||||
|
<div class="SRResult" id="SR_y">
|
||||||
|
<div class="SREntry">
|
||||||
|
<a id="Item0" onkeydown="return searchResults.Nav(event,0)" onkeypress="return searchResults.Nav(event,0)" onkeyup="return searchResults.Nav(event,0)" class="SRSymbol" href="../structtjregion.html#a7b3e0c24cfe87acc80e334cafdcf22c2" target="_parent">y</a>
|
||||||
|
<span class="SRScope">tjregion</span>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="SRStatus" id="Searching">Searching...</div>
|
||||||
|
<div class="SRStatus" id="NoMatches">No Matches</div>
|
||||||
|
<script type="text/javascript"><!--
|
||||||
|
document.getElementById("Loading").style.display="none";
|
||||||
|
document.getElementById("NoMatches").style.display="none";
|
||||||
|
var searchResults = new SearchResults("searchResults");
|
||||||
|
searchResults.Search();
|
||||||
|
--></script>
|
||||||
|
</div>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
172
doc/html/structtjregion.html
Normal file
@@ -0,0 +1,172 @@
|
|||||||
|
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||||
|
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||||
|
<head>
|
||||||
|
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
||||||
|
<title>TurboJPEG: tjregion Struct Reference</title>
|
||||||
|
<link href="tabs.css" rel="stylesheet" type="text/css"/>
|
||||||
|
<link href="search/search.css" rel="stylesheet" type="text/css"/>
|
||||||
|
<script type="text/javascript" src="search/search.js"></script>
|
||||||
|
<link href="doxygen.css" rel="stylesheet" type="text/css"/>
|
||||||
|
</head>
|
||||||
|
<body onload='searchBox.OnSelectItem(0);'>
|
||||||
|
<!-- Generated by Doxygen 1.7.4 -->
|
||||||
|
<script type="text/javascript"><!--
|
||||||
|
var searchBox = new SearchBox("searchBox", "search",false,'Search');
|
||||||
|
--></script>
|
||||||
|
<div id="top">
|
||||||
|
<div id="titlearea">
|
||||||
|
<table cellspacing="0" cellpadding="0">
|
||||||
|
<tbody>
|
||||||
|
<tr style="height: 56px;">
|
||||||
|
<td style="padding-left: 0.5em;">
|
||||||
|
<div id="projectname">TurboJPEG <span id="projectnumber">1.2.1</span></div>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
|
<div id="navrow1" class="tabs">
|
||||||
|
<ul class="tablist">
|
||||||
|
<li><a href="index.html"><span>Main Page</span></a></li>
|
||||||
|
<li><a href="modules.html"><span>Modules</span></a></li>
|
||||||
|
<li class="current"><a href="annotated.html"><span>Data Structures</span></a></li>
|
||||||
|
<li id="searchli">
|
||||||
|
<div id="MSearchBox" class="MSearchBoxInactive">
|
||||||
|
<span class="left">
|
||||||
|
<img id="MSearchSelect" src="search/mag_sel.png"
|
||||||
|
onmouseover="return searchBox.OnSearchSelectShow()"
|
||||||
|
onmouseout="return searchBox.OnSearchSelectHide()"
|
||||||
|
alt=""/>
|
||||||
|
<input type="text" id="MSearchField" value="Search" accesskey="S"
|
||||||
|
onfocus="searchBox.OnSearchFieldFocus(true)"
|
||||||
|
onblur="searchBox.OnSearchFieldFocus(false)"
|
||||||
|
onkeyup="searchBox.OnSearchFieldChange(event)"/>
|
||||||
|
</span><span class="right">
|
||||||
|
<a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
|
||||||
|
</span>
|
||||||
|
</div>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
<div id="navrow2" class="tabs2">
|
||||||
|
<ul class="tablist">
|
||||||
|
<li><a href="annotated.html"><span>Data Structures</span></a></li>
|
||||||
|
<li><a href="classes.html"><span>Data Structure Index</span></a></li>
|
||||||
|
<li><a href="functions.html"><span>Data Fields</span></a></li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="header">
|
||||||
|
<div class="summary">
|
||||||
|
<a href="#pub-attribs">Data Fields</a> </div>
|
||||||
|
<div class="headertitle">
|
||||||
|
<div class="title">tjregion Struct Reference<div class="ingroups"><a class="el" href="group___turbo_j_p_e_g.html">TurboJPEG</a></div></div> </div>
|
||||||
|
</div>
|
||||||
|
<div class="contents">
|
||||||
|
<!-- doxytag: class="tjregion" -->
|
||||||
|
<p>Cropping region.
|
||||||
|
<a href="structtjregion.html#details">More...</a></p>
|
||||||
|
|
||||||
|
<p><code>#include <turbojpeg.h></code></p>
|
||||||
|
<table class="memberdecls">
|
||||||
|
<tr><td colspan="2"><h2><a name="pub-attribs"></a>
|
||||||
|
Data Fields</h2></td></tr>
|
||||||
|
<tr><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="structtjregion.html#a4b6a37a93997091b26a75831fa291ad9">x</a></td></tr>
|
||||||
|
<tr><td class="mdescLeft"> </td><td class="mdescRight">The left boundary of the cropping region. <a href="#a4b6a37a93997091b26a75831fa291ad9"></a><br/></td></tr>
|
||||||
|
<tr><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="structtjregion.html#a7b3e0c24cfe87acc80e334cafdcf22c2">y</a></td></tr>
|
||||||
|
<tr><td class="mdescLeft"> </td><td class="mdescRight">The upper boundary of the cropping region. <a href="#a7b3e0c24cfe87acc80e334cafdcf22c2"></a><br/></td></tr>
|
||||||
|
<tr><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="structtjregion.html#ab6eb73ceef584fc23c8c8097926dce42">w</a></td></tr>
|
||||||
|
<tr><td class="mdescLeft"> </td><td class="mdescRight">The width of the cropping region. <a href="#ab6eb73ceef584fc23c8c8097926dce42"></a><br/></td></tr>
|
||||||
|
<tr><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="structtjregion.html#aecefc45a26f4d8b60dd4d825c1710115">h</a></td></tr>
|
||||||
|
<tr><td class="mdescLeft"> </td><td class="mdescRight">The height of the cropping region. <a href="#aecefc45a26f4d8b60dd4d825c1710115"></a><br/></td></tr>
|
||||||
|
</table>
|
||||||
|
<hr/><a name="details" id="details"></a><h2>Detailed Description</h2>
|
||||||
|
<div class="textblock"><p>Cropping region. </p>
|
||||||
|
</div><hr/><h2>Field Documentation</h2>
|
||||||
|
<a class="anchor" id="aecefc45a26f4d8b60dd4d825c1710115"></a><!-- doxytag: member="tjregion::h" ref="aecefc45a26f4d8b60dd4d825c1710115" args="" -->
|
||||||
|
<div class="memitem">
|
||||||
|
<div class="memproto">
|
||||||
|
<table class="memname">
|
||||||
|
<tr>
|
||||||
|
<td class="memname">int <a class="el" href="structtjregion.html#aecefc45a26f4d8b60dd4d825c1710115">tjregion::h</a></td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
|
<div class="memdoc">
|
||||||
|
|
||||||
|
<p>The height of the cropping region. </p>
|
||||||
|
<p>Setting this to 0 is the equivalent of setting it to the height of the source JPEG image - y. </p>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<a class="anchor" id="ab6eb73ceef584fc23c8c8097926dce42"></a><!-- doxytag: member="tjregion::w" ref="ab6eb73ceef584fc23c8c8097926dce42" args="" -->
|
||||||
|
<div class="memitem">
|
||||||
|
<div class="memproto">
|
||||||
|
<table class="memname">
|
||||||
|
<tr>
|
||||||
|
<td class="memname">int <a class="el" href="structtjregion.html#ab6eb73ceef584fc23c8c8097926dce42">tjregion::w</a></td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
|
<div class="memdoc">
|
||||||
|
|
||||||
|
<p>The width of the cropping region. </p>
|
||||||
|
<p>Setting this to 0 is the equivalent of setting it to the width of the source JPEG image - x. </p>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<a class="anchor" id="a4b6a37a93997091b26a75831fa291ad9"></a><!-- doxytag: member="tjregion::x" ref="a4b6a37a93997091b26a75831fa291ad9" args="" -->
|
||||||
|
<div class="memitem">
|
||||||
|
<div class="memproto">
|
||||||
|
<table class="memname">
|
||||||
|
<tr>
|
||||||
|
<td class="memname">int <a class="el" href="structtjregion.html#a4b6a37a93997091b26a75831fa291ad9">tjregion::x</a></td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
|
<div class="memdoc">
|
||||||
|
|
||||||
|
<p>The left boundary of the cropping region. </p>
|
||||||
|
<p>This must be evenly divisible by the MCU block width (see <a class="el" href="group___turbo_j_p_e_g.html#ga9e61e7cd47a15a173283ba94e781308c" title="MCU block width (in pixels) for a given level of chrominance subsampling.">tjMCUWidth</a>.) </p>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<a class="anchor" id="a7b3e0c24cfe87acc80e334cafdcf22c2"></a><!-- doxytag: member="tjregion::y" ref="a7b3e0c24cfe87acc80e334cafdcf22c2" args="" -->
|
||||||
|
<div class="memitem">
|
||||||
|
<div class="memproto">
|
||||||
|
<table class="memname">
|
||||||
|
<tr>
|
||||||
|
<td class="memname">int <a class="el" href="structtjregion.html#a7b3e0c24cfe87acc80e334cafdcf22c2">tjregion::y</a></td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
|
<div class="memdoc">
|
||||||
|
|
||||||
|
<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>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<hr/>The documentation for this struct was generated from the following file:<ul>
|
||||||
|
<li>turbojpeg.h</li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
<!-- window showing the filter options -->
|
||||||
|
<div id="MSearchSelectWindow"
|
||||||
|
onmouseover="return searchBox.OnSearchSelectShow()"
|
||||||
|
onmouseout="return searchBox.OnSearchSelectHide()"
|
||||||
|
onkeydown="return searchBox.OnSearchSelectKey(event)">
|
||||||
|
<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark"> </span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark"> </span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark"> </span>Variables</a></div>
|
||||||
|
|
||||||
|
<!-- iframe showing the search results (closed by default) -->
|
||||||
|
<div id="MSearchResultsWindow">
|
||||||
|
<iframe src="javascript:void(0)" frameborder="0"
|
||||||
|
name="MSearchResults" id="MSearchResults">
|
||||||
|
</iframe>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<hr class="footer"/><address class="footer"><small>Generated on Fri Jun 29 2012 18:14:55 for TurboJPEG by 
|
||||||
|
<a href="http://www.doxygen.org/index.html">
|
||||||
|
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.4 </small></address>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
134
doc/html/structtjscalingfactor.html
Normal file
@@ -0,0 +1,134 @@
|
|||||||
|
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||||
|
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||||
|
<head>
|
||||||
|
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
||||||
|
<title>TurboJPEG: tjscalingfactor Struct Reference</title>
|
||||||
|
<link href="tabs.css" rel="stylesheet" type="text/css"/>
|
||||||
|
<link href="search/search.css" rel="stylesheet" type="text/css"/>
|
||||||
|
<script type="text/javascript" src="search/search.js"></script>
|
||||||
|
<link href="doxygen.css" rel="stylesheet" type="text/css"/>
|
||||||
|
</head>
|
||||||
|
<body onload='searchBox.OnSelectItem(0);'>
|
||||||
|
<!-- Generated by Doxygen 1.7.4 -->
|
||||||
|
<script type="text/javascript"><!--
|
||||||
|
var searchBox = new SearchBox("searchBox", "search",false,'Search');
|
||||||
|
--></script>
|
||||||
|
<div id="top">
|
||||||
|
<div id="titlearea">
|
||||||
|
<table cellspacing="0" cellpadding="0">
|
||||||
|
<tbody>
|
||||||
|
<tr style="height: 56px;">
|
||||||
|
<td style="padding-left: 0.5em;">
|
||||||
|
<div id="projectname">TurboJPEG <span id="projectnumber">1.2.1</span></div>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
|
<div id="navrow1" class="tabs">
|
||||||
|
<ul class="tablist">
|
||||||
|
<li><a href="index.html"><span>Main Page</span></a></li>
|
||||||
|
<li><a href="modules.html"><span>Modules</span></a></li>
|
||||||
|
<li class="current"><a href="annotated.html"><span>Data Structures</span></a></li>
|
||||||
|
<li id="searchli">
|
||||||
|
<div id="MSearchBox" class="MSearchBoxInactive">
|
||||||
|
<span class="left">
|
||||||
|
<img id="MSearchSelect" src="search/mag_sel.png"
|
||||||
|
onmouseover="return searchBox.OnSearchSelectShow()"
|
||||||
|
onmouseout="return searchBox.OnSearchSelectHide()"
|
||||||
|
alt=""/>
|
||||||
|
<input type="text" id="MSearchField" value="Search" accesskey="S"
|
||||||
|
onfocus="searchBox.OnSearchFieldFocus(true)"
|
||||||
|
onblur="searchBox.OnSearchFieldFocus(false)"
|
||||||
|
onkeyup="searchBox.OnSearchFieldChange(event)"/>
|
||||||
|
</span><span class="right">
|
||||||
|
<a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
|
||||||
|
</span>
|
||||||
|
</div>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
<div id="navrow2" class="tabs2">
|
||||||
|
<ul class="tablist">
|
||||||
|
<li><a href="annotated.html"><span>Data Structures</span></a></li>
|
||||||
|
<li><a href="classes.html"><span>Data Structure Index</span></a></li>
|
||||||
|
<li><a href="functions.html"><span>Data Fields</span></a></li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="header">
|
||||||
|
<div class="summary">
|
||||||
|
<a href="#pub-attribs">Data Fields</a> </div>
|
||||||
|
<div class="headertitle">
|
||||||
|
<div class="title">tjscalingfactor Struct Reference<div class="ingroups"><a class="el" href="group___turbo_j_p_e_g.html">TurboJPEG</a></div></div> </div>
|
||||||
|
</div>
|
||||||
|
<div class="contents">
|
||||||
|
<!-- doxytag: class="tjscalingfactor" -->
|
||||||
|
<p>Scaling factor.
|
||||||
|
<a href="structtjscalingfactor.html#details">More...</a></p>
|
||||||
|
|
||||||
|
<p><code>#include <turbojpeg.h></code></p>
|
||||||
|
<table class="memberdecls">
|
||||||
|
<tr><td colspan="2"><h2><a name="pub-attribs"></a>
|
||||||
|
Data Fields</h2></td></tr>
|
||||||
|
<tr><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="structtjscalingfactor.html#a9b011e57f981ee23083e2c1aa5e640ec">num</a></td></tr>
|
||||||
|
<tr><td class="mdescLeft"> </td><td class="mdescRight">Numerator. <a href="#a9b011e57f981ee23083e2c1aa5e640ec"></a><br/></td></tr>
|
||||||
|
<tr><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="structtjscalingfactor.html#aefbcdf3e9e62274b2d312c695f133ce3">denom</a></td></tr>
|
||||||
|
<tr><td class="mdescLeft"> </td><td class="mdescRight">Denominator. <a href="#aefbcdf3e9e62274b2d312c695f133ce3"></a><br/></td></tr>
|
||||||
|
</table>
|
||||||
|
<hr/><a name="details" id="details"></a><h2>Detailed Description</h2>
|
||||||
|
<div class="textblock"><p>Scaling factor. </p>
|
||||||
|
</div><hr/><h2>Field Documentation</h2>
|
||||||
|
<a class="anchor" id="aefbcdf3e9e62274b2d312c695f133ce3"></a><!-- doxytag: member="tjscalingfactor::denom" ref="aefbcdf3e9e62274b2d312c695f133ce3" args="" -->
|
||||||
|
<div class="memitem">
|
||||||
|
<div class="memproto">
|
||||||
|
<table class="memname">
|
||||||
|
<tr>
|
||||||
|
<td class="memname">int <a class="el" href="structtjscalingfactor.html#aefbcdf3e9e62274b2d312c695f133ce3">tjscalingfactor::denom</a></td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
|
<div class="memdoc">
|
||||||
|
|
||||||
|
<p>Denominator. </p>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<a class="anchor" id="a9b011e57f981ee23083e2c1aa5e640ec"></a><!-- doxytag: member="tjscalingfactor::num" ref="a9b011e57f981ee23083e2c1aa5e640ec" args="" -->
|
||||||
|
<div class="memitem">
|
||||||
|
<div class="memproto">
|
||||||
|
<table class="memname">
|
||||||
|
<tr>
|
||||||
|
<td class="memname">int <a class="el" href="structtjscalingfactor.html#a9b011e57f981ee23083e2c1aa5e640ec">tjscalingfactor::num</a></td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
|
<div class="memdoc">
|
||||||
|
|
||||||
|
<p>Numerator. </p>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<hr/>The documentation for this struct was generated from the following file:<ul>
|
||||||
|
<li>turbojpeg.h</li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
<!-- window showing the filter options -->
|
||||||
|
<div id="MSearchSelectWindow"
|
||||||
|
onmouseover="return searchBox.OnSearchSelectShow()"
|
||||||
|
onmouseout="return searchBox.OnSearchSelectHide()"
|
||||||
|
onkeydown="return searchBox.OnSearchSelectKey(event)">
|
||||||
|
<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark"> </span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark"> </span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark"> </span>Variables</a></div>
|
||||||
|
|
||||||
|
<!-- iframe showing the search results (closed by default) -->
|
||||||
|
<div id="MSearchResultsWindow">
|
||||||
|
<iframe src="javascript:void(0)" frameborder="0"
|
||||||
|
name="MSearchResults" id="MSearchResults">
|
||||||
|
</iframe>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<hr class="footer"/><address class="footer"><small>Generated on Fri Jun 29 2012 18:14:55 for TurboJPEG by 
|
||||||
|
<a href="http://www.doxygen.org/index.html">
|
||||||
|
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.4 </small></address>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
198
doc/html/structtjtransform.html
Normal file
@@ -0,0 +1,198 @@
|
|||||||
|
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||||
|
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||||
|
<head>
|
||||||
|
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
||||||
|
<title>TurboJPEG: tjtransform Struct Reference</title>
|
||||||
|
<link href="tabs.css" rel="stylesheet" type="text/css"/>
|
||||||
|
<link href="search/search.css" rel="stylesheet" type="text/css"/>
|
||||||
|
<script type="text/javascript" src="search/search.js"></script>
|
||||||
|
<link href="doxygen.css" rel="stylesheet" type="text/css"/>
|
||||||
|
</head>
|
||||||
|
<body onload='searchBox.OnSelectItem(0);'>
|
||||||
|
<!-- Generated by Doxygen 1.7.4 -->
|
||||||
|
<script type="text/javascript"><!--
|
||||||
|
var searchBox = new SearchBox("searchBox", "search",false,'Search');
|
||||||
|
--></script>
|
||||||
|
<div id="top">
|
||||||
|
<div id="titlearea">
|
||||||
|
<table cellspacing="0" cellpadding="0">
|
||||||
|
<tbody>
|
||||||
|
<tr style="height: 56px;">
|
||||||
|
<td style="padding-left: 0.5em;">
|
||||||
|
<div id="projectname">TurboJPEG <span id="projectnumber">1.2.1</span></div>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
|
<div id="navrow1" class="tabs">
|
||||||
|
<ul class="tablist">
|
||||||
|
<li><a href="index.html"><span>Main Page</span></a></li>
|
||||||
|
<li><a href="modules.html"><span>Modules</span></a></li>
|
||||||
|
<li class="current"><a href="annotated.html"><span>Data Structures</span></a></li>
|
||||||
|
<li id="searchli">
|
||||||
|
<div id="MSearchBox" class="MSearchBoxInactive">
|
||||||
|
<span class="left">
|
||||||
|
<img id="MSearchSelect" src="search/mag_sel.png"
|
||||||
|
onmouseover="return searchBox.OnSearchSelectShow()"
|
||||||
|
onmouseout="return searchBox.OnSearchSelectHide()"
|
||||||
|
alt=""/>
|
||||||
|
<input type="text" id="MSearchField" value="Search" accesskey="S"
|
||||||
|
onfocus="searchBox.OnSearchFieldFocus(true)"
|
||||||
|
onblur="searchBox.OnSearchFieldFocus(false)"
|
||||||
|
onkeyup="searchBox.OnSearchFieldChange(event)"/>
|
||||||
|
</span><span class="right">
|
||||||
|
<a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
|
||||||
|
</span>
|
||||||
|
</div>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
<div id="navrow2" class="tabs2">
|
||||||
|
<ul class="tablist">
|
||||||
|
<li><a href="annotated.html"><span>Data Structures</span></a></li>
|
||||||
|
<li><a href="classes.html"><span>Data Structure Index</span></a></li>
|
||||||
|
<li><a href="functions.html"><span>Data Fields</span></a></li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="header">
|
||||||
|
<div class="summary">
|
||||||
|
<a href="#pub-attribs">Data Fields</a> </div>
|
||||||
|
<div class="headertitle">
|
||||||
|
<div class="title">tjtransform Struct Reference<div class="ingroups"><a class="el" href="group___turbo_j_p_e_g.html">TurboJPEG</a></div></div> </div>
|
||||||
|
</div>
|
||||||
|
<div class="contents">
|
||||||
|
<!-- doxytag: class="tjtransform" -->
|
||||||
|
<p>Lossless transform.
|
||||||
|
<a href="structtjtransform.html#details">More...</a></p>
|
||||||
|
|
||||||
|
<p><code>#include <turbojpeg.h></code></p>
|
||||||
|
<table class="memberdecls">
|
||||||
|
<tr><td colspan="2"><h2><a name="pub-attribs"></a>
|
||||||
|
Data Fields</h2></td></tr>
|
||||||
|
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="structtjregion.html">tjregion</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="structtjtransform.html#ac324e5e442abec8a961e5bf219db12cf">r</a></td></tr>
|
||||||
|
<tr><td class="mdescLeft"> </td><td class="mdescRight">Cropping region. <a href="#ac324e5e442abec8a961e5bf219db12cf"></a><br/></td></tr>
|
||||||
|
<tr><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="structtjtransform.html#a2525aab4ba6978a1c273f74fef50e498">op</a></td></tr>
|
||||||
|
<tr><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="#a2525aab4ba6978a1c273f74fef50e498"></a><br/></td></tr>
|
||||||
|
<tr><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><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#ga9c771a757fc1294add611906b89ab2d2">transform options</a>. <a href="#ac0e74655baa4402209a21e1ae481c8f6"></a><br/></td></tr>
|
||||||
|
<tr><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><td class="mdescLeft"> </td><td class="mdescRight">Arbitrary data that can be accessed within the body of the callback function. <a href="#a688fe8f1a8ecc12a538d9e561cf338e3"></a><br/></td></tr>
|
||||||
|
<tr><td class="memItemLeft" align="right" valign="top">int(* </td><td class="memItemRight" valign="bottom"><a class="el" href="structtjtransform.html#a43ee1bcdd2a8d7249a756774f78793c1">customFilter</a> )(short *coeffs, <a class="el" href="structtjregion.html">tjregion</a> arrayRegion, <a class="el" href="structtjregion.html">tjregion</a> planeRegion, int componentIndex, int transformIndex, struct <a class="el" href="structtjtransform.html">tjtransform</a> *transform)</td></tr>
|
||||||
|
<tr><td class="mdescLeft"> </td><td class="mdescRight">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 JPEG file. <a href="#a43ee1bcdd2a8d7249a756774f78793c1"></a><br/></td></tr>
|
||||||
|
</table>
|
||||||
|
<hr/><a name="details" id="details"></a><h2>Detailed Description</h2>
|
||||||
|
<div class="textblock"><p>Lossless transform. </p>
|
||||||
|
</div><hr/><h2>Field Documentation</h2>
|
||||||
|
<a class="anchor" id="a43ee1bcdd2a8d7249a756774f78793c1"></a><!-- doxytag: member="tjtransform::customFilter" ref="a43ee1bcdd2a8d7249a756774f78793c1" args=")(short *coeffs, tjregion arrayRegion, tjregion planeRegion, int componentIndex, int transformIndex, struct tjtransform *transform)" -->
|
||||||
|
<div class="memitem">
|
||||||
|
<div class="memproto">
|
||||||
|
<table class="memname">
|
||||||
|
<tr>
|
||||||
|
<td class="memname">int(* <a class="el" href="structtjtransform.html#a43ee1bcdd2a8d7249a756774f78793c1">tjtransform::customFilter</a>)(short *coeffs, <a class="el" href="structtjregion.html">tjregion</a> arrayRegion, <a class="el" href="structtjregion.html">tjregion</a> planeRegion, int componentIndex, int transformIndex, struct <a class="el" href="structtjtransform.html">tjtransform</a> *transform)</td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
|
<div class="memdoc">
|
||||||
|
|
||||||
|
<p>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 JPEG file. </p>
|
||||||
|
<p>This allows for custom filters or other transformations to be applied in the frequency domain.</p>
|
||||||
|
<dl><dt><b>Parameters:</b></dt><dd>
|
||||||
|
<table class="params">
|
||||||
|
<tr><td class="paramname">coeffs</td><td>pointer to an array of transformed DCT coefficients. (NOTE: this pointer is not guaranteed to be valid once the callback 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 the callback.) </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">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 transforms array that was passed to <a class="el" href="group___turbo_j_p_e_g.html#gae403193ceb4aafb7e0f56ab587b48616" title="Losslessly transform a JPEG image into another JPEG image.">tjTransform()</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>
|
||||||
|
</table>
|
||||||
|
</dd>
|
||||||
|
</dl>
|
||||||
|
<dl class="return"><dt><b>Returns:</b></dt><dd>0 if the callback was successful, or -1 if an error occurred. </dd></dl>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<a class="anchor" id="a688fe8f1a8ecc12a538d9e561cf338e3"></a><!-- doxytag: member="tjtransform::data" ref="a688fe8f1a8ecc12a538d9e561cf338e3" args="" -->
|
||||||
|
<div class="memitem">
|
||||||
|
<div class="memproto">
|
||||||
|
<table class="memname">
|
||||||
|
<tr>
|
||||||
|
<td class="memname">void* <a class="el" href="structtjtransform.html#a688fe8f1a8ecc12a538d9e561cf338e3">tjtransform::data</a></td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
|
<div class="memdoc">
|
||||||
|
|
||||||
|
<p>Arbitrary data that can be accessed within the body of the callback function. </p>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<a class="anchor" id="a2525aab4ba6978a1c273f74fef50e498"></a><!-- doxytag: member="tjtransform::op" ref="a2525aab4ba6978a1c273f74fef50e498" args="" -->
|
||||||
|
<div class="memitem">
|
||||||
|
<div class="memproto">
|
||||||
|
<table class="memname">
|
||||||
|
<tr>
|
||||||
|
<td class="memname">int <a class="el" href="structtjtransform.html#a2525aab4ba6978a1c273f74fef50e498">tjtransform::op</a></td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
|
<div class="memdoc">
|
||||||
|
|
||||||
|
<p>One of the <a class="el" href="group___turbo_j_p_e_g.html#ga2de531af4e7e6c4f124908376b354866">transform operations</a>. </p>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<a class="anchor" id="ac0e74655baa4402209a21e1ae481c8f6"></a><!-- doxytag: member="tjtransform::options" ref="ac0e74655baa4402209a21e1ae481c8f6" args="" -->
|
||||||
|
<div class="memitem">
|
||||||
|
<div class="memproto">
|
||||||
|
<table class="memname">
|
||||||
|
<tr>
|
||||||
|
<td class="memname">int <a class="el" href="structtjtransform.html#ac0e74655baa4402209a21e1ae481c8f6">tjtransform::options</a></td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
</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#ga9c771a757fc1294add611906b89ab2d2">transform options</a>. </p>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<a class="anchor" id="ac324e5e442abec8a961e5bf219db12cf"></a><!-- doxytag: member="tjtransform::r" ref="ac324e5e442abec8a961e5bf219db12cf" args="" -->
|
||||||
|
<div class="memitem">
|
||||||
|
<div class="memproto">
|
||||||
|
<table class="memname">
|
||||||
|
<tr>
|
||||||
|
<td class="memname"><a class="el" href="structtjregion.html">tjregion</a> <a class="el" href="structtjtransform.html#ac324e5e442abec8a961e5bf219db12cf">tjtransform::r</a></td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
|
<div class="memdoc">
|
||||||
|
|
||||||
|
<p>Cropping region. </p>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<hr/>The documentation for this struct was generated from the following file:<ul>
|
||||||
|
<li>turbojpeg.h</li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
<!-- window showing the filter options -->
|
||||||
|
<div id="MSearchSelectWindow"
|
||||||
|
onmouseover="return searchBox.OnSearchSelectShow()"
|
||||||
|
onmouseout="return searchBox.OnSearchSelectHide()"
|
||||||
|
onkeydown="return searchBox.OnSearchSelectKey(event)">
|
||||||
|
<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark"> </span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark"> </span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark"> </span>Variables</a></div>
|
||||||
|
|
||||||
|
<!-- iframe showing the search results (closed by default) -->
|
||||||
|
<div id="MSearchResultsWindow">
|
||||||
|
<iframe src="javascript:void(0)" frameborder="0"
|
||||||
|
name="MSearchResults" id="MSearchResults">
|
||||||
|
</iframe>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<hr class="footer"/><address class="footer"><small>Generated on Fri Jun 29 2012 18:14:55 for TurboJPEG by 
|
||||||
|
<a href="http://www.doxygen.org/index.html">
|
||||||
|
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.4 </small></address>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
BIN
doc/html/tab_a.png
Normal file
|
After Width: | Height: | Size: 140 B |
BIN
doc/html/tab_b.png
Normal file
|
After Width: | Height: | Size: 178 B |
BIN
doc/html/tab_h.png
Normal file
|
After Width: | Height: | Size: 192 B |
BIN
doc/html/tab_s.png
Normal file
|
After Width: | Height: | Size: 189 B |
59
doc/html/tabs.css
Normal file
@@ -0,0 +1,59 @@
|
|||||||
|
.tabs, .tabs2, .tabs3 {
|
||||||
|
background-image: url('tab_b.png');
|
||||||
|
width: 100%;
|
||||||
|
z-index: 101;
|
||||||
|
font-size: 13px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.tabs2 {
|
||||||
|
font-size: 10px;
|
||||||
|
}
|
||||||
|
.tabs3 {
|
||||||
|
font-size: 9px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.tablist {
|
||||||
|
margin: 0;
|
||||||
|
padding: 0;
|
||||||
|
display: table;
|
||||||
|
}
|
||||||
|
|
||||||
|
.tablist li {
|
||||||
|
float: left;
|
||||||
|
display: table-cell;
|
||||||
|
background-image: url('tab_b.png');
|
||||||
|
line-height: 36px;
|
||||||
|
list-style: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
.tablist a {
|
||||||
|
display: block;
|
||||||
|
padding: 0 20px;
|
||||||
|
font-weight: bold;
|
||||||
|
background-image:url('tab_s.png');
|
||||||
|
background-repeat:no-repeat;
|
||||||
|
background-position:right;
|
||||||
|
color: #283A5D;
|
||||||
|
text-shadow: 0px 1px 1px rgba(255, 255, 255, 0.9);
|
||||||
|
text-decoration: none;
|
||||||
|
outline: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
.tabs3 .tablist a {
|
||||||
|
padding: 0 10px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.tablist a:hover {
|
||||||
|
background-image: url('tab_h.png');
|
||||||
|
background-repeat:repeat-x;
|
||||||
|
color: #fff;
|
||||||
|
text-shadow: 0px 1px 1px rgba(0, 0, 0, 1.0);
|
||||||
|
text-decoration: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
.tablist li.current a {
|
||||||
|
background-image: url('tab_a.png');
|
||||||
|
background-repeat:repeat-x;
|
||||||
|
color: #fff;
|
||||||
|
text-shadow: 0px 1px 1px rgba(0, 0, 0, 1.0);
|
||||||
|
}
|
||||||
14
doxygen.config
Normal file
@@ -0,0 +1,14 @@
|
|||||||
|
PROJECT_NAME = TurboJPEG
|
||||||
|
PROJECT_NUMBER = 1.2.1
|
||||||
|
OUTPUT_DIRECTORY = doc/
|
||||||
|
USE_WINDOWS_ENCODING = NO
|
||||||
|
OPTIMIZE_OUTPUT_FOR_C = YES
|
||||||
|
WARN_NO_PARAMDOC = YES
|
||||||
|
GENERATE_LATEX = NO
|
||||||
|
FILE_PATTERNS = turbojpeg.h
|
||||||
|
HIDE_UNDOC_MEMBERS = YES
|
||||||
|
VERBATIM_HEADERS = NO
|
||||||
|
EXTRACT_STATIC = YES
|
||||||
|
JAVADOC_AUTOBRIEF = YES
|
||||||
|
MAX_INITIALIZER_LINES = 0
|
||||||
|
ALWAYS_DETAILED_SEC = YES
|
||||||
10
install.txt
@@ -534,17 +534,17 @@ In general, it's worth trying the maximum optimization level of your compiler,
|
|||||||
and experimenting with any optional optimizations such as loop unrolling.
|
and experimenting with any optional optimizations such as loop unrolling.
|
||||||
(Unfortunately, far too many compilers have optimizer bugs ... be prepared to
|
(Unfortunately, far too many compilers have optimizer bugs ... be prepared to
|
||||||
back off if the code fails self-test.) If you do any experimentation along
|
back off if the code fails self-test.) If you do any experimentation along
|
||||||
these lines, please report the optimal settings to jpeg-info@uc.ag so we
|
these lines, please report the optimal settings to jpeg-info@jpegclub.org so
|
||||||
can mention them in future releases. Be sure to specify your machine
|
we can mention them in future releases. Be sure to specify your machine and
|
||||||
and compiler version.
|
compiler version.
|
||||||
|
|
||||||
|
|
||||||
HINTS FOR SPECIFIC SYSTEMS
|
HINTS FOR SPECIFIC SYSTEMS
|
||||||
==========================
|
==========================
|
||||||
|
|
||||||
We welcome reports on changes needed for systems not mentioned here. Submit
|
We welcome reports on changes needed for systems not mentioned here. Submit
|
||||||
'em to jpeg-info@uc.ag. Also, if configure or ckconfig.c is wrong about how
|
'em to jpeg-info@jpegclub.org. Also, if configure or ckconfig.c is wrong
|
||||||
to configure the JPEG software for your system, please let us know.
|
about how to configure the JPEG software for your system, please let us know.
|
||||||
|
|
||||||
|
|
||||||
Acorn RISC OS:
|
Acorn RISC OS:
|
||||||
|
|||||||
54
java/CMakeLists.txt
Normal file
@@ -0,0 +1,54 @@
|
|||||||
|
set(JAR_FILE turbojpeg.jar)
|
||||||
|
set(MANIFEST_FILE ${CMAKE_CURRENT_SOURCE_DIR}/MANIFEST.MF)
|
||||||
|
|
||||||
|
set(JAVA_CLASSNAMES org/libjpegturbo/turbojpeg/TJ
|
||||||
|
org/libjpegturbo/turbojpeg/TJCompressor
|
||||||
|
org/libjpegturbo/turbojpeg/TJCustomFilter
|
||||||
|
org/libjpegturbo/turbojpeg/TJDecompressor
|
||||||
|
org/libjpegturbo/turbojpeg/TJScalingFactor
|
||||||
|
org/libjpegturbo/turbojpeg/TJTransform
|
||||||
|
org/libjpegturbo/turbojpeg/TJTransformer
|
||||||
|
TJUnitTest
|
||||||
|
TJExample)
|
||||||
|
|
||||||
|
if(MSVC_IDE)
|
||||||
|
set(OBJDIR "${CMAKE_CURRENT_BINARY_DIR}/$(OutDir)")
|
||||||
|
else()
|
||||||
|
set(OBJDIR ${CMAKE_CURRENT_BINARY_DIR})
|
||||||
|
endif()
|
||||||
|
|
||||||
|
set(TURBOJPEG_DLL_NAME "turbojpeg")
|
||||||
|
if(MINGW)
|
||||||
|
set(TURBOJPEG_DLL_NAME "libturbojpeg")
|
||||||
|
endif()
|
||||||
|
configure_file(org/libjpegturbo/turbojpeg/TJLoader.java.in
|
||||||
|
${CMAKE_CURRENT_BINARY_DIR}/org/libjpegturbo/turbojpeg/TJLoader.java)
|
||||||
|
|
||||||
|
set(JAVA_SOURCES "")
|
||||||
|
set(JAVA_CLASSES "")
|
||||||
|
set(JAVA_CLASSES_FULL "")
|
||||||
|
foreach(class ${JAVA_CLASSNAMES})
|
||||||
|
set(JAVA_SOURCES ${JAVA_SOURCES} ${CMAKE_CURRENT_SOURCE_DIR}/${class}.java)
|
||||||
|
set(JAVA_CLASSES ${JAVA_CLASSES} ${class}.class)
|
||||||
|
set(JAVA_CLASSES_FULL ${JAVA_CLASSES_FULL} ${OBJDIR}/${class}.class)
|
||||||
|
endforeach()
|
||||||
|
|
||||||
|
set(JAVA_SOURCES ${JAVA_SOURCES}
|
||||||
|
${CMAKE_CURRENT_BINARY_DIR}/org/libjpegturbo/turbojpeg/TJLoader.java)
|
||||||
|
set(JAVA_CLASSES ${JAVA_CLASSES}
|
||||||
|
org/libjpegturbo/turbojpeg/TJLoader.class)
|
||||||
|
set(JAVA_CLASSES_FULL ${JAVA_CLASSES_FULL}
|
||||||
|
${OBJDIR}/org/libjpegturbo/turbojpeg/TJLoader.class)
|
||||||
|
|
||||||
|
string(REGEX REPLACE " " ";" JAVACFLAGS "${JAVACFLAGS}")
|
||||||
|
add_custom_command(OUTPUT ${JAVA_CLASSES_FULL} DEPENDS ${JAVA_SOURCES}
|
||||||
|
COMMAND ${JAVA_COMPILE} ARGS ${JAVACFLAGS} -d ${OBJDIR} ${JAVA_SOURCES})
|
||||||
|
|
||||||
|
add_custom_command(OUTPUT ${JAR_FILE} DEPENDS ${JAVA_CLASSES_FULL}
|
||||||
|
${MANIFEST_FILE}
|
||||||
|
COMMAND ${JAVA_ARCHIVE} cfm ${JAR_FILE} ${MANIFEST_FILE} ${JAVA_CLASSES}
|
||||||
|
WORKING_DIRECTORY ${OBJDIR})
|
||||||
|
|
||||||
|
add_custom_target(java ALL DEPENDS ${JAR_FILE})
|
||||||
|
|
||||||
|
install(FILES ${CMAKE_CURRENT_BINARY_DIR}/${JAR_FILE} DESTINATION classes)
|
||||||
2
java/MANIFEST.MF
Normal file
@@ -0,0 +1,2 @@
|
|||||||
|
Manifest-Version: 1.0
|
||||||
|
Main-Class: TJExample
|
||||||
63
java/Makefile.am
Normal file
@@ -0,0 +1,63 @@
|
|||||||
|
JAVAROOT = .
|
||||||
|
|
||||||
|
JAVASOURCES = org/libjpegturbo/turbojpeg/TJ.java \
|
||||||
|
org/libjpegturbo/turbojpeg/TJCompressor.java \
|
||||||
|
org/libjpegturbo/turbojpeg/TJCustomFilter.java \
|
||||||
|
org/libjpegturbo/turbojpeg/TJDecompressor.java \
|
||||||
|
org/libjpegturbo/turbojpeg/TJLoader.java \
|
||||||
|
org/libjpegturbo/turbojpeg/TJScalingFactor.java \
|
||||||
|
org/libjpegturbo/turbojpeg/TJTransform.java \
|
||||||
|
org/libjpegturbo/turbojpeg/TJTransformer.java \
|
||||||
|
TJExample.java \
|
||||||
|
TJUnitTest.java
|
||||||
|
|
||||||
|
JNIHEADERS = org_libjpegturbo_turbojpeg_TJ.h \
|
||||||
|
org_libjpegturbo_turbojpeg_TJCompressor.h \
|
||||||
|
org_libjpegturbo_turbojpeg_TJDecompressor.h \
|
||||||
|
org_libjpegturbo_turbojpeg_TJTransformer.h
|
||||||
|
|
||||||
|
if WITH_JAVA
|
||||||
|
|
||||||
|
dist_noinst_JAVA = ${JAVASOURCES}
|
||||||
|
|
||||||
|
JAVA_CLASSES = org/libjpegturbo/turbojpeg/TJ.class \
|
||||||
|
org/libjpegturbo/turbojpeg/TJCompressor.class \
|
||||||
|
org/libjpegturbo/turbojpeg/TJCustomFilter.class \
|
||||||
|
org/libjpegturbo/turbojpeg/TJDecompressor.class \
|
||||||
|
org/libjpegturbo/turbojpeg/TJLoader.class \
|
||||||
|
org/libjpegturbo/turbojpeg/TJScalingFactor.class \
|
||||||
|
org/libjpegturbo/turbojpeg/TJTransform.class \
|
||||||
|
org/libjpegturbo/turbojpeg/TJTransformer.class \
|
||||||
|
TJExample.class \
|
||||||
|
TJUnitTest.class
|
||||||
|
|
||||||
|
all: all-am turbojpeg.jar
|
||||||
|
|
||||||
|
turbojpeg.jar: $(JAVA_CLASSES) ${srcdir}/MANIFEST.MF
|
||||||
|
$(JAR) cfm turbojpeg.jar ${srcdir}/MANIFEST.MF $(JAVA_CLASSES)
|
||||||
|
|
||||||
|
clean-local:
|
||||||
|
rm -f turbojpeg.jar
|
||||||
|
|
||||||
|
install-exec-local: turbojpeg.jar
|
||||||
|
mkdir -p $(DESTDIR)/$(prefix)/classes
|
||||||
|
$(INSTALL) -m 644 turbojpeg.jar $(DESTDIR)/$(prefix)/classes/
|
||||||
|
|
||||||
|
uninstall-local:
|
||||||
|
rm -f $(DESTDIR)/$(prefix)/classes/turbojpeg.jar
|
||||||
|
if [ -d $(DESTDIR)/$(prefix)/classes ]; then rmdir $(DESTDIR)/$(prefix)/classes; fi
|
||||||
|
|
||||||
|
headers: all
|
||||||
|
javah -d ${srcdir} org.libjpegturbo.turbojpeg.TJ; \
|
||||||
|
javah -d ${srcdir} org.libjpegturbo.turbojpeg.TJCompressor; \
|
||||||
|
javah -d ${srcdir} org.libjpegturbo.turbojpeg.TJDecompressor; \
|
||||||
|
javah -d ${srcdir} org.libjpegturbo.turbojpeg.TJTransformer
|
||||||
|
|
||||||
|
docs: all
|
||||||
|
mkdir -p ${srcdir}/doc; \
|
||||||
|
javadoc -d ${srcdir}/doc -sourcepath ${srcdir} org.libjpegturbo.turbojpeg
|
||||||
|
|
||||||
|
endif
|
||||||
|
|
||||||
|
EXTRA_DIST = MANIFEST.MF ${JAVASOURCES} ${JNIHEADERS} doc CMakeLists.txt \
|
||||||
|
org/libjpegturbo/turbojpeg/TJLoader.java.in
|
||||||
55
java/README
Normal file
@@ -0,0 +1,55 @@
|
|||||||
|
TurboJPEG/OSS Java Wrapper
|
||||||
|
==========================
|
||||||
|
|
||||||
|
TurboJPEG/OSS can optionally be built with a Java Native Interface wrapper,
|
||||||
|
which allows the TurboJPEG/OSS dynamic library to be loaded and used directly
|
||||||
|
from Java applications. The Java front end for this is defined in several
|
||||||
|
classes located under org/libjpegturbo/turbojpeg. The source code for these
|
||||||
|
Java classes is licensed under a BSD-style license, so the files can be
|
||||||
|
incorporated directly into both open source and proprietary projects without
|
||||||
|
restriction. A Java archive (JAR) file containing these classes is also
|
||||||
|
shipped with the "official" distribution packages of libjpeg-turbo.
|
||||||
|
|
||||||
|
TJExample.java, which should also be located in the same directory as this
|
||||||
|
README file, demonstrates how to use the TurboJPEG/OSS Java front end to
|
||||||
|
compress and decompress JPEG images in memory.
|
||||||
|
|
||||||
|
|
||||||
|
Performance Pitfalls
|
||||||
|
--------------------
|
||||||
|
|
||||||
|
The TurboJPEG Java front end defines several convenience methods that can
|
||||||
|
allocate image buffers or instantiate classes to hold the result of compress,
|
||||||
|
decompress, or transform operations. However, if you use these methods, then
|
||||||
|
be mindful of the amount of new data you are creating on the heap. It may be
|
||||||
|
necessary to manually invoke the garbage collector to prevent heap exhaustion
|
||||||
|
or to prevent performance degradation. Background garbage collection can kill
|
||||||
|
performance, particularly in a multi-threaded environment (Java pauses all
|
||||||
|
threads when the GC runs.)
|
||||||
|
|
||||||
|
The Java front end always gives you the option of pre-allocating your own
|
||||||
|
source and destination buffers, which allows you to re-use these buffers for
|
||||||
|
compressing/decompressing multiple images. If the image sequence you are
|
||||||
|
compressing or decompressing consists of images of the same size, then
|
||||||
|
pre-allocating the buffers is recommended.
|
||||||
|
|
||||||
|
|
||||||
|
Note for OS X users
|
||||||
|
-------------------
|
||||||
|
|
||||||
|
/usr/lib, the directory under which libturbojpeg.dylib is installed on Mac
|
||||||
|
systems, is not part of the normal Java library path. Thus, when running a
|
||||||
|
Java application that uses TurboJPEG/OSS on Mac systems, you will need to pass
|
||||||
|
an argument of -Djava.library.path=/usr/lib to java.
|
||||||
|
|
||||||
|
|
||||||
|
Note for Solaris users
|
||||||
|
----------------------
|
||||||
|
|
||||||
|
/opt/libjpeg-turbo/lib, the directory under which libturbojpeg.so is installed
|
||||||
|
on Solaris systems, is not part of the normal Java library path. Thus, when
|
||||||
|
running a Java application that uses TurboJPEG/OSS on Solaris systems, you will
|
||||||
|
need to pass an argument of -Djava.library.path=/opt/libjpeg-turbo/lib to java.
|
||||||
|
If using a 64-bit data model, then instead pass an argument of
|
||||||
|
-Djava.library.path=/opt/libjpeg-turbo/lib/amd64 to use the 64-bit version of
|
||||||
|
libturbojpeg.so.
|
||||||
340
java/TJExample.java
Normal file
@@ -0,0 +1,340 @@
|
|||||||
|
/*
|
||||||
|
* Copyright (C)2011-2012 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.
|
||||||
|
*/
|
||||||
|
|
||||||
|
/*
|
||||||
|
* This program demonstrates how to compress and decompress JPEG files using
|
||||||
|
* the TurboJPEG JNI wrapper
|
||||||
|
*/
|
||||||
|
|
||||||
|
import java.io.*;
|
||||||
|
import java.awt.*;
|
||||||
|
import java.awt.image.*;
|
||||||
|
import java.nio.*;
|
||||||
|
import javax.imageio.*;
|
||||||
|
import javax.swing.*;
|
||||||
|
import org.libjpegturbo.turbojpeg.*;
|
||||||
|
|
||||||
|
public class TJExample implements TJCustomFilter {
|
||||||
|
|
||||||
|
public static final String classname = new TJExample().getClass().getName();
|
||||||
|
|
||||||
|
private static void usage() throws Exception {
|
||||||
|
System.out.println("\nUSAGE: java " + classname + " <Input file> <Output file> [options]\n");
|
||||||
|
System.out.println("Input and output files can be any image format that the Java Image I/O");
|
||||||
|
System.out.println("extensions understand. If either filename ends in a .jpg extension, then");
|
||||||
|
System.out.println("TurboJPEG will be used to compress or decompress the file.\n");
|
||||||
|
System.out.println("Options:\n");
|
||||||
|
System.out.println("-scale M/N = if the input image is a JPEG file, scale the width/height of the");
|
||||||
|
System.out.print(" output image by a factor of M/N (M/N = ");
|
||||||
|
for(int i = 0; i < sf.length; i++) {
|
||||||
|
System.out.print(sf[i].getNum() + "/" + sf[i].getDenom());
|
||||||
|
if(sf.length == 2 && i != sf.length - 1) System.out.print(" or ");
|
||||||
|
else if(sf.length > 2) {
|
||||||
|
if(i != sf.length - 1) System.out.print(", ");
|
||||||
|
if(i == sf.length - 2) System.out.print("or ");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
System.out.println(")\n");
|
||||||
|
System.out.println("-samp <444|422|420|gray> = If the output image is a JPEG file, this specifies");
|
||||||
|
System.out.println(" the level of chrominance subsampling to use when");
|
||||||
|
System.out.println(" recompressing it. Default is to use the same level");
|
||||||
|
System.out.println(" of subsampling as the input, if the input is a JPEG");
|
||||||
|
System.out.println(" file, or 4:4:4 otherwise.\n");
|
||||||
|
System.out.println("-q <1-100> = If the output image is a JPEG file, this specifies the JPEG");
|
||||||
|
System.out.println(" quality to use when recompressing it (default = 95).\n");
|
||||||
|
System.out.println("-hflip, -vflip, -transpose, -transverse, -rot90, -rot180, -rot270 =");
|
||||||
|
System.out.println(" If the input image is a JPEG file, perform the corresponding lossless");
|
||||||
|
System.out.println(" transform prior to decompression (these options are mutually exclusive)\n");
|
||||||
|
System.out.println("-grayscale = If the input image is a JPEG file, perform lossless grayscale");
|
||||||
|
System.out.println(" conversion prior to decompression (can be combined with the other");
|
||||||
|
System.out.println(" transforms above)\n");
|
||||||
|
System.out.println("-crop X,Y,WxH = If the input image is a JPEG file, perform lossless cropping");
|
||||||
|
System.out.println(" prior to decompression. X,Y specifies the upper left corner of the");
|
||||||
|
System.out.println(" cropping region, and WxH specifies its width and height. X,Y must be");
|
||||||
|
System.out.println(" evenly divible by the MCU block size (8x8 if the source image was");
|
||||||
|
System.out.println(" compressed using no subsampling or grayscale, or 16x8 for 4:2:2 or 16x16");
|
||||||
|
System.out.println(" for 4:2:0.)\n");
|
||||||
|
System.out.println("-display = Display output image (Output file need not be specified in this");
|
||||||
|
System.out.println(" case.)\n");
|
||||||
|
System.out.println("-fastupsample = Use the fastest chrominance upsampling algorithm available in");
|
||||||
|
System.out.println(" the underlying codec\n");
|
||||||
|
System.out.println("-fastdct = Use the fastest DCT/IDCT algorithms available in the underlying");
|
||||||
|
System.out.println(" codec\n");
|
||||||
|
System.out.println("-accuratedct = Use the most accurate DCT/IDCT algorithms available in the");
|
||||||
|
System.out.println(" underlying codec\n");
|
||||||
|
System.exit(1);
|
||||||
|
}
|
||||||
|
|
||||||
|
private final static String sampName[] = {
|
||||||
|
"4:4:4", "4:2:2", "4:2:0", "Grayscale", "4:4:0"
|
||||||
|
};
|
||||||
|
|
||||||
|
public static void main(String argv[]) {
|
||||||
|
|
||||||
|
BufferedImage img = null; byte[] bmpBuf = null;
|
||||||
|
TJTransform xform = new TJTransform();
|
||||||
|
int flags = 0;
|
||||||
|
|
||||||
|
try {
|
||||||
|
|
||||||
|
sf = TJ.getScalingFactors();
|
||||||
|
|
||||||
|
if(argv.length < 2) {
|
||||||
|
usage();
|
||||||
|
}
|
||||||
|
|
||||||
|
TJScalingFactor scaleFactor = new TJScalingFactor(1, 1);
|
||||||
|
String inFormat = "jpg", outFormat = "jpg";
|
||||||
|
int outSubsamp = -1, outQual = 95;
|
||||||
|
boolean display = false;
|
||||||
|
|
||||||
|
if(argv.length > 1) {
|
||||||
|
for(int i = 1; i < argv.length; i++) {
|
||||||
|
if(argv[i].length() < 2) continue;
|
||||||
|
if(argv[i].length() > 2
|
||||||
|
&& argv[i].substring(0, 3).equalsIgnoreCase("-sc")) {
|
||||||
|
int match = 0;
|
||||||
|
if(i < argv.length - 1) {
|
||||||
|
String[] scaleArg = argv[++i].split("/");
|
||||||
|
if(scaleArg.length == 2) {
|
||||||
|
TJScalingFactor tempsf =
|
||||||
|
new TJScalingFactor(Integer.parseInt(scaleArg[0]),
|
||||||
|
Integer.parseInt(scaleArg[1]));
|
||||||
|
for(int j = 0; j < sf.length; j++) {
|
||||||
|
if(tempsf.equals(sf[j])) {
|
||||||
|
scaleFactor = sf[j];
|
||||||
|
match = 1; break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if(match != 1) usage();
|
||||||
|
}
|
||||||
|
if(argv[i].equalsIgnoreCase("-h") || argv[i].equalsIgnoreCase("-?"))
|
||||||
|
usage();
|
||||||
|
if(argv[i].length() > 2
|
||||||
|
&& argv[i].substring(0, 3).equalsIgnoreCase("-sa")) {
|
||||||
|
if(i < argv.length - 1) {
|
||||||
|
i++;
|
||||||
|
if(argv[i].substring(0, 1).equalsIgnoreCase("g"))
|
||||||
|
outSubsamp = TJ.SAMP_GRAY;
|
||||||
|
else if(argv[i].equals("444")) outSubsamp = TJ.SAMP_444;
|
||||||
|
else if(argv[i].equals("422")) outSubsamp = TJ.SAMP_422;
|
||||||
|
else if(argv[i].equals("420")) outSubsamp = TJ.SAMP_420;
|
||||||
|
else usage();
|
||||||
|
}
|
||||||
|
else usage();
|
||||||
|
}
|
||||||
|
if(argv[i].substring(0, 2).equalsIgnoreCase("-q")) {
|
||||||
|
if(i < argv.length - 1) {
|
||||||
|
int qual = Integer.parseInt(argv[++i]);
|
||||||
|
if(qual >= 1 && qual <= 100) outQual = qual;
|
||||||
|
else usage();
|
||||||
|
}
|
||||||
|
else usage();
|
||||||
|
}
|
||||||
|
if(argv[i].substring(0, 2).equalsIgnoreCase("-g"))
|
||||||
|
xform.options |= TJTransform.OPT_GRAY;
|
||||||
|
if(argv[i].equalsIgnoreCase("-hflip"))
|
||||||
|
xform.op = TJTransform.OP_HFLIP;
|
||||||
|
if(argv[i].equalsIgnoreCase("-vflip"))
|
||||||
|
xform.op = TJTransform.OP_VFLIP;
|
||||||
|
if(argv[i].equalsIgnoreCase("-transpose"))
|
||||||
|
xform.op = TJTransform.OP_TRANSPOSE;
|
||||||
|
if(argv[i].equalsIgnoreCase("-transverse"))
|
||||||
|
xform.op = TJTransform.OP_TRANSVERSE;
|
||||||
|
if(argv[i].equalsIgnoreCase("-rot90"))
|
||||||
|
xform.op = TJTransform.OP_ROT90;
|
||||||
|
if(argv[i].equalsIgnoreCase("-rot180"))
|
||||||
|
xform.op = TJTransform.OP_ROT180;
|
||||||
|
if(argv[i].equalsIgnoreCase("-rot270"))
|
||||||
|
xform.op = TJTransform.OP_ROT270;
|
||||||
|
if(argv[i].equalsIgnoreCase("-custom"))
|
||||||
|
xform.cf = new TJExample();
|
||||||
|
else if(argv[i].length() > 2
|
||||||
|
&& argv[i].substring(0, 2).equalsIgnoreCase("-c")) {
|
||||||
|
if(i >= argv.length - 1) usage();
|
||||||
|
String[] cropArg = argv[++i].split(",");
|
||||||
|
if(cropArg.length != 3) usage();
|
||||||
|
String[] dimArg = cropArg[2].split("[xX]");
|
||||||
|
if(dimArg.length != 2) usage();
|
||||||
|
int tempx = Integer.parseInt(cropArg[0]);
|
||||||
|
int tempy = Integer.parseInt(cropArg[1]);
|
||||||
|
int tempw = Integer.parseInt(dimArg[0]);
|
||||||
|
int temph = Integer.parseInt(dimArg[1]);
|
||||||
|
if(tempx < 0 || tempy < 0 || tempw < 0 || temph < 0) usage();
|
||||||
|
xform.x = tempx; xform.y = tempy;
|
||||||
|
xform.width = tempw; xform.height = temph;
|
||||||
|
xform.options |= TJTransform.OPT_CROP;
|
||||||
|
}
|
||||||
|
if(argv[i].substring(0, 2).equalsIgnoreCase("-d"))
|
||||||
|
display = true;
|
||||||
|
if(argv[i].equalsIgnoreCase("-fastupsample")) {
|
||||||
|
System.out.println("Using fast upsampling code");
|
||||||
|
flags |= TJ.FLAG_FASTUPSAMPLE;
|
||||||
|
}
|
||||||
|
if(argv[i].equalsIgnoreCase("-fastdct")) {
|
||||||
|
System.out.println("Using fastest DCT/IDCT algorithm");
|
||||||
|
flags |= TJ.FLAG_FASTDCT;
|
||||||
|
}
|
||||||
|
if(argv[i].equalsIgnoreCase("-accuratedct")) {
|
||||||
|
System.out.println("Using most accurate DCT/IDCT algorithm");
|
||||||
|
flags |= TJ.FLAG_ACCURATEDCT;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
String[] inFileTokens = argv[0].split("\\.");
|
||||||
|
if(inFileTokens.length > 1)
|
||||||
|
inFormat = inFileTokens[inFileTokens.length - 1];
|
||||||
|
String[] outFileTokens;
|
||||||
|
if(display) outFormat = "bmp";
|
||||||
|
else {
|
||||||
|
outFileTokens = argv[1].split("\\.");
|
||||||
|
if(outFileTokens.length > 1)
|
||||||
|
outFormat = outFileTokens[outFileTokens.length - 1];
|
||||||
|
}
|
||||||
|
|
||||||
|
File file = new File(argv[0]);
|
||||||
|
int width, height;
|
||||||
|
|
||||||
|
if(inFormat.equalsIgnoreCase("jpg")) {
|
||||||
|
FileInputStream fis = new FileInputStream(file);
|
||||||
|
int inputSize = fis.available();
|
||||||
|
if(inputSize < 1) {
|
||||||
|
System.out.println("Input file contains no data");
|
||||||
|
System.exit(1);
|
||||||
|
}
|
||||||
|
byte[] inputBuf = new byte[inputSize];
|
||||||
|
fis.read(inputBuf);
|
||||||
|
fis.close();
|
||||||
|
|
||||||
|
TJDecompressor tjd;
|
||||||
|
if(xform.op != TJTransform.OP_NONE || xform.options != 0
|
||||||
|
|| xform.cf != null) {
|
||||||
|
TJTransformer tjt = new TJTransformer(inputBuf);
|
||||||
|
TJTransform t[] = new TJTransform[1];
|
||||||
|
t[0] = xform;
|
||||||
|
t[0].options |= TJTransform.OPT_TRIM;
|
||||||
|
TJDecompressor[] tjdx = tjt.transform(t, 0);
|
||||||
|
tjd = tjdx[0];
|
||||||
|
}
|
||||||
|
else tjd = new TJDecompressor(inputBuf);
|
||||||
|
|
||||||
|
width = tjd.getWidth();
|
||||||
|
height = tjd.getHeight();
|
||||||
|
int inSubsamp = tjd.getSubsamp();
|
||||||
|
System.out.println("Source Image: " + width + " x " + height
|
||||||
|
+ " pixels, " + sampName[inSubsamp] + " subsampling");
|
||||||
|
if(outSubsamp < 0) outSubsamp = inSubsamp;
|
||||||
|
|
||||||
|
if(outFormat.equalsIgnoreCase("jpg")
|
||||||
|
&& (xform.op != TJTransform.OP_NONE || xform.options != 0)
|
||||||
|
&& scaleFactor.isOne()) {
|
||||||
|
file = new File(argv[1]);
|
||||||
|
FileOutputStream fos = new FileOutputStream(file);
|
||||||
|
fos.write(tjd.getJPEGBuf(), 0, tjd.getJPEGSize());
|
||||||
|
fos.close();
|
||||||
|
System.exit(0);
|
||||||
|
}
|
||||||
|
|
||||||
|
width = scaleFactor.getScaled(width);
|
||||||
|
height = scaleFactor.getScaled(height);
|
||||||
|
|
||||||
|
if(!outFormat.equalsIgnoreCase("jpg"))
|
||||||
|
img = tjd.decompress(width, height, BufferedImage.TYPE_INT_RGB,
|
||||||
|
flags);
|
||||||
|
else bmpBuf = tjd.decompress(width, 0, height, TJ.PF_BGRX, flags);
|
||||||
|
tjd.close();
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
img = ImageIO.read(file);
|
||||||
|
width = img.getWidth();
|
||||||
|
height = img.getHeight();
|
||||||
|
if(outSubsamp < 0) {
|
||||||
|
if(img.getType() == BufferedImage.TYPE_BYTE_GRAY)
|
||||||
|
outSubsamp = TJ.SAMP_GRAY;
|
||||||
|
else outSubsamp = TJ.SAMP_444;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
System.gc();
|
||||||
|
if(!display)
|
||||||
|
System.out.print("Dest. Image (" + outFormat + "): " + width + " x "
|
||||||
|
+ height + " pixels");
|
||||||
|
|
||||||
|
if(display) {
|
||||||
|
ImageIcon icon = new ImageIcon(img);
|
||||||
|
JLabel label = new JLabel(icon, JLabel.CENTER);
|
||||||
|
JOptionPane.showMessageDialog(null, label, "Output Image",
|
||||||
|
JOptionPane.PLAIN_MESSAGE);
|
||||||
|
}
|
||||||
|
else if(outFormat.equalsIgnoreCase("jpg")) {
|
||||||
|
System.out.println(", " + sampName[outSubsamp]
|
||||||
|
+ " subsampling, quality = " + outQual);
|
||||||
|
TJCompressor tjc = new TJCompressor();
|
||||||
|
int jpegSize;
|
||||||
|
byte[] jpegBuf;
|
||||||
|
|
||||||
|
tjc.setSubsamp(outSubsamp);
|
||||||
|
tjc.setJPEGQuality(outQual);
|
||||||
|
if(img != null)
|
||||||
|
jpegBuf = tjc.compress(img, flags);
|
||||||
|
else {
|
||||||
|
tjc.setSourceImage(bmpBuf, width, 0, height, TJ.PF_BGRX);
|
||||||
|
jpegBuf = tjc.compress(flags);
|
||||||
|
}
|
||||||
|
jpegSize = tjc.getCompressedSize();
|
||||||
|
tjc.close();
|
||||||
|
|
||||||
|
file = new File(argv[1]);
|
||||||
|
FileOutputStream fos = new FileOutputStream(file);
|
||||||
|
fos.write(jpegBuf, 0, jpegSize);
|
||||||
|
fos.close();
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
System.out.print("\n");
|
||||||
|
file = new File(argv[1]);
|
||||||
|
ImageIO.write(img, outFormat, file);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
catch(Exception e) {
|
||||||
|
e.printStackTrace();
|
||||||
|
System.exit(-1);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public void customFilter(ShortBuffer coeffBuffer, Rectangle bufferRegion,
|
||||||
|
Rectangle planeRegion, int componentIndex, int transformIndex,
|
||||||
|
TJTransform transform) throws Exception {
|
||||||
|
for(int i=0; i<bufferRegion.width*bufferRegion.height; i++) {
|
||||||
|
coeffBuffer.put(i, (short)(-coeffBuffer.get(i)));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
static TJScalingFactor sf [] = null;
|
||||||
|
};
|
||||||
896
java/TJUnitTest.java
Normal file
@@ -0,0 +1,896 @@
|
|||||||
|
/*
|
||||||
|
* Copyright (C)2011-2012 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.
|
||||||
|
*/
|
||||||
|
|
||||||
|
/*
|
||||||
|
* This program tests the various code paths in the TurboJPEG JNI Wrapper
|
||||||
|
*/
|
||||||
|
|
||||||
|
import java.io.*;
|
||||||
|
import java.util.*;
|
||||||
|
import java.awt.image.*;
|
||||||
|
import javax.imageio.*;
|
||||||
|
import java.nio.*;
|
||||||
|
import org.libjpegturbo.turbojpeg.*;
|
||||||
|
|
||||||
|
public class TJUnitTest {
|
||||||
|
|
||||||
|
private static final String classname =
|
||||||
|
new TJUnitTest().getClass().getName();
|
||||||
|
|
||||||
|
private static void usage() {
|
||||||
|
System.out.println("\nUSAGE: java " + classname + " [options]\n");
|
||||||
|
System.out.println("Options:\n");
|
||||||
|
System.out.println("-yuv = test YUV encoding/decoding support\n");
|
||||||
|
System.out.println("-bi = test BufferedImage support\n");
|
||||||
|
System.exit(1);
|
||||||
|
}
|
||||||
|
|
||||||
|
private final static String subNameLong[] = {
|
||||||
|
"4:4:4", "4:2:2", "4:2:0", "GRAY", "4:4:0"
|
||||||
|
};
|
||||||
|
private final static String subName[] = {
|
||||||
|
"444", "422", "420", "GRAY", "440"
|
||||||
|
};
|
||||||
|
|
||||||
|
private final static String pixFormatStr[] = {
|
||||||
|
"RGB", "BGR", "RGBX", "BGRX", "XBGR", "XRGB", "Grayscale",
|
||||||
|
"RGBA", "BGRA", "ABGR", "ARGB"
|
||||||
|
};
|
||||||
|
|
||||||
|
private final static int alphaOffset[] = {
|
||||||
|
-1, -1, -1, -1, -1, -1, -1, 3, 3, 0, 0
|
||||||
|
};
|
||||||
|
|
||||||
|
private final static int _3byteFormats[] = {
|
||||||
|
TJ.PF_RGB, TJ.PF_BGR
|
||||||
|
};
|
||||||
|
private final static int _3byteFormatsBI[] = {
|
||||||
|
BufferedImage.TYPE_3BYTE_BGR
|
||||||
|
};
|
||||||
|
private final static int _4byteFormats[] = {
|
||||||
|
TJ.PF_RGBX, TJ.PF_BGRX, TJ.PF_XBGR, TJ.PF_XRGB
|
||||||
|
};
|
||||||
|
private final static int _4byteFormatsBI[] = {
|
||||||
|
BufferedImage.TYPE_INT_BGR, BufferedImage.TYPE_INT_RGB,
|
||||||
|
BufferedImage.TYPE_4BYTE_ABGR, BufferedImage.TYPE_4BYTE_ABGR_PRE,
|
||||||
|
BufferedImage.TYPE_INT_ARGB, BufferedImage.TYPE_INT_ARGB_PRE
|
||||||
|
};
|
||||||
|
private final static int onlyGray[] = {
|
||||||
|
TJ.PF_GRAY
|
||||||
|
};
|
||||||
|
private final static int onlyGrayBI[] = {
|
||||||
|
BufferedImage.TYPE_BYTE_GRAY
|
||||||
|
};
|
||||||
|
private final static int onlyRGB[] = {
|
||||||
|
TJ.PF_RGB
|
||||||
|
};
|
||||||
|
|
||||||
|
private final static int YUVENCODE = 1;
|
||||||
|
private final static int YUVDECODE = 2;
|
||||||
|
private static int yuv = 0;
|
||||||
|
private static boolean bi = false;
|
||||||
|
|
||||||
|
private static int exitStatus = 0;
|
||||||
|
|
||||||
|
private static int biTypePF(int biType) {
|
||||||
|
ByteOrder byteOrder = ByteOrder.nativeOrder();
|
||||||
|
switch(biType) {
|
||||||
|
case BufferedImage.TYPE_3BYTE_BGR:
|
||||||
|
return TJ.PF_BGR;
|
||||||
|
case BufferedImage.TYPE_4BYTE_ABGR:
|
||||||
|
case BufferedImage.TYPE_4BYTE_ABGR_PRE:
|
||||||
|
return TJ.PF_XBGR;
|
||||||
|
case BufferedImage.TYPE_BYTE_GRAY:
|
||||||
|
return TJ.PF_GRAY;
|
||||||
|
case BufferedImage.TYPE_INT_BGR:
|
||||||
|
if(byteOrder == ByteOrder.BIG_ENDIAN)
|
||||||
|
return TJ.PF_XBGR;
|
||||||
|
else
|
||||||
|
return TJ.PF_RGBX;
|
||||||
|
case BufferedImage.TYPE_INT_RGB:
|
||||||
|
if(byteOrder == ByteOrder.BIG_ENDIAN)
|
||||||
|
return TJ.PF_XRGB;
|
||||||
|
else
|
||||||
|
return TJ.PF_BGRX;
|
||||||
|
case BufferedImage.TYPE_INT_ARGB:
|
||||||
|
case BufferedImage.TYPE_INT_ARGB_PRE:
|
||||||
|
if(byteOrder == ByteOrder.BIG_ENDIAN)
|
||||||
|
return TJ.PF_ARGB;
|
||||||
|
else
|
||||||
|
return TJ.PF_BGRA;
|
||||||
|
}
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
private static String biTypeStr(int biType) {
|
||||||
|
switch(biType) {
|
||||||
|
case BufferedImage.TYPE_3BYTE_BGR:
|
||||||
|
return "3BYTE_BGR";
|
||||||
|
case BufferedImage.TYPE_4BYTE_ABGR:
|
||||||
|
return "4BYTE_ABGR";
|
||||||
|
case BufferedImage.TYPE_4BYTE_ABGR_PRE:
|
||||||
|
return "4BYTE_ABGR_PRE";
|
||||||
|
case BufferedImage.TYPE_BYTE_GRAY:
|
||||||
|
return "BYTE_GRAY";
|
||||||
|
case BufferedImage.TYPE_INT_BGR:
|
||||||
|
return "INT_BGR";
|
||||||
|
case BufferedImage.TYPE_INT_RGB:
|
||||||
|
return "INT_RGB";
|
||||||
|
case BufferedImage.TYPE_INT_ARGB:
|
||||||
|
return "INT_ARGB";
|
||||||
|
case BufferedImage.TYPE_INT_ARGB_PRE:
|
||||||
|
return "INT_ARGB_PRE";
|
||||||
|
}
|
||||||
|
return "Unknown";
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
private static double getTime() {
|
||||||
|
return (double)System.nanoTime() / 1.0e9;
|
||||||
|
}
|
||||||
|
|
||||||
|
private static void initBuf(byte[] buf, int w, int pitch, int h, int pf,
|
||||||
|
int flags) throws Exception {
|
||||||
|
int roffset = TJ.getRedOffset(pf);
|
||||||
|
int goffset = TJ.getGreenOffset(pf);
|
||||||
|
int boffset = TJ.getBlueOffset(pf);
|
||||||
|
int aoffset = alphaOffset[pf];
|
||||||
|
int ps = TJ.getPixelSize(pf);
|
||||||
|
int index, row, col, halfway = 16;
|
||||||
|
|
||||||
|
Arrays.fill(buf, (byte)0);
|
||||||
|
if(pf == TJ.PF_GRAY) {
|
||||||
|
for(row = 0; row < h; row++) {
|
||||||
|
for(col = 0; col < w; col++) {
|
||||||
|
if((flags & TJ.FLAG_BOTTOMUP) != 0)
|
||||||
|
index = pitch * (h - row - 1) + col;
|
||||||
|
else index = pitch * row + col;
|
||||||
|
if(((row / 8) + (col / 8)) % 2 == 0)
|
||||||
|
buf[index] = (row < halfway) ? (byte)255 : 0;
|
||||||
|
else buf[index] = (row < halfway) ? 76 : (byte)226;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
for(row = 0; row < h; row++) {
|
||||||
|
for(col = 0; col < w; col++) {
|
||||||
|
if((flags & TJ.FLAG_BOTTOMUP) != 0)
|
||||||
|
index = pitch * (h - row - 1) + col * ps;
|
||||||
|
else index = pitch * row + col * ps;
|
||||||
|
if(((row / 8) + (col / 8)) % 2 == 0) {
|
||||||
|
if(row < halfway) {
|
||||||
|
buf[index + roffset] = (byte)255;
|
||||||
|
buf[index + goffset] = (byte)255;
|
||||||
|
buf[index + boffset] = (byte)255;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
buf[index + roffset] = (byte)255;
|
||||||
|
if(row >= halfway) buf[index + goffset] = (byte)255;
|
||||||
|
}
|
||||||
|
if (aoffset >= 0) buf[index + aoffset] = (byte)255;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private static void initIntBuf(int[] buf, int w, int pitch, int h, int pf,
|
||||||
|
int flags) throws Exception {
|
||||||
|
int rshift = TJ.getRedOffset(pf) * 8;
|
||||||
|
int gshift = TJ.getGreenOffset(pf) * 8;
|
||||||
|
int bshift = TJ.getBlueOffset(pf) * 8;
|
||||||
|
int ashift = alphaOffset[pf] * 8;
|
||||||
|
int index, row, col, halfway = 16;
|
||||||
|
|
||||||
|
Arrays.fill(buf, 0);
|
||||||
|
for(row = 0; row < h; row++) {
|
||||||
|
for(col = 0; col < w; col++) {
|
||||||
|
if((flags & TJ.FLAG_BOTTOMUP) != 0)
|
||||||
|
index = pitch * (h - row - 1) + col;
|
||||||
|
else index = pitch * row + col;
|
||||||
|
if(((row / 8) + (col / 8)) % 2 == 0) {
|
||||||
|
if(row < halfway) {
|
||||||
|
buf[index] |= (255 << rshift);
|
||||||
|
buf[index] |= (255 << gshift);
|
||||||
|
buf[index] |= (255 << bshift);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
buf[index] |= (255 << rshift);
|
||||||
|
if(row >= halfway) buf[index] |= (255 << gshift);
|
||||||
|
}
|
||||||
|
if (ashift >= 0) buf[index] |= (255 << ashift);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private static void initImg(BufferedImage img, int pf, int flags)
|
||||||
|
throws Exception {
|
||||||
|
WritableRaster wr = img.getRaster();
|
||||||
|
int imgType = img.getType();
|
||||||
|
if(imgType == BufferedImage.TYPE_INT_RGB
|
||||||
|
|| imgType == BufferedImage.TYPE_INT_BGR
|
||||||
|
|| imgType == BufferedImage.TYPE_INT_ARGB
|
||||||
|
|| imgType == BufferedImage.TYPE_INT_ARGB_PRE) {
|
||||||
|
SinglePixelPackedSampleModel sm =
|
||||||
|
(SinglePixelPackedSampleModel)img.getSampleModel();
|
||||||
|
int pitch = sm.getScanlineStride();
|
||||||
|
DataBufferInt db = (DataBufferInt)wr.getDataBuffer();
|
||||||
|
int[] buf = db.getData();
|
||||||
|
initIntBuf(buf, img.getWidth(), pitch, img.getHeight(), pf, flags);
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
ComponentSampleModel sm = (ComponentSampleModel)img.getSampleModel();
|
||||||
|
int pitch = sm.getScanlineStride();
|
||||||
|
DataBufferByte db = (DataBufferByte)wr.getDataBuffer();
|
||||||
|
byte[] buf = db.getData();
|
||||||
|
initBuf(buf, img.getWidth(), pitch, img.getHeight(), pf, flags);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private static void checkVal(int row, int col, int v, String vname, int cv)
|
||||||
|
throws Exception {
|
||||||
|
v = (v < 0) ? v + 256 : v;
|
||||||
|
if(v < cv - 1 || v > cv + 1) {
|
||||||
|
throw new Exception("\nComp. " + vname + " at " + row + "," + col
|
||||||
|
+ " should be " + cv + ", not " + v + "\n");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private static void checkVal0(int row, int col, int v, String vname)
|
||||||
|
throws Exception {
|
||||||
|
v = (v < 0) ? v + 256 : v;
|
||||||
|
if(v > 1) {
|
||||||
|
throw new Exception("\nComp. " + vname + " at " + row + "," + col
|
||||||
|
+ " should be 0, not " + v + "\n");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private static void checkVal255(int row, int col, int v, String vname)
|
||||||
|
throws Exception {
|
||||||
|
v = (v < 0) ? v + 256 : v;
|
||||||
|
if(v < 254) {
|
||||||
|
throw new Exception("\nComp. " + vname + " at " + row + "," + col
|
||||||
|
+ " should be 255, not " + v + "\n");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private static int checkBuf(byte[] buf, int w, int pitch, int h, int pf,
|
||||||
|
int subsamp, TJScalingFactor sf, int flags) throws Exception {
|
||||||
|
int roffset = TJ.getRedOffset(pf);
|
||||||
|
int goffset = TJ.getGreenOffset(pf);
|
||||||
|
int boffset = TJ.getBlueOffset(pf);
|
||||||
|
int aoffset = alphaOffset[pf];
|
||||||
|
int ps = TJ.getPixelSize(pf);
|
||||||
|
int index, row, col, retval = 1;
|
||||||
|
int halfway = 16 * sf.getNum() / sf.getDenom();
|
||||||
|
int blockSize = 8 * sf.getNum() / sf.getDenom();
|
||||||
|
|
||||||
|
try {
|
||||||
|
for(row = 0; row < halfway; row++) {
|
||||||
|
for(col = 0; col < w; col++) {
|
||||||
|
if((flags & TJ.FLAG_BOTTOMUP) != 0)
|
||||||
|
index = pitch * (h - row - 1) + col * ps;
|
||||||
|
else index = pitch * row + col * ps;
|
||||||
|
byte r = buf[index + roffset];
|
||||||
|
byte g = buf[index + goffset];
|
||||||
|
byte b = buf[index + boffset];
|
||||||
|
byte a = aoffset >= 0 ? buf[index + aoffset] : (byte)255;
|
||||||
|
if(((row / blockSize) + (col / blockSize)) % 2 == 0) {
|
||||||
|
if(row < halfway) {
|
||||||
|
checkVal255(row, col, r, "R");
|
||||||
|
checkVal255(row, col, g, "G");
|
||||||
|
checkVal255(row, col, b, "B");
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
checkVal0(row, col, r, "R");
|
||||||
|
checkVal0(row, col, g, "G");
|
||||||
|
checkVal0(row, col, b, "B");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
if(subsamp == TJ.SAMP_GRAY) {
|
||||||
|
if(row < halfway) {
|
||||||
|
checkVal(row, col, r, "R", 76);
|
||||||
|
checkVal(row, col, g, "G", 76);
|
||||||
|
checkVal(row, col, b, "B", 76);
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
checkVal(row, col, r, "R", 226);
|
||||||
|
checkVal(row, col, g, "G", 226);
|
||||||
|
checkVal(row, col, b, "B", 226);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
checkVal255(row, col, r, "R");
|
||||||
|
if(row < halfway) {
|
||||||
|
checkVal0(row, col, g, "G");
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
checkVal255(row, col, g, "G");
|
||||||
|
}
|
||||||
|
checkVal0(row, col, b, "B");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
checkVal255(row, col, a, "A");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
catch(Exception e) {
|
||||||
|
System.out.println(e);
|
||||||
|
retval = 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
if(retval == 0) {
|
||||||
|
System.out.print("\n");
|
||||||
|
for(row = 0; row < h; row++) {
|
||||||
|
for(col = 0; col < w; col++) {
|
||||||
|
int r = buf[pitch * row + col * ps + roffset];
|
||||||
|
int g = buf[pitch * row + col * ps + goffset];
|
||||||
|
int b = 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.print("\n");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return retval;
|
||||||
|
}
|
||||||
|
|
||||||
|
private static int checkIntBuf(int[] buf, int w, int pitch, int h, int pf,
|
||||||
|
int subsamp, TJScalingFactor sf, int flags) throws Exception {
|
||||||
|
int rshift = TJ.getRedOffset(pf) * 8;
|
||||||
|
int gshift = TJ.getGreenOffset(pf) * 8;
|
||||||
|
int bshift = TJ.getBlueOffset(pf) * 8;
|
||||||
|
int ashift = alphaOffset[pf] * 8;
|
||||||
|
int index, row, col, retval = 1;
|
||||||
|
int halfway = 16 * sf.getNum() / sf.getDenom();
|
||||||
|
int blockSize = 8 * sf.getNum() / sf.getDenom();
|
||||||
|
|
||||||
|
try {
|
||||||
|
for(row = 0; row < halfway; row++) {
|
||||||
|
for(col = 0; col < w; col++) {
|
||||||
|
if((flags & TJ.FLAG_BOTTOMUP) != 0)
|
||||||
|
index = pitch * (h - row - 1) + col;
|
||||||
|
else index = pitch * row + col;
|
||||||
|
int r = (buf[index] >> rshift) & 0xFF;
|
||||||
|
int g = (buf[index] >> gshift) & 0xFF;
|
||||||
|
int b = (buf[index] >> bshift) & 0xFF;
|
||||||
|
int a = ashift >= 0 ? (buf[index] >> ashift) & 0xFF : 255;
|
||||||
|
if(((row / blockSize) + (col / blockSize)) % 2 == 0) {
|
||||||
|
if(row < halfway) {
|
||||||
|
checkVal255(row, col, r, "R");
|
||||||
|
checkVal255(row, col, g, "G");
|
||||||
|
checkVal255(row, col, b, "B");
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
checkVal0(row, col, r, "R");
|
||||||
|
checkVal0(row, col, g, "G");
|
||||||
|
checkVal0(row, col, b, "B");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
if(subsamp == TJ.SAMP_GRAY) {
|
||||||
|
if(row < halfway) {
|
||||||
|
checkVal(row, col, r, "R", 76);
|
||||||
|
checkVal(row, col, g, "G", 76);
|
||||||
|
checkVal(row, col, b, "B", 76);
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
checkVal(row, col, r, "R", 226);
|
||||||
|
checkVal(row, col, g, "G", 226);
|
||||||
|
checkVal(row, col, b, "B", 226);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
checkVal255(row, col, r, "R");
|
||||||
|
if(row < halfway) {
|
||||||
|
checkVal0(row, col, g, "G");
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
checkVal255(row, col, g, "G");
|
||||||
|
}
|
||||||
|
checkVal0(row, col, b, "B");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
checkVal255(row, col, a, "A");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
catch(Exception e) {
|
||||||
|
System.out.println(e);
|
||||||
|
retval = 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
if(retval == 0) {
|
||||||
|
System.out.print("\n");
|
||||||
|
for(row = 0; row < h; row++) {
|
||||||
|
for(col = 0; col < w; col++) {
|
||||||
|
int r = (buf[pitch * row + col] >> rshift) & 0xFF;
|
||||||
|
int g = (buf[pitch * row + col] >> gshift) & 0xFF;
|
||||||
|
int b = (buf[pitch * row + col] >> bshift) & 0xFF;
|
||||||
|
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.print("\n");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return retval;
|
||||||
|
}
|
||||||
|
|
||||||
|
private static int checkImg(BufferedImage img, int pf,
|
||||||
|
int subsamp, TJScalingFactor sf, int flags) throws Exception {
|
||||||
|
WritableRaster wr = img.getRaster();
|
||||||
|
int imgType = img.getType();
|
||||||
|
if(imgType == BufferedImage.TYPE_INT_RGB
|
||||||
|
|| imgType == BufferedImage.TYPE_INT_BGR
|
||||||
|
|| imgType == BufferedImage.TYPE_INT_ARGB
|
||||||
|
|| imgType == BufferedImage.TYPE_INT_ARGB_PRE) {
|
||||||
|
SinglePixelPackedSampleModel sm =
|
||||||
|
(SinglePixelPackedSampleModel)img.getSampleModel();
|
||||||
|
int pitch = sm.getScanlineStride();
|
||||||
|
DataBufferInt db = (DataBufferInt)wr.getDataBuffer();
|
||||||
|
int[] buf = db.getData();
|
||||||
|
return checkIntBuf(buf, img.getWidth(), pitch, img.getHeight(), pf,
|
||||||
|
subsamp, sf, flags);
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
ComponentSampleModel sm = (ComponentSampleModel)img.getSampleModel();
|
||||||
|
int pitch = sm.getScanlineStride();
|
||||||
|
DataBufferByte db = (DataBufferByte)wr.getDataBuffer();
|
||||||
|
byte[] buf = db.getData();
|
||||||
|
return checkBuf(buf, img.getWidth(), pitch, img.getHeight(), pf, subsamp,
|
||||||
|
sf, flags);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private static int PAD(int v, int p) {
|
||||||
|
return ((v + (p) - 1) & (~((p) - 1)));
|
||||||
|
}
|
||||||
|
|
||||||
|
private static int checkBufYUV(byte[] buf, int size, int w, int h,
|
||||||
|
int subsamp) throws Exception {
|
||||||
|
int row, col;
|
||||||
|
int hsf = TJ.getMCUWidth(subsamp)/8, vsf = TJ.getMCUHeight(subsamp)/8;
|
||||||
|
int pw = PAD(w, hsf), ph = PAD(h, vsf);
|
||||||
|
int cw = pw / hsf, ch = ph / vsf;
|
||||||
|
int ypitch = PAD(pw, 4), uvpitch = PAD(cw, 4);
|
||||||
|
int retval = 1;
|
||||||
|
int correctsize = ypitch * ph
|
||||||
|
+ (subsamp == TJ.SAMP_GRAY ? 0 : uvpitch * ch * 2);
|
||||||
|
int halfway = 16;
|
||||||
|
|
||||||
|
try {
|
||||||
|
if(size != correctsize)
|
||||||
|
throw new Exception("\nIncorrect size " + size + ". Should be "
|
||||||
|
+ correctsize);
|
||||||
|
|
||||||
|
for(row = 0; row < ph; row++) {
|
||||||
|
for(col = 0; col < pw; col++) {
|
||||||
|
byte y = buf[ypitch * row + col];
|
||||||
|
if(((row / 8) + (col / 8)) % 2 == 0) {
|
||||||
|
if(row < halfway) checkVal255(row, col, y, "Y");
|
||||||
|
else checkVal0(row, col, y, "Y");
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
if(row < halfway) checkVal(row, col, y, "Y", 76);
|
||||||
|
else checkVal(row, col, y, "Y", 226);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if(subsamp != TJ.SAMP_GRAY) {
|
||||||
|
halfway = 16 / vsf;
|
||||||
|
for(row = 0; row < ch; row++) {
|
||||||
|
for(col = 0; col < cw; col++) {
|
||||||
|
byte u = buf[ypitch * ph + (uvpitch * row + col)],
|
||||||
|
v = buf[ypitch * ph + uvpitch * ch + (uvpitch * row + col)];
|
||||||
|
if(((row * vsf / 8) + (col * hsf / 8)) % 2 == 0) {
|
||||||
|
checkVal(row, col, u, "U", 128);
|
||||||
|
checkVal(row, col, v, "V", 128);
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
if(row < halfway) {
|
||||||
|
checkVal(row, col, u, "U", 85);
|
||||||
|
checkVal255(row, col, v, "V");
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
checkVal0(row, col, u, "U");
|
||||||
|
checkVal(row, col, v, "V", 149);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
catch(Exception e) {
|
||||||
|
System.out.println(e);
|
||||||
|
retval = 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
if(retval == 0) {
|
||||||
|
for(row = 0; row < ph; row++) {
|
||||||
|
for(col = 0; col < pw; col++) {
|
||||||
|
int y = buf[ypitch * row + col];
|
||||||
|
if(y < 0) y += 256;
|
||||||
|
System.out.format("%3d ", y);
|
||||||
|
}
|
||||||
|
System.out.print("\n");
|
||||||
|
}
|
||||||
|
System.out.print("\n");
|
||||||
|
for(row = 0; row < ch; row++) {
|
||||||
|
for(col = 0; col < cw; col++) {
|
||||||
|
int u = buf[ypitch * ph + (uvpitch * row + col)];
|
||||||
|
if(u < 0) u += 256;
|
||||||
|
System.out.format("%3d ", u);
|
||||||
|
}
|
||||||
|
System.out.print("\n");
|
||||||
|
}
|
||||||
|
System.out.print("\n");
|
||||||
|
for(row = 0; row < ch; row++) {
|
||||||
|
for(col = 0; col < cw; col++) {
|
||||||
|
int v = buf[ypitch * ph + uvpitch * ch + (uvpitch * row + col)];
|
||||||
|
if(v < 0) v += 256;
|
||||||
|
System.out.format("%3d ", v);
|
||||||
|
}
|
||||||
|
System.out.print("\n");
|
||||||
|
}
|
||||||
|
System.out.print("\n");
|
||||||
|
}
|
||||||
|
|
||||||
|
return retval;
|
||||||
|
}
|
||||||
|
|
||||||
|
private static void writeJPEG(byte[] jpegBuf, int jpegBufSize,
|
||||||
|
String filename) throws Exception {
|
||||||
|
File file = new File(filename);
|
||||||
|
FileOutputStream fos = new FileOutputStream(file);
|
||||||
|
fos.write(jpegBuf, 0, jpegBufSize);
|
||||||
|
fos.close();
|
||||||
|
}
|
||||||
|
|
||||||
|
private static int compTest(TJCompressor tjc, byte[] dstBuf, int w,
|
||||||
|
int h, int pf, String baseName, int subsamp, int jpegQual,
|
||||||
|
int flags) throws Exception {
|
||||||
|
String tempstr;
|
||||||
|
byte[] srcBuf = null;
|
||||||
|
BufferedImage img = null;
|
||||||
|
String pfStr;
|
||||||
|
double t;
|
||||||
|
int size = 0, ps, imgType = pf;
|
||||||
|
|
||||||
|
if (bi) {
|
||||||
|
pf = biTypePF(imgType);
|
||||||
|
pfStr = biTypeStr(imgType);
|
||||||
|
}
|
||||||
|
else pfStr = pixFormatStr[pf];
|
||||||
|
ps = TJ.getPixelSize(pf);
|
||||||
|
|
||||||
|
System.out.print(pfStr + " ");
|
||||||
|
if(bi) System.out.print("(" + pixFormatStr[pf] + ") ");
|
||||||
|
if((flags & TJ.FLAG_BOTTOMUP) != 0) System.out.print("Bottom-Up");
|
||||||
|
else System.out.print("Top-Down ");
|
||||||
|
System.out.print(" -> " + subNameLong[subsamp] + " ");
|
||||||
|
if(yuv == YUVENCODE) System.out.print("YUV ... ");
|
||||||
|
else System.out.print("Q" + jpegQual + " ... ");
|
||||||
|
|
||||||
|
if(bi) {
|
||||||
|
img = new BufferedImage(w, h, imgType);
|
||||||
|
initImg(img, pf, flags);
|
||||||
|
tempstr = baseName + "_enc_" + pfStr + "_"
|
||||||
|
+ (((flags & TJ.FLAG_BOTTOMUP) != 0) ? "BU" : "TD") + "_"
|
||||||
|
+ subName[subsamp] + "_Q" + jpegQual + ".png";
|
||||||
|
File file = new File(tempstr);
|
||||||
|
ImageIO.write(img, "png", file);
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
srcBuf = new byte[w * h * ps + 1];
|
||||||
|
initBuf(srcBuf, w, w * ps, h, pf, flags);
|
||||||
|
}
|
||||||
|
Arrays.fill(dstBuf, (byte)0);
|
||||||
|
|
||||||
|
t = getTime();
|
||||||
|
tjc.setSubsamp(subsamp);
|
||||||
|
tjc.setJPEGQuality(jpegQual);
|
||||||
|
if(bi) {
|
||||||
|
if(yuv == YUVENCODE) tjc.encodeYUV(img, dstBuf, flags);
|
||||||
|
else tjc.compress(img, dstBuf, flags);
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
tjc.setSourceImage(srcBuf, w, 0, h, pf);
|
||||||
|
if(yuv == YUVENCODE) tjc.encodeYUV(dstBuf, flags);
|
||||||
|
else tjc.compress(dstBuf, flags);
|
||||||
|
}
|
||||||
|
size = tjc.getCompressedSize();
|
||||||
|
t = getTime() - t;
|
||||||
|
|
||||||
|
if(yuv == YUVENCODE)
|
||||||
|
tempstr = baseName + "_enc_" + pfStr + "_"
|
||||||
|
+ (((flags & TJ.FLAG_BOTTOMUP) != 0) ? "BU" : "TD") + "_"
|
||||||
|
+ subName[subsamp] + ".yuv";
|
||||||
|
else
|
||||||
|
tempstr = baseName + "_enc_" + pfStr + "_"
|
||||||
|
+ (((flags & TJ.FLAG_BOTTOMUP) != 0) ? "BU" : "TD") + "_"
|
||||||
|
+ subName[subsamp] + "_Q" + jpegQual + ".jpg";
|
||||||
|
writeJPEG(dstBuf, size, tempstr);
|
||||||
|
|
||||||
|
if(yuv == YUVENCODE) {
|
||||||
|
if(checkBufYUV(dstBuf, size, w, h, subsamp) == 1)
|
||||||
|
System.out.print("Passed.");
|
||||||
|
else {
|
||||||
|
System.out.print("FAILED!"); exitStatus = -1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else System.out.print("Done.");
|
||||||
|
System.out.format(" %.6f ms\n", t * 1000.);
|
||||||
|
System.out.println(" Result in " + tempstr);
|
||||||
|
|
||||||
|
return size;
|
||||||
|
}
|
||||||
|
|
||||||
|
private static void decompTest(TJDecompressor tjd, byte[] jpegBuf,
|
||||||
|
int jpegSize, int w, int h, int pf, String baseName, int subsamp,
|
||||||
|
int flags, TJScalingFactor sf) throws Exception {
|
||||||
|
String pfStr, tempstr;
|
||||||
|
double t;
|
||||||
|
int scaledWidth = sf.getScaled(w);
|
||||||
|
int scaledHeight = sf.getScaled(h);
|
||||||
|
int temp1, temp2, imgType = pf;
|
||||||
|
BufferedImage img = null;
|
||||||
|
byte[] dstBuf = null;
|
||||||
|
|
||||||
|
if(yuv == YUVENCODE) return;
|
||||||
|
|
||||||
|
if (bi) {
|
||||||
|
pf = biTypePF(imgType);
|
||||||
|
pfStr = biTypeStr(imgType);
|
||||||
|
}
|
||||||
|
else pfStr = pixFormatStr[pf];
|
||||||
|
|
||||||
|
System.out.print("JPEG -> ");
|
||||||
|
if(yuv == YUVDECODE)
|
||||||
|
System.out.print("YUV " + subName[subsamp] + " ... ");
|
||||||
|
else {
|
||||||
|
System.out.print(pfStr + " ");
|
||||||
|
if(bi) System.out.print("(" + pixFormatStr[pf] + ") ");
|
||||||
|
if((flags & TJ.FLAG_BOTTOMUP) != 0) System.out.print("Bottom-Up ");
|
||||||
|
else System.out.print("Top-Down ");
|
||||||
|
if(!sf.isOne())
|
||||||
|
System.out.print(sf.getNum() + "/" + sf.getDenom() + " ... ");
|
||||||
|
else System.out.print("... ");
|
||||||
|
}
|
||||||
|
|
||||||
|
t = getTime();
|
||||||
|
tjd.setJPEGImage(jpegBuf, jpegSize);
|
||||||
|
if(tjd.getWidth() != w || tjd.getHeight() != h
|
||||||
|
|| tjd.getSubsamp() != subsamp)
|
||||||
|
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(yuv == YUVDECODE) dstBuf = tjd.decompressToYUV(flags);
|
||||||
|
else {
|
||||||
|
if(bi)
|
||||||
|
img = tjd.decompress(scaledWidth, scaledHeight, imgType, flags);
|
||||||
|
else dstBuf = tjd.decompress(scaledWidth, 0, scaledHeight, pf, flags);
|
||||||
|
}
|
||||||
|
t = getTime() - t;
|
||||||
|
|
||||||
|
if(bi) {
|
||||||
|
tempstr = baseName + "_dec_" + pfStr + "_"
|
||||||
|
+ (((flags & TJ.FLAG_BOTTOMUP) != 0) ? "BU" : "TD") + "_"
|
||||||
|
+ subName[subsamp] + "_" + (double)sf.getNum() / (double)sf.getDenom()
|
||||||
|
+ "x" + ".png";
|
||||||
|
File file = new File(tempstr);
|
||||||
|
ImageIO.write(img, "png", file);
|
||||||
|
}
|
||||||
|
|
||||||
|
if(yuv == YUVDECODE) {
|
||||||
|
if(checkBufYUV(dstBuf, dstBuf.length, w, h, subsamp) == 1)
|
||||||
|
System.out.print("Passed.");
|
||||||
|
else {
|
||||||
|
System.out.print("FAILED!"); exitStatus = -1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
if((bi && checkImg(img, pf, subsamp, sf, flags) == 1)
|
||||||
|
|| (!bi && checkBuf(dstBuf, scaledWidth, scaledWidth
|
||||||
|
* TJ.getPixelSize(pf), scaledHeight, pf, subsamp, sf, flags) == 1))
|
||||||
|
System.out.print("Passed.");
|
||||||
|
else {
|
||||||
|
System.out.print("FAILED!"); exitStatus = -1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
System.out.format(" %.6f ms\n", t * 1000.);
|
||||||
|
}
|
||||||
|
|
||||||
|
private static void decompTest(TJDecompressor tjd, byte[] jpegBuf,
|
||||||
|
int jpegSize, int w, int h, int pf, String baseName, int subsamp,
|
||||||
|
int flags) throws Exception {
|
||||||
|
int i;
|
||||||
|
if((subsamp == TJ.SAMP_444 || subsamp == TJ.SAMP_GRAY) && yuv == 0) {
|
||||||
|
TJScalingFactor sf[] = TJ.getScalingFactors();
|
||||||
|
for(i = 0; i < sf.length; i++)
|
||||||
|
decompTest(tjd, jpegBuf, jpegSize, w, h, pf, baseName, subsamp,
|
||||||
|
flags, sf[i]);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
decompTest(tjd, jpegBuf, jpegSize, w, h, pf, baseName, subsamp,
|
||||||
|
flags, new TJScalingFactor(1, 1));
|
||||||
|
System.out.print("\n");
|
||||||
|
}
|
||||||
|
|
||||||
|
private static void doTest(int w, int h, int[] formats, int subsamp,
|
||||||
|
String baseName) throws Exception {
|
||||||
|
TJCompressor tjc = null;
|
||||||
|
TJDecompressor tjd = null;
|
||||||
|
int size;
|
||||||
|
byte[] dstBuf;
|
||||||
|
|
||||||
|
if(yuv == YUVENCODE) dstBuf = new byte[TJ.bufSizeYUV(w, h, subsamp)];
|
||||||
|
else dstBuf = new byte[TJ.bufSize(w, h, subsamp)];
|
||||||
|
|
||||||
|
try {
|
||||||
|
tjc = new TJCompressor();
|
||||||
|
tjd = new TJDecompressor();
|
||||||
|
|
||||||
|
for(int pf : formats) {
|
||||||
|
for(int i = 0; i < 2; i++) {
|
||||||
|
int flags = 0;
|
||||||
|
if (subsamp == TJ.SAMP_422 || subsamp == TJ.SAMP_420
|
||||||
|
|| subsamp == TJ.SAMP_440)
|
||||||
|
flags |= TJ.FLAG_FASTUPSAMPLE;
|
||||||
|
if(i == 1) {
|
||||||
|
if(yuv == YUVDECODE) {
|
||||||
|
tjc.close(); tjd.close(); return;
|
||||||
|
}
|
||||||
|
else 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)
|
||||||
|
decompTest(tjd, dstBuf, size, w, h, pf + (TJ.PF_RGBA - TJ.PF_RGBX),
|
||||||
|
baseName, subsamp, flags);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
catch(Exception e) {
|
||||||
|
if(tjc != null) tjc.close();
|
||||||
|
if(tjd != null) tjd.close();
|
||||||
|
throw e;
|
||||||
|
}
|
||||||
|
if(tjc != null) tjc.close();
|
||||||
|
if(tjd != null) tjd.close();
|
||||||
|
}
|
||||||
|
|
||||||
|
private static void bufSizeTest() throws Exception {
|
||||||
|
int w, h, i, subsamp;
|
||||||
|
byte[] srcBuf, jpegBuf;
|
||||||
|
TJCompressor tjc = null;
|
||||||
|
Random r = new Random();
|
||||||
|
|
||||||
|
try {
|
||||||
|
tjc = new TJCompressor();
|
||||||
|
System.out.println("Buffer size regression test");
|
||||||
|
for(subsamp = 0; subsamp < TJ.NUMSAMP; subsamp++) {
|
||||||
|
for(w = 1; w < 48; w++) {
|
||||||
|
int maxh = (w == 1) ? 2048 : 48;
|
||||||
|
for(h = 1; h < maxh; h++) {
|
||||||
|
if(h % 100 == 0)
|
||||||
|
System.out.format("%04d x %04d\b\b\b\b\b\b\b\b\b\b\b", w, h);
|
||||||
|
srcBuf = new byte[w * h * 4];
|
||||||
|
jpegBuf = new byte[TJ.bufSize(w, h, subsamp)];
|
||||||
|
for(i = 0; i < w * h * 4; i++) {
|
||||||
|
srcBuf[i] = (byte)(r.nextInt(2) * 255);
|
||||||
|
}
|
||||||
|
tjc.setSourceImage(srcBuf, w, 0, h, TJ.PF_BGRX);
|
||||||
|
tjc.setSubsamp(subsamp);
|
||||||
|
tjc.setJPEGQuality(100);
|
||||||
|
tjc.compress(jpegBuf, 0);
|
||||||
|
|
||||||
|
srcBuf = new byte[h * w * 4];
|
||||||
|
jpegBuf = new byte[TJ.bufSize(h, w, subsamp)];
|
||||||
|
for(i = 0; i < h * w * 4; i++) {
|
||||||
|
srcBuf[i] = (byte)(r.nextInt(2) * 255);
|
||||||
|
}
|
||||||
|
tjc.setSourceImage(srcBuf, h, 0, w, TJ.PF_BGRX);
|
||||||
|
tjc.compress(jpegBuf, 0);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
System.out.println("Done. ");
|
||||||
|
}
|
||||||
|
catch(Exception e) {
|
||||||
|
if(tjc != null) tjc.close();
|
||||||
|
throw e;
|
||||||
|
}
|
||||||
|
if(tjc != null) tjc.close();
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void main(String argv[]) {
|
||||||
|
try {
|
||||||
|
String testName = "javatest";
|
||||||
|
boolean doyuv = false;
|
||||||
|
for(int i = 0; i < argv.length; i++) {
|
||||||
|
if(argv[i].equalsIgnoreCase("-yuv")) doyuv = true;
|
||||||
|
if(argv[i].substring(0, 1).equalsIgnoreCase("-h")
|
||||||
|
|| argv[i].equalsIgnoreCase("-?"))
|
||||||
|
usage();
|
||||||
|
if(argv[i].equalsIgnoreCase("-bi")) {
|
||||||
|
bi = true;
|
||||||
|
testName = "javabitest";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if(doyuv) yuv = YUVENCODE;
|
||||||
|
doTest(35, 39, bi ? _3byteFormatsBI : _3byteFormats, TJ.SAMP_444, testName);
|
||||||
|
doTest(39, 41, bi ? _4byteFormatsBI : _4byteFormats, TJ.SAMP_444, testName);
|
||||||
|
doTest(41, 35, bi ? _3byteFormatsBI : _3byteFormats, TJ.SAMP_422,
|
||||||
|
testName);
|
||||||
|
doTest(35, 39, bi ? _4byteFormatsBI : _4byteFormats, TJ.SAMP_422,
|
||||||
|
testName);
|
||||||
|
doTest(39, 41, bi ? _3byteFormatsBI : _3byteFormats, TJ.SAMP_420,
|
||||||
|
testName);
|
||||||
|
doTest(41, 35, bi ? _4byteFormatsBI : _4byteFormats, TJ.SAMP_420,
|
||||||
|
testName);
|
||||||
|
doTest(35, 39, bi ? _3byteFormatsBI : _3byteFormats, TJ.SAMP_440,
|
||||||
|
testName);
|
||||||
|
doTest(39, 41, bi ? _4byteFormatsBI : _4byteFormats, TJ.SAMP_440,
|
||||||
|
testName);
|
||||||
|
doTest(35, 39, bi ? onlyGrayBI : onlyGray, TJ.SAMP_GRAY, testName);
|
||||||
|
doTest(39, 41, bi ? _3byteFormatsBI : _3byteFormats, TJ.SAMP_GRAY,
|
||||||
|
testName);
|
||||||
|
doTest(41, 35, bi ? _4byteFormatsBI : _4byteFormats, TJ.SAMP_GRAY,
|
||||||
|
testName);
|
||||||
|
if(!doyuv && !bi) bufSizeTest();
|
||||||
|
if(doyuv && !bi) {
|
||||||
|
yuv = YUVDECODE;
|
||||||
|
doTest(48, 48, onlyRGB, TJ.SAMP_444, "javatest_yuv0");
|
||||||
|
doTest(35, 39, onlyRGB, TJ.SAMP_444, "javatest_yuv1");
|
||||||
|
doTest(48, 48, onlyRGB, TJ.SAMP_422, "javatest_yuv0");
|
||||||
|
doTest(39, 41, onlyRGB, TJ.SAMP_422, "javatest_yuv1");
|
||||||
|
doTest(48, 48, onlyRGB, TJ.SAMP_420, "javatest_yuv0");
|
||||||
|
doTest(41, 35, onlyRGB, TJ.SAMP_420, "javatest_yuv1");
|
||||||
|
doTest(48, 48, onlyRGB, TJ.SAMP_440, "javatest_yuv0");
|
||||||
|
doTest(35, 39, onlyRGB, TJ.SAMP_440, "javatest_yuv1");
|
||||||
|
doTest(48, 48, onlyRGB, TJ.SAMP_GRAY, "javatest_yuv0");
|
||||||
|
doTest(35, 39, onlyRGB, TJ.SAMP_GRAY, "javatest_yuv1");
|
||||||
|
doTest(48, 48, onlyGray, TJ.SAMP_GRAY, "javatest_yuv0");
|
||||||
|
doTest(39, 41, onlyGray, TJ.SAMP_GRAY, "javatest_yuv1");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
catch(Exception e) {
|
||||||
|
e.printStackTrace();
|
||||||
|
exitStatus = -1;
|
||||||
|
}
|
||||||
|
System.exit(exitStatus);
|
||||||
|
}
|
||||||
|
}
|
||||||
43
java/doc/allclasses-frame.html
Normal file
@@ -0,0 +1,43 @@
|
|||||||
|
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
|
||||||
|
<!--NewPage-->
|
||||||
|
<HTML>
|
||||||
|
<HEAD>
|
||||||
|
<!-- Generated by javadoc (build 1.6.0_33) on Fri Jun 29 14:29:14 CDT 2012 -->
|
||||||
|
<TITLE>
|
||||||
|
All Classes
|
||||||
|
</TITLE>
|
||||||
|
|
||||||
|
<META NAME="date" CONTENT="2012-06-29">
|
||||||
|
|
||||||
|
<LINK REL ="stylesheet" TYPE="text/css" HREF="stylesheet.css" TITLE="Style">
|
||||||
|
|
||||||
|
|
||||||
|
</HEAD>
|
||||||
|
|
||||||
|
<BODY BGCOLOR="white">
|
||||||
|
<FONT size="+1" CLASS="FrameHeadingFont">
|
||||||
|
<B>All Classes</B></FONT>
|
||||||
|
<BR>
|
||||||
|
|
||||||
|
<TABLE BORDER="0" WIDTH="100%" SUMMARY="">
|
||||||
|
<TR>
|
||||||
|
<TD NOWRAP><FONT CLASS="FrameItemFont"><A HREF="org/libjpegturbo/turbojpeg/TJ.html" title="class in org.libjpegturbo.turbojpeg" target="classFrame">TJ</A>
|
||||||
|
<BR>
|
||||||
|
<A HREF="org/libjpegturbo/turbojpeg/TJCompressor.html" title="class in org.libjpegturbo.turbojpeg" target="classFrame">TJCompressor</A>
|
||||||
|
<BR>
|
||||||
|
<A HREF="org/libjpegturbo/turbojpeg/TJCustomFilter.html" title="interface in org.libjpegturbo.turbojpeg" target="classFrame"><I>TJCustomFilter</I></A>
|
||||||
|
<BR>
|
||||||
|
<A HREF="org/libjpegturbo/turbojpeg/TJDecompressor.html" title="class in org.libjpegturbo.turbojpeg" target="classFrame">TJDecompressor</A>
|
||||||
|
<BR>
|
||||||
|
<A HREF="org/libjpegturbo/turbojpeg/TJScalingFactor.html" title="class in org.libjpegturbo.turbojpeg" target="classFrame">TJScalingFactor</A>
|
||||||
|
<BR>
|
||||||
|
<A HREF="org/libjpegturbo/turbojpeg/TJTransform.html" title="class in org.libjpegturbo.turbojpeg" target="classFrame">TJTransform</A>
|
||||||
|
<BR>
|
||||||
|
<A HREF="org/libjpegturbo/turbojpeg/TJTransformer.html" title="class in org.libjpegturbo.turbojpeg" target="classFrame">TJTransformer</A>
|
||||||
|
<BR>
|
||||||
|
</FONT></TD>
|
||||||
|
</TR>
|
||||||
|
</TABLE>
|
||||||
|
|
||||||
|
</BODY>
|
||||||
|
</HTML>
|
||||||
43
java/doc/allclasses-noframe.html
Normal file
@@ -0,0 +1,43 @@
|
|||||||
|
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
|
||||||
|
<!--NewPage-->
|
||||||
|
<HTML>
|
||||||
|
<HEAD>
|
||||||
|
<!-- Generated by javadoc (build 1.6.0_33) on Fri Jun 29 14:29:14 CDT 2012 -->
|
||||||
|
<TITLE>
|
||||||
|
All Classes
|
||||||
|
</TITLE>
|
||||||
|
|
||||||
|
<META NAME="date" CONTENT="2012-06-29">
|
||||||
|
|
||||||
|
<LINK REL ="stylesheet" TYPE="text/css" HREF="stylesheet.css" TITLE="Style">
|
||||||
|
|
||||||
|
|
||||||
|
</HEAD>
|
||||||
|
|
||||||
|
<BODY BGCOLOR="white">
|
||||||
|
<FONT size="+1" CLASS="FrameHeadingFont">
|
||||||
|
<B>All Classes</B></FONT>
|
||||||
|
<BR>
|
||||||
|
|
||||||
|
<TABLE BORDER="0" WIDTH="100%" SUMMARY="">
|
||||||
|
<TR>
|
||||||
|
<TD NOWRAP><FONT CLASS="FrameItemFont"><A HREF="org/libjpegturbo/turbojpeg/TJ.html" title="class in org.libjpegturbo.turbojpeg">TJ</A>
|
||||||
|
<BR>
|
||||||
|
<A HREF="org/libjpegturbo/turbojpeg/TJCompressor.html" title="class in org.libjpegturbo.turbojpeg">TJCompressor</A>
|
||||||
|
<BR>
|
||||||
|
<A HREF="org/libjpegturbo/turbojpeg/TJCustomFilter.html" title="interface in org.libjpegturbo.turbojpeg"><I>TJCustomFilter</I></A>
|
||||||
|
<BR>
|
||||||
|
<A HREF="org/libjpegturbo/turbojpeg/TJDecompressor.html" title="class in org.libjpegturbo.turbojpeg">TJDecompressor</A>
|
||||||
|
<BR>
|
||||||
|
<A HREF="org/libjpegturbo/turbojpeg/TJScalingFactor.html" title="class in org.libjpegturbo.turbojpeg">TJScalingFactor</A>
|
||||||
|
<BR>
|
||||||
|
<A HREF="org/libjpegturbo/turbojpeg/TJTransform.html" title="class in org.libjpegturbo.turbojpeg">TJTransform</A>
|
||||||
|
<BR>
|
||||||
|
<A HREF="org/libjpegturbo/turbojpeg/TJTransformer.html" title="class in org.libjpegturbo.turbojpeg">TJTransformer</A>
|
||||||
|
<BR>
|
||||||
|
</FONT></TD>
|
||||||
|
</TR>
|
||||||
|
</TABLE>
|
||||||
|
|
||||||
|
</BODY>
|
||||||
|
</HTML>
|
||||||
416
java/doc/constant-values.html
Normal file
@@ -0,0 +1,416 @@
|
|||||||
|
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
|
||||||
|
<!--NewPage-->
|
||||||
|
<HTML>
|
||||||
|
<HEAD>
|
||||||
|
<!-- Generated by javadoc (build 1.6.0_33) on Fri Jun 29 14:29:14 CDT 2012 -->
|
||||||
|
<TITLE>
|
||||||
|
Constant Field Values
|
||||||
|
</TITLE>
|
||||||
|
|
||||||
|
<META NAME="date" CONTENT="2012-06-29">
|
||||||
|
|
||||||
|
<LINK REL ="stylesheet" TYPE="text/css" HREF="stylesheet.css" TITLE="Style">
|
||||||
|
|
||||||
|
<SCRIPT type="text/javascript">
|
||||||
|
function windowTitle()
|
||||||
|
{
|
||||||
|
if (location.href.indexOf('is-external=true') == -1) {
|
||||||
|
parent.document.title="Constant Field Values";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</SCRIPT>
|
||||||
|
<NOSCRIPT>
|
||||||
|
</NOSCRIPT>
|
||||||
|
|
||||||
|
</HEAD>
|
||||||
|
|
||||||
|
<BODY BGCOLOR="white" onload="windowTitle();">
|
||||||
|
<HR>
|
||||||
|
|
||||||
|
|
||||||
|
<!-- ========= START OF TOP NAVBAR ======= -->
|
||||||
|
<A NAME="navbar_top"><!-- --></A>
|
||||||
|
<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
|
||||||
|
<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
|
||||||
|
<TR>
|
||||||
|
<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
|
||||||
|
<A NAME="navbar_top_firstrow"><!-- --></A>
|
||||||
|
<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
|
||||||
|
<TR ALIGN="center" VALIGN="top">
|
||||||
|
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="org/libjpegturbo/turbojpeg/package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
|
||||||
|
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <FONT CLASS="NavBarFont1">Class</FONT> </TD>
|
||||||
|
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="org/libjpegturbo/turbojpeg/package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
|
||||||
|
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
|
||||||
|
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
|
||||||
|
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
|
||||||
|
</TR>
|
||||||
|
</TABLE>
|
||||||
|
</TD>
|
||||||
|
<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
|
||||||
|
</EM>
|
||||||
|
</TD>
|
||||||
|
</TR>
|
||||||
|
|
||||||
|
<TR>
|
||||||
|
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
|
||||||
|
PREV
|
||||||
|
NEXT</FONT></TD>
|
||||||
|
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
|
||||||
|
<A HREF="index.html?constant-values.html" target="_top"><B>FRAMES</B></A>
|
||||||
|
<A HREF="constant-values.html" target="_top"><B>NO FRAMES</B></A>
|
||||||
|
<SCRIPT type="text/javascript">
|
||||||
|
<!--
|
||||||
|
if(window==top) {
|
||||||
|
document.writeln('<A HREF="allclasses-noframe.html"><B>All Classes</B></A>');
|
||||||
|
}
|
||||||
|
//-->
|
||||||
|
</SCRIPT>
|
||||||
|
<NOSCRIPT>
|
||||||
|
<A HREF="allclasses-noframe.html"><B>All Classes</B></A>
|
||||||
|
</NOSCRIPT>
|
||||||
|
|
||||||
|
|
||||||
|
</FONT></TD>
|
||||||
|
</TR>
|
||||||
|
</TABLE>
|
||||||
|
<A NAME="skip-navbar_top"></A>
|
||||||
|
<!-- ========= END OF TOP NAVBAR ========= -->
|
||||||
|
|
||||||
|
<HR>
|
||||||
|
<CENTER>
|
||||||
|
<H1>
|
||||||
|
Constant Field Values</H1>
|
||||||
|
</CENTER>
|
||||||
|
<HR SIZE="4" NOSHADE>
|
||||||
|
<B>Contents</B><UL>
|
||||||
|
<LI><A HREF="#org.libjpegturbo">org.libjpegturbo.*</A>
|
||||||
|
</UL>
|
||||||
|
|
||||||
|
<A NAME="org.libjpegturbo"><!-- --></A>
|
||||||
|
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
|
||||||
|
<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
|
||||||
|
<TH ALIGN="left"><FONT SIZE="+2">
|
||||||
|
org.libjpegturbo.*</FONT></TH>
|
||||||
|
</TR>
|
||||||
|
</TABLE>
|
||||||
|
|
||||||
|
<P>
|
||||||
|
|
||||||
|
<TABLE BORDER="1" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
|
||||||
|
<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
|
||||||
|
<TH ALIGN="left" COLSPAN="3">org.libjpegturbo.turbojpeg.<A HREF="org/libjpegturbo/turbojpeg/TJ.html" title="class in org.libjpegturbo.turbojpeg">TJ</A></TH>
|
||||||
|
</TR>
|
||||||
|
<TR BGCOLOR="white" CLASS="TableRowColor">
|
||||||
|
<A NAME="org.libjpegturbo.turbojpeg.TJ.FLAG_ACCURATEDCT"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
|
||||||
|
<CODE>public static final int</CODE></FONT></TD>
|
||||||
|
<TD ALIGN="left"><CODE><A HREF="org/libjpegturbo/turbojpeg/TJ.html#FLAG_ACCURATEDCT">FLAG_ACCURATEDCT</A></CODE></TD>
|
||||||
|
<TD ALIGN="right"><CODE>4096</CODE></TD>
|
||||||
|
</TR>
|
||||||
|
<TR BGCOLOR="white" CLASS="TableRowColor">
|
||||||
|
<A NAME="org.libjpegturbo.turbojpeg.TJ.FLAG_BOTTOMUP"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
|
||||||
|
<CODE>public static final int</CODE></FONT></TD>
|
||||||
|
<TD ALIGN="left"><CODE><A HREF="org/libjpegturbo/turbojpeg/TJ.html#FLAG_BOTTOMUP">FLAG_BOTTOMUP</A></CODE></TD>
|
||||||
|
<TD ALIGN="right"><CODE>2</CODE></TD>
|
||||||
|
</TR>
|
||||||
|
<TR BGCOLOR="white" CLASS="TableRowColor">
|
||||||
|
<A NAME="org.libjpegturbo.turbojpeg.TJ.FLAG_FASTDCT"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
|
||||||
|
<CODE>public static final int</CODE></FONT></TD>
|
||||||
|
<TD ALIGN="left"><CODE><A HREF="org/libjpegturbo/turbojpeg/TJ.html#FLAG_FASTDCT">FLAG_FASTDCT</A></CODE></TD>
|
||||||
|
<TD ALIGN="right"><CODE>2048</CODE></TD>
|
||||||
|
</TR>
|
||||||
|
<TR BGCOLOR="white" CLASS="TableRowColor">
|
||||||
|
<A NAME="org.libjpegturbo.turbojpeg.TJ.FLAG_FASTUPSAMPLE"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
|
||||||
|
<CODE>public static final int</CODE></FONT></TD>
|
||||||
|
<TD ALIGN="left"><CODE><A HREF="org/libjpegturbo/turbojpeg/TJ.html#FLAG_FASTUPSAMPLE">FLAG_FASTUPSAMPLE</A></CODE></TD>
|
||||||
|
<TD ALIGN="right"><CODE>256</CODE></TD>
|
||||||
|
</TR>
|
||||||
|
<TR BGCOLOR="white" CLASS="TableRowColor">
|
||||||
|
<A NAME="org.libjpegturbo.turbojpeg.TJ.FLAG_FORCEMMX"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
|
||||||
|
<CODE>public static final int</CODE></FONT></TD>
|
||||||
|
<TD ALIGN="left"><CODE><A HREF="org/libjpegturbo/turbojpeg/TJ.html#FLAG_FORCEMMX">FLAG_FORCEMMX</A></CODE></TD>
|
||||||
|
<TD ALIGN="right"><CODE>8</CODE></TD>
|
||||||
|
</TR>
|
||||||
|
<TR BGCOLOR="white" CLASS="TableRowColor">
|
||||||
|
<A NAME="org.libjpegturbo.turbojpeg.TJ.FLAG_FORCESSE"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
|
||||||
|
<CODE>public static final int</CODE></FONT></TD>
|
||||||
|
<TD ALIGN="left"><CODE><A HREF="org/libjpegturbo/turbojpeg/TJ.html#FLAG_FORCESSE">FLAG_FORCESSE</A></CODE></TD>
|
||||||
|
<TD ALIGN="right"><CODE>16</CODE></TD>
|
||||||
|
</TR>
|
||||||
|
<TR BGCOLOR="white" CLASS="TableRowColor">
|
||||||
|
<A NAME="org.libjpegturbo.turbojpeg.TJ.FLAG_FORCESSE2"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
|
||||||
|
<CODE>public static final int</CODE></FONT></TD>
|
||||||
|
<TD ALIGN="left"><CODE><A HREF="org/libjpegturbo/turbojpeg/TJ.html#FLAG_FORCESSE2">FLAG_FORCESSE2</A></CODE></TD>
|
||||||
|
<TD ALIGN="right"><CODE>32</CODE></TD>
|
||||||
|
</TR>
|
||||||
|
<TR BGCOLOR="white" CLASS="TableRowColor">
|
||||||
|
<A NAME="org.libjpegturbo.turbojpeg.TJ.FLAG_FORCESSE3"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
|
||||||
|
<CODE>public static final int</CODE></FONT></TD>
|
||||||
|
<TD ALIGN="left"><CODE><A HREF="org/libjpegturbo/turbojpeg/TJ.html#FLAG_FORCESSE3">FLAG_FORCESSE3</A></CODE></TD>
|
||||||
|
<TD ALIGN="right"><CODE>128</CODE></TD>
|
||||||
|
</TR>
|
||||||
|
<TR BGCOLOR="white" CLASS="TableRowColor">
|
||||||
|
<A NAME="org.libjpegturbo.turbojpeg.TJ.NUMPF"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
|
||||||
|
<CODE>public static final int</CODE></FONT></TD>
|
||||||
|
<TD ALIGN="left"><CODE><A HREF="org/libjpegturbo/turbojpeg/TJ.html#NUMPF">NUMPF</A></CODE></TD>
|
||||||
|
<TD ALIGN="right"><CODE>11</CODE></TD>
|
||||||
|
</TR>
|
||||||
|
<TR BGCOLOR="white" CLASS="TableRowColor">
|
||||||
|
<A NAME="org.libjpegturbo.turbojpeg.TJ.NUMSAMP"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
|
||||||
|
<CODE>public static final int</CODE></FONT></TD>
|
||||||
|
<TD ALIGN="left"><CODE><A HREF="org/libjpegturbo/turbojpeg/TJ.html#NUMSAMP">NUMSAMP</A></CODE></TD>
|
||||||
|
<TD ALIGN="right"><CODE>5</CODE></TD>
|
||||||
|
</TR>
|
||||||
|
<TR BGCOLOR="white" CLASS="TableRowColor">
|
||||||
|
<A NAME="org.libjpegturbo.turbojpeg.TJ.PF_ABGR"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
|
||||||
|
<CODE>public static final int</CODE></FONT></TD>
|
||||||
|
<TD ALIGN="left"><CODE><A HREF="org/libjpegturbo/turbojpeg/TJ.html#PF_ABGR">PF_ABGR</A></CODE></TD>
|
||||||
|
<TD ALIGN="right"><CODE>9</CODE></TD>
|
||||||
|
</TR>
|
||||||
|
<TR BGCOLOR="white" CLASS="TableRowColor">
|
||||||
|
<A NAME="org.libjpegturbo.turbojpeg.TJ.PF_ARGB"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
|
||||||
|
<CODE>public static final int</CODE></FONT></TD>
|
||||||
|
<TD ALIGN="left"><CODE><A HREF="org/libjpegturbo/turbojpeg/TJ.html#PF_ARGB">PF_ARGB</A></CODE></TD>
|
||||||
|
<TD ALIGN="right"><CODE>10</CODE></TD>
|
||||||
|
</TR>
|
||||||
|
<TR BGCOLOR="white" CLASS="TableRowColor">
|
||||||
|
<A NAME="org.libjpegturbo.turbojpeg.TJ.PF_BGR"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
|
||||||
|
<CODE>public static final int</CODE></FONT></TD>
|
||||||
|
<TD ALIGN="left"><CODE><A HREF="org/libjpegturbo/turbojpeg/TJ.html#PF_BGR">PF_BGR</A></CODE></TD>
|
||||||
|
<TD ALIGN="right"><CODE>1</CODE></TD>
|
||||||
|
</TR>
|
||||||
|
<TR BGCOLOR="white" CLASS="TableRowColor">
|
||||||
|
<A NAME="org.libjpegturbo.turbojpeg.TJ.PF_BGRA"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
|
||||||
|
<CODE>public static final int</CODE></FONT></TD>
|
||||||
|
<TD ALIGN="left"><CODE><A HREF="org/libjpegturbo/turbojpeg/TJ.html#PF_BGRA">PF_BGRA</A></CODE></TD>
|
||||||
|
<TD ALIGN="right"><CODE>8</CODE></TD>
|
||||||
|
</TR>
|
||||||
|
<TR BGCOLOR="white" CLASS="TableRowColor">
|
||||||
|
<A NAME="org.libjpegturbo.turbojpeg.TJ.PF_BGRX"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
|
||||||
|
<CODE>public static final int</CODE></FONT></TD>
|
||||||
|
<TD ALIGN="left"><CODE><A HREF="org/libjpegturbo/turbojpeg/TJ.html#PF_BGRX">PF_BGRX</A></CODE></TD>
|
||||||
|
<TD ALIGN="right"><CODE>3</CODE></TD>
|
||||||
|
</TR>
|
||||||
|
<TR BGCOLOR="white" CLASS="TableRowColor">
|
||||||
|
<A NAME="org.libjpegturbo.turbojpeg.TJ.PF_GRAY"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
|
||||||
|
<CODE>public static final int</CODE></FONT></TD>
|
||||||
|
<TD ALIGN="left"><CODE><A HREF="org/libjpegturbo/turbojpeg/TJ.html#PF_GRAY">PF_GRAY</A></CODE></TD>
|
||||||
|
<TD ALIGN="right"><CODE>6</CODE></TD>
|
||||||
|
</TR>
|
||||||
|
<TR BGCOLOR="white" CLASS="TableRowColor">
|
||||||
|
<A NAME="org.libjpegturbo.turbojpeg.TJ.PF_RGB"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
|
||||||
|
<CODE>public static final int</CODE></FONT></TD>
|
||||||
|
<TD ALIGN="left"><CODE><A HREF="org/libjpegturbo/turbojpeg/TJ.html#PF_RGB">PF_RGB</A></CODE></TD>
|
||||||
|
<TD ALIGN="right"><CODE>0</CODE></TD>
|
||||||
|
</TR>
|
||||||
|
<TR BGCOLOR="white" CLASS="TableRowColor">
|
||||||
|
<A NAME="org.libjpegturbo.turbojpeg.TJ.PF_RGBA"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
|
||||||
|
<CODE>public static final int</CODE></FONT></TD>
|
||||||
|
<TD ALIGN="left"><CODE><A HREF="org/libjpegturbo/turbojpeg/TJ.html#PF_RGBA">PF_RGBA</A></CODE></TD>
|
||||||
|
<TD ALIGN="right"><CODE>7</CODE></TD>
|
||||||
|
</TR>
|
||||||
|
<TR BGCOLOR="white" CLASS="TableRowColor">
|
||||||
|
<A NAME="org.libjpegturbo.turbojpeg.TJ.PF_RGBX"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
|
||||||
|
<CODE>public static final int</CODE></FONT></TD>
|
||||||
|
<TD ALIGN="left"><CODE><A HREF="org/libjpegturbo/turbojpeg/TJ.html#PF_RGBX">PF_RGBX</A></CODE></TD>
|
||||||
|
<TD ALIGN="right"><CODE>2</CODE></TD>
|
||||||
|
</TR>
|
||||||
|
<TR BGCOLOR="white" CLASS="TableRowColor">
|
||||||
|
<A NAME="org.libjpegturbo.turbojpeg.TJ.PF_XBGR"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
|
||||||
|
<CODE>public static final int</CODE></FONT></TD>
|
||||||
|
<TD ALIGN="left"><CODE><A HREF="org/libjpegturbo/turbojpeg/TJ.html#PF_XBGR">PF_XBGR</A></CODE></TD>
|
||||||
|
<TD ALIGN="right"><CODE>4</CODE></TD>
|
||||||
|
</TR>
|
||||||
|
<TR BGCOLOR="white" CLASS="TableRowColor">
|
||||||
|
<A NAME="org.libjpegturbo.turbojpeg.TJ.PF_XRGB"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
|
||||||
|
<CODE>public static final int</CODE></FONT></TD>
|
||||||
|
<TD ALIGN="left"><CODE><A HREF="org/libjpegturbo/turbojpeg/TJ.html#PF_XRGB">PF_XRGB</A></CODE></TD>
|
||||||
|
<TD ALIGN="right"><CODE>5</CODE></TD>
|
||||||
|
</TR>
|
||||||
|
<TR BGCOLOR="white" CLASS="TableRowColor">
|
||||||
|
<A NAME="org.libjpegturbo.turbojpeg.TJ.SAMP_420"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
|
||||||
|
<CODE>public static final int</CODE></FONT></TD>
|
||||||
|
<TD ALIGN="left"><CODE><A HREF="org/libjpegturbo/turbojpeg/TJ.html#SAMP_420">SAMP_420</A></CODE></TD>
|
||||||
|
<TD ALIGN="right"><CODE>2</CODE></TD>
|
||||||
|
</TR>
|
||||||
|
<TR BGCOLOR="white" CLASS="TableRowColor">
|
||||||
|
<A NAME="org.libjpegturbo.turbojpeg.TJ.SAMP_422"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
|
||||||
|
<CODE>public static final int</CODE></FONT></TD>
|
||||||
|
<TD ALIGN="left"><CODE><A HREF="org/libjpegturbo/turbojpeg/TJ.html#SAMP_422">SAMP_422</A></CODE></TD>
|
||||||
|
<TD ALIGN="right"><CODE>1</CODE></TD>
|
||||||
|
</TR>
|
||||||
|
<TR BGCOLOR="white" CLASS="TableRowColor">
|
||||||
|
<A NAME="org.libjpegturbo.turbojpeg.TJ.SAMP_440"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
|
||||||
|
<CODE>public static final int</CODE></FONT></TD>
|
||||||
|
<TD ALIGN="left"><CODE><A HREF="org/libjpegturbo/turbojpeg/TJ.html#SAMP_440">SAMP_440</A></CODE></TD>
|
||||||
|
<TD ALIGN="right"><CODE>4</CODE></TD>
|
||||||
|
</TR>
|
||||||
|
<TR BGCOLOR="white" CLASS="TableRowColor">
|
||||||
|
<A NAME="org.libjpegturbo.turbojpeg.TJ.SAMP_444"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
|
||||||
|
<CODE>public static final int</CODE></FONT></TD>
|
||||||
|
<TD ALIGN="left"><CODE><A HREF="org/libjpegturbo/turbojpeg/TJ.html#SAMP_444">SAMP_444</A></CODE></TD>
|
||||||
|
<TD ALIGN="right"><CODE>0</CODE></TD>
|
||||||
|
</TR>
|
||||||
|
<TR BGCOLOR="white" CLASS="TableRowColor">
|
||||||
|
<A NAME="org.libjpegturbo.turbojpeg.TJ.SAMP_GRAY"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
|
||||||
|
<CODE>public static final int</CODE></FONT></TD>
|
||||||
|
<TD ALIGN="left"><CODE><A HREF="org/libjpegturbo/turbojpeg/TJ.html#SAMP_GRAY">SAMP_GRAY</A></CODE></TD>
|
||||||
|
<TD ALIGN="right"><CODE>3</CODE></TD>
|
||||||
|
</TR>
|
||||||
|
</FONT></TD>
|
||||||
|
</TR>
|
||||||
|
</TABLE>
|
||||||
|
|
||||||
|
<P>
|
||||||
|
|
||||||
|
<P>
|
||||||
|
|
||||||
|
<TABLE BORDER="1" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
|
||||||
|
<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
|
||||||
|
<TH ALIGN="left" COLSPAN="3">org.libjpegturbo.turbojpeg.<A HREF="org/libjpegturbo/turbojpeg/TJTransform.html" title="class in org.libjpegturbo.turbojpeg">TJTransform</A></TH>
|
||||||
|
</TR>
|
||||||
|
<TR BGCOLOR="white" CLASS="TableRowColor">
|
||||||
|
<A NAME="org.libjpegturbo.turbojpeg.TJTransform.NUMOP"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
|
||||||
|
<CODE>public static final int</CODE></FONT></TD>
|
||||||
|
<TD ALIGN="left"><CODE><A HREF="org/libjpegturbo/turbojpeg/TJTransform.html#NUMOP">NUMOP</A></CODE></TD>
|
||||||
|
<TD ALIGN="right"><CODE>8</CODE></TD>
|
||||||
|
</TR>
|
||||||
|
<TR BGCOLOR="white" CLASS="TableRowColor">
|
||||||
|
<A NAME="org.libjpegturbo.turbojpeg.TJTransform.OP_HFLIP"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
|
||||||
|
<CODE>public static final int</CODE></FONT></TD>
|
||||||
|
<TD ALIGN="left"><CODE><A HREF="org/libjpegturbo/turbojpeg/TJTransform.html#OP_HFLIP">OP_HFLIP</A></CODE></TD>
|
||||||
|
<TD ALIGN="right"><CODE>1</CODE></TD>
|
||||||
|
</TR>
|
||||||
|
<TR BGCOLOR="white" CLASS="TableRowColor">
|
||||||
|
<A NAME="org.libjpegturbo.turbojpeg.TJTransform.OP_NONE"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
|
||||||
|
<CODE>public static final int</CODE></FONT></TD>
|
||||||
|
<TD ALIGN="left"><CODE><A HREF="org/libjpegturbo/turbojpeg/TJTransform.html#OP_NONE">OP_NONE</A></CODE></TD>
|
||||||
|
<TD ALIGN="right"><CODE>0</CODE></TD>
|
||||||
|
</TR>
|
||||||
|
<TR BGCOLOR="white" CLASS="TableRowColor">
|
||||||
|
<A NAME="org.libjpegturbo.turbojpeg.TJTransform.OP_ROT180"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
|
||||||
|
<CODE>public static final int</CODE></FONT></TD>
|
||||||
|
<TD ALIGN="left"><CODE><A HREF="org/libjpegturbo/turbojpeg/TJTransform.html#OP_ROT180">OP_ROT180</A></CODE></TD>
|
||||||
|
<TD ALIGN="right"><CODE>6</CODE></TD>
|
||||||
|
</TR>
|
||||||
|
<TR BGCOLOR="white" CLASS="TableRowColor">
|
||||||
|
<A NAME="org.libjpegturbo.turbojpeg.TJTransform.OP_ROT270"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
|
||||||
|
<CODE>public static final int</CODE></FONT></TD>
|
||||||
|
<TD ALIGN="left"><CODE><A HREF="org/libjpegturbo/turbojpeg/TJTransform.html#OP_ROT270">OP_ROT270</A></CODE></TD>
|
||||||
|
<TD ALIGN="right"><CODE>7</CODE></TD>
|
||||||
|
</TR>
|
||||||
|
<TR BGCOLOR="white" CLASS="TableRowColor">
|
||||||
|
<A NAME="org.libjpegturbo.turbojpeg.TJTransform.OP_ROT90"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
|
||||||
|
<CODE>public static final int</CODE></FONT></TD>
|
||||||
|
<TD ALIGN="left"><CODE><A HREF="org/libjpegturbo/turbojpeg/TJTransform.html#OP_ROT90">OP_ROT90</A></CODE></TD>
|
||||||
|
<TD ALIGN="right"><CODE>5</CODE></TD>
|
||||||
|
</TR>
|
||||||
|
<TR BGCOLOR="white" CLASS="TableRowColor">
|
||||||
|
<A NAME="org.libjpegturbo.turbojpeg.TJTransform.OP_TRANSPOSE"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
|
||||||
|
<CODE>public static final int</CODE></FONT></TD>
|
||||||
|
<TD ALIGN="left"><CODE><A HREF="org/libjpegturbo/turbojpeg/TJTransform.html#OP_TRANSPOSE">OP_TRANSPOSE</A></CODE></TD>
|
||||||
|
<TD ALIGN="right"><CODE>3</CODE></TD>
|
||||||
|
</TR>
|
||||||
|
<TR BGCOLOR="white" CLASS="TableRowColor">
|
||||||
|
<A NAME="org.libjpegturbo.turbojpeg.TJTransform.OP_TRANSVERSE"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
|
||||||
|
<CODE>public static final int</CODE></FONT></TD>
|
||||||
|
<TD ALIGN="left"><CODE><A HREF="org/libjpegturbo/turbojpeg/TJTransform.html#OP_TRANSVERSE">OP_TRANSVERSE</A></CODE></TD>
|
||||||
|
<TD ALIGN="right"><CODE>4</CODE></TD>
|
||||||
|
</TR>
|
||||||
|
<TR BGCOLOR="white" CLASS="TableRowColor">
|
||||||
|
<A NAME="org.libjpegturbo.turbojpeg.TJTransform.OP_VFLIP"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
|
||||||
|
<CODE>public static final int</CODE></FONT></TD>
|
||||||
|
<TD ALIGN="left"><CODE><A HREF="org/libjpegturbo/turbojpeg/TJTransform.html#OP_VFLIP">OP_VFLIP</A></CODE></TD>
|
||||||
|
<TD ALIGN="right"><CODE>2</CODE></TD>
|
||||||
|
</TR>
|
||||||
|
<TR BGCOLOR="white" CLASS="TableRowColor">
|
||||||
|
<A NAME="org.libjpegturbo.turbojpeg.TJTransform.OPT_CROP"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
|
||||||
|
<CODE>public static final int</CODE></FONT></TD>
|
||||||
|
<TD ALIGN="left"><CODE><A HREF="org/libjpegturbo/turbojpeg/TJTransform.html#OPT_CROP">OPT_CROP</A></CODE></TD>
|
||||||
|
<TD ALIGN="right"><CODE>4</CODE></TD>
|
||||||
|
</TR>
|
||||||
|
<TR BGCOLOR="white" CLASS="TableRowColor">
|
||||||
|
<A NAME="org.libjpegturbo.turbojpeg.TJTransform.OPT_GRAY"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
|
||||||
|
<CODE>public static final int</CODE></FONT></TD>
|
||||||
|
<TD ALIGN="left"><CODE><A HREF="org/libjpegturbo/turbojpeg/TJTransform.html#OPT_GRAY">OPT_GRAY</A></CODE></TD>
|
||||||
|
<TD ALIGN="right"><CODE>8</CODE></TD>
|
||||||
|
</TR>
|
||||||
|
<TR BGCOLOR="white" CLASS="TableRowColor">
|
||||||
|
<A NAME="org.libjpegturbo.turbojpeg.TJTransform.OPT_NOOUTPUT"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
|
||||||
|
<CODE>public static final int</CODE></FONT></TD>
|
||||||
|
<TD ALIGN="left"><CODE><A HREF="org/libjpegturbo/turbojpeg/TJTransform.html#OPT_NOOUTPUT">OPT_NOOUTPUT</A></CODE></TD>
|
||||||
|
<TD ALIGN="right"><CODE>16</CODE></TD>
|
||||||
|
</TR>
|
||||||
|
<TR BGCOLOR="white" CLASS="TableRowColor">
|
||||||
|
<A NAME="org.libjpegturbo.turbojpeg.TJTransform.OPT_PERFECT"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
|
||||||
|
<CODE>public static final int</CODE></FONT></TD>
|
||||||
|
<TD ALIGN="left"><CODE><A HREF="org/libjpegturbo/turbojpeg/TJTransform.html#OPT_PERFECT">OPT_PERFECT</A></CODE></TD>
|
||||||
|
<TD ALIGN="right"><CODE>1</CODE></TD>
|
||||||
|
</TR>
|
||||||
|
<TR BGCOLOR="white" CLASS="TableRowColor">
|
||||||
|
<A NAME="org.libjpegturbo.turbojpeg.TJTransform.OPT_TRIM"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
|
||||||
|
<CODE>public static final int</CODE></FONT></TD>
|
||||||
|
<TD ALIGN="left"><CODE><A HREF="org/libjpegturbo/turbojpeg/TJTransform.html#OPT_TRIM">OPT_TRIM</A></CODE></TD>
|
||||||
|
<TD ALIGN="right"><CODE>2</CODE></TD>
|
||||||
|
</TR>
|
||||||
|
</FONT></TD>
|
||||||
|
</TR>
|
||||||
|
</TABLE>
|
||||||
|
|
||||||
|
<P>
|
||||||
|
|
||||||
|
<P>
|
||||||
|
<HR>
|
||||||
|
|
||||||
|
|
||||||
|
<!-- ======= START OF BOTTOM NAVBAR ====== -->
|
||||||
|
<A NAME="navbar_bottom"><!-- --></A>
|
||||||
|
<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
|
||||||
|
<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
|
||||||
|
<TR>
|
||||||
|
<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
|
||||||
|
<A NAME="navbar_bottom_firstrow"><!-- --></A>
|
||||||
|
<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
|
||||||
|
<TR ALIGN="center" VALIGN="top">
|
||||||
|
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="org/libjpegturbo/turbojpeg/package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
|
||||||
|
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <FONT CLASS="NavBarFont1">Class</FONT> </TD>
|
||||||
|
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="org/libjpegturbo/turbojpeg/package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
|
||||||
|
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
|
||||||
|
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
|
||||||
|
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
|
||||||
|
</TR>
|
||||||
|
</TABLE>
|
||||||
|
</TD>
|
||||||
|
<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
|
||||||
|
</EM>
|
||||||
|
</TD>
|
||||||
|
</TR>
|
||||||
|
|
||||||
|
<TR>
|
||||||
|
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
|
||||||
|
PREV
|
||||||
|
NEXT</FONT></TD>
|
||||||
|
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
|
||||||
|
<A HREF="index.html?constant-values.html" target="_top"><B>FRAMES</B></A>
|
||||||
|
<A HREF="constant-values.html" target="_top"><B>NO FRAMES</B></A>
|
||||||
|
<SCRIPT type="text/javascript">
|
||||||
|
<!--
|
||||||
|
if(window==top) {
|
||||||
|
document.writeln('<A HREF="allclasses-noframe.html"><B>All Classes</B></A>');
|
||||||
|
}
|
||||||
|
//-->
|
||||||
|
</SCRIPT>
|
||||||
|
<NOSCRIPT>
|
||||||
|
<A HREF="allclasses-noframe.html"><B>All Classes</B></A>
|
||||||
|
</NOSCRIPT>
|
||||||
|
|
||||||
|
|
||||||
|
</FONT></TD>
|
||||||
|
</TR>
|
||||||
|
</TABLE>
|
||||||
|
<A NAME="skip-navbar_bottom"></A>
|
||||||
|
<!-- ======== END OF BOTTOM NAVBAR ======= -->
|
||||||
|
|
||||||
|
<HR>
|
||||||
|
|
||||||
|
</BODY>
|
||||||
|
</HTML>
|
||||||
142
java/doc/deprecated-list.html
Normal file
@@ -0,0 +1,142 @@
|
|||||||
|
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
|
||||||
|
<!--NewPage-->
|
||||||
|
<HTML>
|
||||||
|
<HEAD>
|
||||||
|
<!-- Generated by javadoc (build 1.6.0_33) on Fri Jun 29 14:29:14 CDT 2012 -->
|
||||||
|
<TITLE>
|
||||||
|
Deprecated List
|
||||||
|
</TITLE>
|
||||||
|
|
||||||
|
<META NAME="date" CONTENT="2012-06-29">
|
||||||
|
|
||||||
|
<LINK REL ="stylesheet" TYPE="text/css" HREF="stylesheet.css" TITLE="Style">
|
||||||
|
|
||||||
|
<SCRIPT type="text/javascript">
|
||||||
|
function windowTitle()
|
||||||
|
{
|
||||||
|
if (location.href.indexOf('is-external=true') == -1) {
|
||||||
|
parent.document.title="Deprecated List";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</SCRIPT>
|
||||||
|
<NOSCRIPT>
|
||||||
|
</NOSCRIPT>
|
||||||
|
|
||||||
|
</HEAD>
|
||||||
|
|
||||||
|
<BODY BGCOLOR="white" onload="windowTitle();">
|
||||||
|
<HR>
|
||||||
|
|
||||||
|
|
||||||
|
<!-- ========= START OF TOP NAVBAR ======= -->
|
||||||
|
<A NAME="navbar_top"><!-- --></A>
|
||||||
|
<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
|
||||||
|
<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
|
||||||
|
<TR>
|
||||||
|
<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
|
||||||
|
<A NAME="navbar_top_firstrow"><!-- --></A>
|
||||||
|
<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
|
||||||
|
<TR ALIGN="center" VALIGN="top">
|
||||||
|
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="org/libjpegturbo/turbojpeg/package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
|
||||||
|
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <FONT CLASS="NavBarFont1">Class</FONT> </TD>
|
||||||
|
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="org/libjpegturbo/turbojpeg/package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
|
||||||
|
<TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Deprecated</B></FONT> </TD>
|
||||||
|
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
|
||||||
|
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
|
||||||
|
</TR>
|
||||||
|
</TABLE>
|
||||||
|
</TD>
|
||||||
|
<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
|
||||||
|
</EM>
|
||||||
|
</TD>
|
||||||
|
</TR>
|
||||||
|
|
||||||
|
<TR>
|
||||||
|
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
|
||||||
|
PREV
|
||||||
|
NEXT</FONT></TD>
|
||||||
|
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
|
||||||
|
<A HREF="index.html?deprecated-list.html" target="_top"><B>FRAMES</B></A>
|
||||||
|
<A HREF="deprecated-list.html" target="_top"><B>NO FRAMES</B></A>
|
||||||
|
<SCRIPT type="text/javascript">
|
||||||
|
<!--
|
||||||
|
if(window==top) {
|
||||||
|
document.writeln('<A HREF="allclasses-noframe.html"><B>All Classes</B></A>');
|
||||||
|
}
|
||||||
|
//-->
|
||||||
|
</SCRIPT>
|
||||||
|
<NOSCRIPT>
|
||||||
|
<A HREF="allclasses-noframe.html"><B>All Classes</B></A>
|
||||||
|
</NOSCRIPT>
|
||||||
|
|
||||||
|
|
||||||
|
</FONT></TD>
|
||||||
|
</TR>
|
||||||
|
</TABLE>
|
||||||
|
<A NAME="skip-navbar_top"></A>
|
||||||
|
<!-- ========= END OF TOP NAVBAR ========= -->
|
||||||
|
|
||||||
|
<HR>
|
||||||
|
<CENTER>
|
||||||
|
<H2>
|
||||||
|
<B>Deprecated API</B></H2>
|
||||||
|
</CENTER>
|
||||||
|
<HR SIZE="4" NOSHADE>
|
||||||
|
<B>Contents</B><UL>
|
||||||
|
</UL>
|
||||||
|
|
||||||
|
<HR>
|
||||||
|
|
||||||
|
|
||||||
|
<!-- ======= START OF BOTTOM NAVBAR ====== -->
|
||||||
|
<A NAME="navbar_bottom"><!-- --></A>
|
||||||
|
<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
|
||||||
|
<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
|
||||||
|
<TR>
|
||||||
|
<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
|
||||||
|
<A NAME="navbar_bottom_firstrow"><!-- --></A>
|
||||||
|
<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
|
||||||
|
<TR ALIGN="center" VALIGN="top">
|
||||||
|
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="org/libjpegturbo/turbojpeg/package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
|
||||||
|
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <FONT CLASS="NavBarFont1">Class</FONT> </TD>
|
||||||
|
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="org/libjpegturbo/turbojpeg/package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
|
||||||
|
<TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Deprecated</B></FONT> </TD>
|
||||||
|
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
|
||||||
|
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
|
||||||
|
</TR>
|
||||||
|
</TABLE>
|
||||||
|
</TD>
|
||||||
|
<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
|
||||||
|
</EM>
|
||||||
|
</TD>
|
||||||
|
</TR>
|
||||||
|
|
||||||
|
<TR>
|
||||||
|
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
|
||||||
|
PREV
|
||||||
|
NEXT</FONT></TD>
|
||||||
|
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
|
||||||
|
<A HREF="index.html?deprecated-list.html" target="_top"><B>FRAMES</B></A>
|
||||||
|
<A HREF="deprecated-list.html" target="_top"><B>NO FRAMES</B></A>
|
||||||
|
<SCRIPT type="text/javascript">
|
||||||
|
<!--
|
||||||
|
if(window==top) {
|
||||||
|
document.writeln('<A HREF="allclasses-noframe.html"><B>All Classes</B></A>');
|
||||||
|
}
|
||||||
|
//-->
|
||||||
|
</SCRIPT>
|
||||||
|
<NOSCRIPT>
|
||||||
|
<A HREF="allclasses-noframe.html"><B>All Classes</B></A>
|
||||||
|
</NOSCRIPT>
|
||||||
|
|
||||||
|
|
||||||
|
</FONT></TD>
|
||||||
|
</TR>
|
||||||
|
</TABLE>
|
||||||
|
<A NAME="skip-navbar_bottom"></A>
|
||||||
|
<!-- ======== END OF BOTTOM NAVBAR ======= -->
|
||||||
|
|
||||||
|
<HR>
|
||||||
|
|
||||||
|
</BODY>
|
||||||
|
</HTML>
|
||||||
209
java/doc/help-doc.html
Normal file
@@ -0,0 +1,209 @@
|
|||||||
|
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
|
||||||
|
<!--NewPage-->
|
||||||
|
<HTML>
|
||||||
|
<HEAD>
|
||||||
|
<!-- Generated by javadoc (build 1.6.0_33) on Fri Jun 29 14:29:14 CDT 2012 -->
|
||||||
|
<TITLE>
|
||||||
|
API Help
|
||||||
|
</TITLE>
|
||||||
|
|
||||||
|
<META NAME="date" CONTENT="2012-06-29">
|
||||||
|
|
||||||
|
<LINK REL ="stylesheet" TYPE="text/css" HREF="stylesheet.css" TITLE="Style">
|
||||||
|
|
||||||
|
<SCRIPT type="text/javascript">
|
||||||
|
function windowTitle()
|
||||||
|
{
|
||||||
|
if (location.href.indexOf('is-external=true') == -1) {
|
||||||
|
parent.document.title="API Help";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</SCRIPT>
|
||||||
|
<NOSCRIPT>
|
||||||
|
</NOSCRIPT>
|
||||||
|
|
||||||
|
</HEAD>
|
||||||
|
|
||||||
|
<BODY BGCOLOR="white" onload="windowTitle();">
|
||||||
|
<HR>
|
||||||
|
|
||||||
|
|
||||||
|
<!-- ========= START OF TOP NAVBAR ======= -->
|
||||||
|
<A NAME="navbar_top"><!-- --></A>
|
||||||
|
<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
|
||||||
|
<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
|
||||||
|
<TR>
|
||||||
|
<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
|
||||||
|
<A NAME="navbar_top_firstrow"><!-- --></A>
|
||||||
|
<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
|
||||||
|
<TR ALIGN="center" VALIGN="top">
|
||||||
|
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="org/libjpegturbo/turbojpeg/package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
|
||||||
|
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <FONT CLASS="NavBarFont1">Class</FONT> </TD>
|
||||||
|
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="org/libjpegturbo/turbojpeg/package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
|
||||||
|
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
|
||||||
|
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
|
||||||
|
<TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Help</B></FONT> </TD>
|
||||||
|
</TR>
|
||||||
|
</TABLE>
|
||||||
|
</TD>
|
||||||
|
<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
|
||||||
|
</EM>
|
||||||
|
</TD>
|
||||||
|
</TR>
|
||||||
|
|
||||||
|
<TR>
|
||||||
|
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
|
||||||
|
PREV
|
||||||
|
NEXT</FONT></TD>
|
||||||
|
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
|
||||||
|
<A HREF="index.html?help-doc.html" target="_top"><B>FRAMES</B></A>
|
||||||
|
<A HREF="help-doc.html" target="_top"><B>NO FRAMES</B></A>
|
||||||
|
<SCRIPT type="text/javascript">
|
||||||
|
<!--
|
||||||
|
if(window==top) {
|
||||||
|
document.writeln('<A HREF="allclasses-noframe.html"><B>All Classes</B></A>');
|
||||||
|
}
|
||||||
|
//-->
|
||||||
|
</SCRIPT>
|
||||||
|
<NOSCRIPT>
|
||||||
|
<A HREF="allclasses-noframe.html"><B>All Classes</B></A>
|
||||||
|
</NOSCRIPT>
|
||||||
|
|
||||||
|
|
||||||
|
</FONT></TD>
|
||||||
|
</TR>
|
||||||
|
</TABLE>
|
||||||
|
<A NAME="skip-navbar_top"></A>
|
||||||
|
<!-- ========= END OF TOP NAVBAR ========= -->
|
||||||
|
|
||||||
|
<HR>
|
||||||
|
<CENTER>
|
||||||
|
<H1>
|
||||||
|
How This API Document Is Organized</H1>
|
||||||
|
</CENTER>
|
||||||
|
This API (Application Programming Interface) document has pages corresponding to the items in the navigation bar, described as follows.<H3>
|
||||||
|
Package</H3>
|
||||||
|
<BLOCKQUOTE>
|
||||||
|
|
||||||
|
<P>
|
||||||
|
Each package has a page that contains a list of its classes and interfaces, with a summary for each. This page can contain four categories:<UL>
|
||||||
|
<LI>Interfaces (italic)<LI>Classes<LI>Enums<LI>Exceptions<LI>Errors<LI>Annotation Types</UL>
|
||||||
|
</BLOCKQUOTE>
|
||||||
|
<H3>
|
||||||
|
Class/Interface</H3>
|
||||||
|
<BLOCKQUOTE>
|
||||||
|
|
||||||
|
<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:<UL>
|
||||||
|
<LI>Class inheritance diagram<LI>Direct Subclasses<LI>All Known Subinterfaces<LI>All Known Implementing Classes<LI>Class/interface declaration<LI>Class/interface description
|
||||||
|
<P>
|
||||||
|
<LI>Nested Class Summary<LI>Field Summary<LI>Constructor Summary<LI>Method Summary
|
||||||
|
<P>
|
||||||
|
<LI>Field Detail<LI>Constructor Detail<LI>Method Detail</UL>
|
||||||
|
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.</BLOCKQUOTE>
|
||||||
|
</BLOCKQUOTE>
|
||||||
|
<H3>
|
||||||
|
Annotation Type</H3>
|
||||||
|
<BLOCKQUOTE>
|
||||||
|
|
||||||
|
<P>
|
||||||
|
Each annotation type has its own separate page with the following sections:<UL>
|
||||||
|
<LI>Annotation Type declaration<LI>Annotation Type description<LI>Required Element Summary<LI>Optional Element Summary<LI>Element Detail</UL>
|
||||||
|
</BLOCKQUOTE>
|
||||||
|
</BLOCKQUOTE>
|
||||||
|
<H3>
|
||||||
|
Enum</H3>
|
||||||
|
<BLOCKQUOTE>
|
||||||
|
|
||||||
|
<P>
|
||||||
|
Each enum has its own separate page with the following sections:<UL>
|
||||||
|
<LI>Enum declaration<LI>Enum description<LI>Enum Constant Summary<LI>Enum Constant Detail</UL>
|
||||||
|
</BLOCKQUOTE>
|
||||||
|
<H3>
|
||||||
|
Tree (Class Hierarchy)</H3>
|
||||||
|
<BLOCKQUOTE>
|
||||||
|
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>.<UL>
|
||||||
|
<LI>When viewing the Overview page, clicking on "Tree" displays the hierarchy for all packages.<LI>When viewing a particular package, class or interface page, clicking "Tree" displays the hierarchy for only that package.</UL>
|
||||||
|
</BLOCKQUOTE>
|
||||||
|
<H3>
|
||||||
|
Deprecated API</H3>
|
||||||
|
<BLOCKQUOTE>
|
||||||
|
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.</BLOCKQUOTE>
|
||||||
|
<H3>
|
||||||
|
Index</H3>
|
||||||
|
<BLOCKQUOTE>
|
||||||
|
The <A HREF="index-all.html">Index</A> contains an alphabetic list of all classes, interfaces, constructors, methods, and fields.</BLOCKQUOTE>
|
||||||
|
<H3>
|
||||||
|
Prev/Next</H3>
|
||||||
|
These links take you to the next or previous class, interface, package, or related page.<H3>
|
||||||
|
Frames/No Frames</H3>
|
||||||
|
These links show and hide the HTML frames. All pages are available with or without frames.
|
||||||
|
<P>
|
||||||
|
<H3>
|
||||||
|
Serialized Form</H3>
|
||||||
|
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>
|
||||||
|
<H3>
|
||||||
|
Constant Field Values</H3>
|
||||||
|
The <a href="constant-values.html">Constant Field Values</a> page lists the static final fields and their values.
|
||||||
|
<P>
|
||||||
|
<FONT SIZE="-1">
|
||||||
|
<EM>
|
||||||
|
This help file applies to API documentation generated using the standard doclet.</EM>
|
||||||
|
</FONT>
|
||||||
|
<BR>
|
||||||
|
<HR>
|
||||||
|
|
||||||
|
|
||||||
|
<!-- ======= START OF BOTTOM NAVBAR ====== -->
|
||||||
|
<A NAME="navbar_bottom"><!-- --></A>
|
||||||
|
<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
|
||||||
|
<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
|
||||||
|
<TR>
|
||||||
|
<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
|
||||||
|
<A NAME="navbar_bottom_firstrow"><!-- --></A>
|
||||||
|
<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
|
||||||
|
<TR ALIGN="center" VALIGN="top">
|
||||||
|
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="org/libjpegturbo/turbojpeg/package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
|
||||||
|
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <FONT CLASS="NavBarFont1">Class</FONT> </TD>
|
||||||
|
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="org/libjpegturbo/turbojpeg/package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
|
||||||
|
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
|
||||||
|
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
|
||||||
|
<TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Help</B></FONT> </TD>
|
||||||
|
</TR>
|
||||||
|
</TABLE>
|
||||||
|
</TD>
|
||||||
|
<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
|
||||||
|
</EM>
|
||||||
|
</TD>
|
||||||
|
</TR>
|
||||||
|
|
||||||
|
<TR>
|
||||||
|
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
|
||||||
|
PREV
|
||||||
|
NEXT</FONT></TD>
|
||||||
|
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
|
||||||
|
<A HREF="index.html?help-doc.html" target="_top"><B>FRAMES</B></A>
|
||||||
|
<A HREF="help-doc.html" target="_top"><B>NO FRAMES</B></A>
|
||||||
|
<SCRIPT type="text/javascript">
|
||||||
|
<!--
|
||||||
|
if(window==top) {
|
||||||
|
document.writeln('<A HREF="allclasses-noframe.html"><B>All Classes</B></A>');
|
||||||
|
}
|
||||||
|
//-->
|
||||||
|
</SCRIPT>
|
||||||
|
<NOSCRIPT>
|
||||||
|
<A HREF="allclasses-noframe.html"><B>All Classes</B></A>
|
||||||
|
</NOSCRIPT>
|
||||||
|
|
||||||
|
|
||||||
|
</FONT></TD>
|
||||||
|
</TR>
|
||||||
|
</TABLE>
|
||||||
|
<A NAME="skip-navbar_bottom"></A>
|
||||||
|
<!-- ======== END OF BOTTOM NAVBAR ======= -->
|
||||||
|
|
||||||
|
<HR>
|
||||||
|
|
||||||
|
</BODY>
|
||||||
|
</HTML>
|
||||||
598
java/doc/index-all.html
Normal file
@@ -0,0 +1,598 @@
|
|||||||
|
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
|
||||||
|
<!--NewPage-->
|
||||||
|
<HTML>
|
||||||
|
<HEAD>
|
||||||
|
<!-- Generated by javadoc (build 1.6.0_33) on Fri Jun 29 14:29:14 CDT 2012 -->
|
||||||
|
<TITLE>
|
||||||
|
Index
|
||||||
|
</TITLE>
|
||||||
|
|
||||||
|
<META NAME="date" CONTENT="2012-06-29">
|
||||||
|
|
||||||
|
<LINK REL ="stylesheet" TYPE="text/css" HREF="./stylesheet.css" TITLE="Style">
|
||||||
|
|
||||||
|
<SCRIPT type="text/javascript">
|
||||||
|
function windowTitle()
|
||||||
|
{
|
||||||
|
if (location.href.indexOf('is-external=true') == -1) {
|
||||||
|
parent.document.title="Index";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</SCRIPT>
|
||||||
|
<NOSCRIPT>
|
||||||
|
</NOSCRIPT>
|
||||||
|
|
||||||
|
</HEAD>
|
||||||
|
|
||||||
|
<BODY BGCOLOR="white" onload="windowTitle();">
|
||||||
|
<HR>
|
||||||
|
|
||||||
|
|
||||||
|
<!-- ========= START OF TOP NAVBAR ======= -->
|
||||||
|
<A NAME="navbar_top"><!-- --></A>
|
||||||
|
<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
|
||||||
|
<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
|
||||||
|
<TR>
|
||||||
|
<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
|
||||||
|
<A NAME="navbar_top_firstrow"><!-- --></A>
|
||||||
|
<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
|
||||||
|
<TR ALIGN="center" VALIGN="top">
|
||||||
|
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="./org/libjpegturbo/turbojpeg/package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
|
||||||
|
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <FONT CLASS="NavBarFont1">Class</FONT> </TD>
|
||||||
|
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="./org/libjpegturbo/turbojpeg/package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
|
||||||
|
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="./deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
|
||||||
|
<TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Index</B></FONT> </TD>
|
||||||
|
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="./help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
|
||||||
|
</TR>
|
||||||
|
</TABLE>
|
||||||
|
</TD>
|
||||||
|
<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
|
||||||
|
</EM>
|
||||||
|
</TD>
|
||||||
|
</TR>
|
||||||
|
|
||||||
|
<TR>
|
||||||
|
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
|
||||||
|
PREV
|
||||||
|
NEXT</FONT></TD>
|
||||||
|
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
|
||||||
|
<A HREF="./index.html?index-all.html" target="_top"><B>FRAMES</B></A>
|
||||||
|
<A HREF="index-all.html" target="_top"><B>NO FRAMES</B></A>
|
||||||
|
<SCRIPT type="text/javascript">
|
||||||
|
<!--
|
||||||
|
if(window==top) {
|
||||||
|
document.writeln('<A HREF="./allclasses-noframe.html"><B>All Classes</B></A>');
|
||||||
|
}
|
||||||
|
//-->
|
||||||
|
</SCRIPT>
|
||||||
|
<NOSCRIPT>
|
||||||
|
<A HREF="./allclasses-noframe.html"><B>All Classes</B></A>
|
||||||
|
</NOSCRIPT>
|
||||||
|
|
||||||
|
|
||||||
|
</FONT></TD>
|
||||||
|
</TR>
|
||||||
|
</TABLE>
|
||||||
|
<A NAME="skip-navbar_top"></A>
|
||||||
|
<!-- ========= END OF TOP NAVBAR ========= -->
|
||||||
|
|
||||||
|
<A HREF="#_B_">B</A> <A HREF="#_C_">C</A> <A HREF="#_D_">D</A> <A HREF="#_E_">E</A> <A HREF="#_F_">F</A> <A HREF="#_G_">G</A> <A HREF="#_H_">H</A> <A HREF="#_I_">I</A> <A HREF="#_J_">J</A> <A HREF="#_N_">N</A> <A HREF="#_O_">O</A> <A HREF="#_P_">P</A> <A HREF="#_S_">S</A> <A HREF="#_T_">T</A> <HR>
|
||||||
|
<A NAME="_B_"><!-- --></A><H2>
|
||||||
|
<B>B</B></H2>
|
||||||
|
<DL>
|
||||||
|
<DT><A HREF="./org/libjpegturbo/turbojpeg/TJ.html#bufSize(int, int, int)"><B>bufSize(int, int, int)</B></A> -
|
||||||
|
Static method in class org.libjpegturbo.turbojpeg.<A HREF="./org/libjpegturbo/turbojpeg/TJ.html" title="class in org.libjpegturbo.turbojpeg">TJ</A>
|
||||||
|
<DD>Returns the maximum size of the buffer (in bytes) required to hold a JPEG
|
||||||
|
image with the given width and height, and level of chrominance
|
||||||
|
subsampling.
|
||||||
|
<DT><A HREF="./org/libjpegturbo/turbojpeg/TJ.html#bufSizeYUV(int, int, int)"><B>bufSizeYUV(int, int, int)</B></A> -
|
||||||
|
Static method in class org.libjpegturbo.turbojpeg.<A HREF="./org/libjpegturbo/turbojpeg/TJ.html" title="class in org.libjpegturbo.turbojpeg">TJ</A>
|
||||||
|
<DD>Returns the size of the buffer (in bytes) required to hold a YUV planar
|
||||||
|
image with the given width, height, and level of chrominance subsampling.
|
||||||
|
</DL>
|
||||||
|
<HR>
|
||||||
|
<A NAME="_C_"><!-- --></A><H2>
|
||||||
|
<B>C</B></H2>
|
||||||
|
<DL>
|
||||||
|
<DT><A HREF="./org/libjpegturbo/turbojpeg/TJTransform.html#cf"><B>cf</B></A> -
|
||||||
|
Variable in class org.libjpegturbo.turbojpeg.<A HREF="./org/libjpegturbo/turbojpeg/TJTransform.html" title="class in org.libjpegturbo.turbojpeg">TJTransform</A>
|
||||||
|
<DD>Custom filter instance
|
||||||
|
<DT><A HREF="./org/libjpegturbo/turbojpeg/TJCompressor.html#close()"><B>close()</B></A> -
|
||||||
|
Method in class org.libjpegturbo.turbojpeg.<A HREF="./org/libjpegturbo/turbojpeg/TJCompressor.html" title="class in org.libjpegturbo.turbojpeg">TJCompressor</A>
|
||||||
|
<DD>Free the native structures associated with this compressor instance.
|
||||||
|
<DT><A HREF="./org/libjpegturbo/turbojpeg/TJDecompressor.html#close()"><B>close()</B></A> -
|
||||||
|
Method in class org.libjpegturbo.turbojpeg.<A HREF="./org/libjpegturbo/turbojpeg/TJDecompressor.html" title="class in org.libjpegturbo.turbojpeg">TJDecompressor</A>
|
||||||
|
<DD>Free the native structures associated with this decompressor instance.
|
||||||
|
<DT><A HREF="./org/libjpegturbo/turbojpeg/TJCompressor.html#compress(byte[], int)"><B>compress(byte[], int)</B></A> -
|
||||||
|
Method in class org.libjpegturbo.turbojpeg.<A HREF="./org/libjpegturbo/turbojpeg/TJCompressor.html" title="class in org.libjpegturbo.turbojpeg">TJCompressor</A>
|
||||||
|
<DD>Compress the uncompressed source image associated with this compressor
|
||||||
|
instance and output a JPEG image to the given destination buffer.
|
||||||
|
<DT><A HREF="./org/libjpegturbo/turbojpeg/TJCompressor.html#compress(int)"><B>compress(int)</B></A> -
|
||||||
|
Method in class org.libjpegturbo.turbojpeg.<A HREF="./org/libjpegturbo/turbojpeg/TJCompressor.html" title="class in org.libjpegturbo.turbojpeg">TJCompressor</A>
|
||||||
|
<DD>Compress the uncompressed source image associated with this compressor
|
||||||
|
instance and return a buffer containing a JPEG image.
|
||||||
|
<DT><A HREF="./org/libjpegturbo/turbojpeg/TJCompressor.html#compress(java.awt.image.BufferedImage, byte[], int)"><B>compress(BufferedImage, byte[], int)</B></A> -
|
||||||
|
Method in class org.libjpegturbo.turbojpeg.<A HREF="./org/libjpegturbo/turbojpeg/TJCompressor.html" title="class in org.libjpegturbo.turbojpeg">TJCompressor</A>
|
||||||
|
<DD>Compress the uncompressed source image stored in <code>srcImage</code>
|
||||||
|
and output a JPEG image to the given destination buffer.
|
||||||
|
<DT><A HREF="./org/libjpegturbo/turbojpeg/TJCompressor.html#compress(java.awt.image.BufferedImage, int)"><B>compress(BufferedImage, int)</B></A> -
|
||||||
|
Method in class org.libjpegturbo.turbojpeg.<A HREF="./org/libjpegturbo/turbojpeg/TJCompressor.html" title="class in org.libjpegturbo.turbojpeg">TJCompressor</A>
|
||||||
|
<DD>Compress the uncompressed source image stored in <code>srcImage</code>
|
||||||
|
and return a buffer containing a JPEG image.
|
||||||
|
<DT><A HREF="./org/libjpegturbo/turbojpeg/TJCustomFilter.html#customFilter(java.nio.ShortBuffer, java.awt.Rectangle, java.awt.Rectangle, int, int, org.libjpegturbo.turbojpeg.TJTransform)"><B>customFilter(ShortBuffer, Rectangle, Rectangle, int, int, TJTransform)</B></A> -
|
||||||
|
Method in interface org.libjpegturbo.turbojpeg.<A HREF="./org/libjpegturbo/turbojpeg/TJCustomFilter.html" title="interface in org.libjpegturbo.turbojpeg">TJCustomFilter</A>
|
||||||
|
<DD>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
|
||||||
|
JPEG file.
|
||||||
|
</DL>
|
||||||
|
<HR>
|
||||||
|
<A NAME="_D_"><!-- --></A><H2>
|
||||||
|
<B>D</B></H2>
|
||||||
|
<DL>
|
||||||
|
<DT><A HREF="./org/libjpegturbo/turbojpeg/TJDecompressor.html#decompress(byte[], int, int, int, int, int)"><B>decompress(byte[], int, int, int, int, int)</B></A> -
|
||||||
|
Method in class org.libjpegturbo.turbojpeg.<A HREF="./org/libjpegturbo/turbojpeg/TJDecompressor.html" title="class in org.libjpegturbo.turbojpeg">TJDecompressor</A>
|
||||||
|
<DD>Decompress the JPEG source image associated with this decompressor
|
||||||
|
instance and output a decompressed image to the given destination buffer.
|
||||||
|
<DT><A HREF="./org/libjpegturbo/turbojpeg/TJDecompressor.html#decompress(int, int, int, int, int)"><B>decompress(int, int, int, int, int)</B></A> -
|
||||||
|
Method in class org.libjpegturbo.turbojpeg.<A HREF="./org/libjpegturbo/turbojpeg/TJDecompressor.html" title="class in org.libjpegturbo.turbojpeg">TJDecompressor</A>
|
||||||
|
<DD>Decompress the JPEG source image associated with this decompressor
|
||||||
|
instance and return a buffer containing the decompressed image.
|
||||||
|
<DT><A HREF="./org/libjpegturbo/turbojpeg/TJDecompressor.html#decompress(java.awt.image.BufferedImage, int)"><B>decompress(BufferedImage, int)</B></A> -
|
||||||
|
Method in class org.libjpegturbo.turbojpeg.<A HREF="./org/libjpegturbo/turbojpeg/TJDecompressor.html" title="class in org.libjpegturbo.turbojpeg">TJDecompressor</A>
|
||||||
|
<DD>Decompress the JPEG source image associated with this decompressor
|
||||||
|
instance and output a decompressed image to the given
|
||||||
|
<code>BufferedImage</code> instance.
|
||||||
|
<DT><A HREF="./org/libjpegturbo/turbojpeg/TJDecompressor.html#decompress(int, int, int, int)"><B>decompress(int, int, int, int)</B></A> -
|
||||||
|
Method in class org.libjpegturbo.turbojpeg.<A HREF="./org/libjpegturbo/turbojpeg/TJDecompressor.html" title="class in org.libjpegturbo.turbojpeg">TJDecompressor</A>
|
||||||
|
<DD>Decompress the JPEG source image associated with this decompressor
|
||||||
|
instance and return a <code>BufferedImage</code> instance containing the
|
||||||
|
decompressed image.
|
||||||
|
<DT><A HREF="./org/libjpegturbo/turbojpeg/TJDecompressor.html#decompressToYUV(byte[], int)"><B>decompressToYUV(byte[], int)</B></A> -
|
||||||
|
Method in class org.libjpegturbo.turbojpeg.<A HREF="./org/libjpegturbo/turbojpeg/TJDecompressor.html" title="class in org.libjpegturbo.turbojpeg">TJDecompressor</A>
|
||||||
|
<DD>Decompress the JPEG source image associated with this decompressor
|
||||||
|
instance and output a YUV planar image to the given destination buffer.
|
||||||
|
<DT><A HREF="./org/libjpegturbo/turbojpeg/TJDecompressor.html#decompressToYUV(int)"><B>decompressToYUV(int)</B></A> -
|
||||||
|
Method in class org.libjpegturbo.turbojpeg.<A HREF="./org/libjpegturbo/turbojpeg/TJDecompressor.html" title="class in org.libjpegturbo.turbojpeg">TJDecompressor</A>
|
||||||
|
<DD>Decompress the JPEG source image associated with this decompressor
|
||||||
|
instance and return a buffer containing a YUV planar image.
|
||||||
|
</DL>
|
||||||
|
<HR>
|
||||||
|
<A NAME="_E_"><!-- --></A><H2>
|
||||||
|
<B>E</B></H2>
|
||||||
|
<DL>
|
||||||
|
<DT><A HREF="./org/libjpegturbo/turbojpeg/TJCompressor.html#encodeYUV(byte[], int)"><B>encodeYUV(byte[], int)</B></A> -
|
||||||
|
Method in class org.libjpegturbo.turbojpeg.<A HREF="./org/libjpegturbo/turbojpeg/TJCompressor.html" title="class in org.libjpegturbo.turbojpeg">TJCompressor</A>
|
||||||
|
<DD>Encode the uncompressed source image associated with this compressor
|
||||||
|
instance and output a YUV planar image to the given destination buffer.
|
||||||
|
<DT><A HREF="./org/libjpegturbo/turbojpeg/TJCompressor.html#encodeYUV(int)"><B>encodeYUV(int)</B></A> -
|
||||||
|
Method in class org.libjpegturbo.turbojpeg.<A HREF="./org/libjpegturbo/turbojpeg/TJCompressor.html" title="class in org.libjpegturbo.turbojpeg">TJCompressor</A>
|
||||||
|
<DD>Encode the uncompressed source image associated with this compressor
|
||||||
|
instance and return a buffer containing a YUV planar image.
|
||||||
|
<DT><A HREF="./org/libjpegturbo/turbojpeg/TJCompressor.html#encodeYUV(java.awt.image.BufferedImage, byte[], int)"><B>encodeYUV(BufferedImage, byte[], int)</B></A> -
|
||||||
|
Method in class org.libjpegturbo.turbojpeg.<A HREF="./org/libjpegturbo/turbojpeg/TJCompressor.html" title="class in org.libjpegturbo.turbojpeg">TJCompressor</A>
|
||||||
|
<DD>Encode the uncompressed source image stored in <code>srcImage</code>
|
||||||
|
and output a YUV planar image to the given destination buffer.
|
||||||
|
<DT><A HREF="./org/libjpegturbo/turbojpeg/TJCompressor.html#encodeYUV(java.awt.image.BufferedImage, int)"><B>encodeYUV(BufferedImage, int)</B></A> -
|
||||||
|
Method in class org.libjpegturbo.turbojpeg.<A HREF="./org/libjpegturbo/turbojpeg/TJCompressor.html" title="class in org.libjpegturbo.turbojpeg">TJCompressor</A>
|
||||||
|
<DD>Encode the uncompressed source image stored in <code>srcImage</code>
|
||||||
|
and return a buffer containing a YUV planar image.
|
||||||
|
<DT><A HREF="./org/libjpegturbo/turbojpeg/TJScalingFactor.html#equals(org.libjpegturbo.turbojpeg.TJScalingFactor)"><B>equals(TJScalingFactor)</B></A> -
|
||||||
|
Method in class org.libjpegturbo.turbojpeg.<A HREF="./org/libjpegturbo/turbojpeg/TJScalingFactor.html" title="class in org.libjpegturbo.turbojpeg">TJScalingFactor</A>
|
||||||
|
<DD>Returns true or false, depending on whether this instance and
|
||||||
|
<code>other</code> have the same numerator and denominator.
|
||||||
|
</DL>
|
||||||
|
<HR>
|
||||||
|
<A NAME="_F_"><!-- --></A><H2>
|
||||||
|
<B>F</B></H2>
|
||||||
|
<DL>
|
||||||
|
<DT><A HREF="./org/libjpegturbo/turbojpeg/TJCompressor.html#finalize()"><B>finalize()</B></A> -
|
||||||
|
Method in class org.libjpegturbo.turbojpeg.<A HREF="./org/libjpegturbo/turbojpeg/TJCompressor.html" title="class in org.libjpegturbo.turbojpeg">TJCompressor</A>
|
||||||
|
<DD>
|
||||||
|
<DT><A HREF="./org/libjpegturbo/turbojpeg/TJDecompressor.html#finalize()"><B>finalize()</B></A> -
|
||||||
|
Method in class org.libjpegturbo.turbojpeg.<A HREF="./org/libjpegturbo/turbojpeg/TJDecompressor.html" title="class in org.libjpegturbo.turbojpeg">TJDecompressor</A>
|
||||||
|
<DD>
|
||||||
|
<DT><A HREF="./org/libjpegturbo/turbojpeg/TJ.html#FLAG_ACCURATEDCT"><B>FLAG_ACCURATEDCT</B></A> -
|
||||||
|
Static variable in class org.libjpegturbo.turbojpeg.<A HREF="./org/libjpegturbo/turbojpeg/TJ.html" title="class in org.libjpegturbo.turbojpeg">TJ</A>
|
||||||
|
<DD>Use the most accurate DCT/IDCT algorithm available in the underlying
|
||||||
|
codec.
|
||||||
|
<DT><A HREF="./org/libjpegturbo/turbojpeg/TJ.html#FLAG_BOTTOMUP"><B>FLAG_BOTTOMUP</B></A> -
|
||||||
|
Static variable in class org.libjpegturbo.turbojpeg.<A HREF="./org/libjpegturbo/turbojpeg/TJ.html" title="class in org.libjpegturbo.turbojpeg">TJ</A>
|
||||||
|
<DD>The uncompressed source/destination image is stored in bottom-up (Windows,
|
||||||
|
OpenGL) order, not top-down (X11) order.
|
||||||
|
<DT><A HREF="./org/libjpegturbo/turbojpeg/TJ.html#FLAG_FASTDCT"><B>FLAG_FASTDCT</B></A> -
|
||||||
|
Static variable in class org.libjpegturbo.turbojpeg.<A HREF="./org/libjpegturbo/turbojpeg/TJ.html" title="class in org.libjpegturbo.turbojpeg">TJ</A>
|
||||||
|
<DD>Use the fastest DCT/IDCT algorithm available in the underlying codec.
|
||||||
|
<DT><A HREF="./org/libjpegturbo/turbojpeg/TJ.html#FLAG_FASTUPSAMPLE"><B>FLAG_FASTUPSAMPLE</B></A> -
|
||||||
|
Static variable in class org.libjpegturbo.turbojpeg.<A HREF="./org/libjpegturbo/turbojpeg/TJ.html" title="class in org.libjpegturbo.turbojpeg">TJ</A>
|
||||||
|
<DD>When decompressing, use the fastest chrominance upsampling algorithm
|
||||||
|
available in the underlying codec.
|
||||||
|
<DT><A HREF="./org/libjpegturbo/turbojpeg/TJ.html#FLAG_FORCEMMX"><B>FLAG_FORCEMMX</B></A> -
|
||||||
|
Static variable in class org.libjpegturbo.turbojpeg.<A HREF="./org/libjpegturbo/turbojpeg/TJ.html" title="class in org.libjpegturbo.turbojpeg">TJ</A>
|
||||||
|
<DD>Turn off CPU auto-detection and force TurboJPEG to use MMX code
|
||||||
|
(if the underlying codec supports it.)
|
||||||
|
<DT><A HREF="./org/libjpegturbo/turbojpeg/TJ.html#FLAG_FORCESSE"><B>FLAG_FORCESSE</B></A> -
|
||||||
|
Static variable in class org.libjpegturbo.turbojpeg.<A HREF="./org/libjpegturbo/turbojpeg/TJ.html" title="class in org.libjpegturbo.turbojpeg">TJ</A>
|
||||||
|
<DD>Turn off CPU auto-detection and force TurboJPEG to use SSE code
|
||||||
|
(if the underlying codec supports it.)
|
||||||
|
<DT><A HREF="./org/libjpegturbo/turbojpeg/TJ.html#FLAG_FORCESSE2"><B>FLAG_FORCESSE2</B></A> -
|
||||||
|
Static variable in class org.libjpegturbo.turbojpeg.<A HREF="./org/libjpegturbo/turbojpeg/TJ.html" title="class in org.libjpegturbo.turbojpeg">TJ</A>
|
||||||
|
<DD>Turn off CPU auto-detection and force TurboJPEG to use SSE2 code
|
||||||
|
(if the underlying codec supports it.)
|
||||||
|
<DT><A HREF="./org/libjpegturbo/turbojpeg/TJ.html#FLAG_FORCESSE3"><B>FLAG_FORCESSE3</B></A> -
|
||||||
|
Static variable in class org.libjpegturbo.turbojpeg.<A HREF="./org/libjpegturbo/turbojpeg/TJ.html" title="class in org.libjpegturbo.turbojpeg">TJ</A>
|
||||||
|
<DD>Turn off CPU auto-detection and force TurboJPEG to use SSE3 code
|
||||||
|
(if the underlying codec supports it.)
|
||||||
|
</DL>
|
||||||
|
<HR>
|
||||||
|
<A NAME="_G_"><!-- --></A><H2>
|
||||||
|
<B>G</B></H2>
|
||||||
|
<DL>
|
||||||
|
<DT><A HREF="./org/libjpegturbo/turbojpeg/TJ.html#getBlueOffset(int)"><B>getBlueOffset(int)</B></A> -
|
||||||
|
Static method in class org.libjpegturbo.turbojpeg.<A HREF="./org/libjpegturbo/turbojpeg/TJ.html" title="class in org.libjpegturbo.turbojpeg">TJ</A>
|
||||||
|
<DD>For the given pixel format, returns the number of bytes that the blue
|
||||||
|
component is offset from the start of the pixel.
|
||||||
|
<DT><A HREF="./org/libjpegturbo/turbojpeg/TJCompressor.html#getCompressedSize()"><B>getCompressedSize()</B></A> -
|
||||||
|
Method in class org.libjpegturbo.turbojpeg.<A HREF="./org/libjpegturbo/turbojpeg/TJCompressor.html" title="class in org.libjpegturbo.turbojpeg">TJCompressor</A>
|
||||||
|
<DD>Returns the size of the image (in bytes) generated by the most recent
|
||||||
|
compress/encode operation.
|
||||||
|
<DT><A HREF="./org/libjpegturbo/turbojpeg/TJScalingFactor.html#getDenom()"><B>getDenom()</B></A> -
|
||||||
|
Method in class org.libjpegturbo.turbojpeg.<A HREF="./org/libjpegturbo/turbojpeg/TJScalingFactor.html" title="class in org.libjpegturbo.turbojpeg">TJScalingFactor</A>
|
||||||
|
<DD>Returns denominator
|
||||||
|
<DT><A HREF="./org/libjpegturbo/turbojpeg/TJ.html#getGreenOffset(int)"><B>getGreenOffset(int)</B></A> -
|
||||||
|
Static method in class org.libjpegturbo.turbojpeg.<A HREF="./org/libjpegturbo/turbojpeg/TJ.html" title="class in org.libjpegturbo.turbojpeg">TJ</A>
|
||||||
|
<DD>For the given pixel format, returns the number of bytes that the green
|
||||||
|
component is offset from the start of the pixel.
|
||||||
|
<DT><A HREF="./org/libjpegturbo/turbojpeg/TJDecompressor.html#getHeight()"><B>getHeight()</B></A> -
|
||||||
|
Method in class org.libjpegturbo.turbojpeg.<A HREF="./org/libjpegturbo/turbojpeg/TJDecompressor.html" title="class in org.libjpegturbo.turbojpeg">TJDecompressor</A>
|
||||||
|
<DD>Returns the height of the JPEG image associated with this decompressor
|
||||||
|
instance.
|
||||||
|
<DT><A HREF="./org/libjpegturbo/turbojpeg/TJDecompressor.html#getJPEGBuf()"><B>getJPEGBuf()</B></A> -
|
||||||
|
Method in class org.libjpegturbo.turbojpeg.<A HREF="./org/libjpegturbo/turbojpeg/TJDecompressor.html" title="class in org.libjpegturbo.turbojpeg">TJDecompressor</A>
|
||||||
|
<DD>Returns the JPEG image buffer associated with this decompressor instance.
|
||||||
|
<DT><A HREF="./org/libjpegturbo/turbojpeg/TJDecompressor.html#getJPEGSize()"><B>getJPEGSize()</B></A> -
|
||||||
|
Method in class org.libjpegturbo.turbojpeg.<A HREF="./org/libjpegturbo/turbojpeg/TJDecompressor.html" title="class in org.libjpegturbo.turbojpeg">TJDecompressor</A>
|
||||||
|
<DD>Returns the size of the JPEG image (in bytes) associated with this
|
||||||
|
decompressor instance.
|
||||||
|
<DT><A HREF="./org/libjpegturbo/turbojpeg/TJ.html#getMCUHeight(int)"><B>getMCUHeight(int)</B></A> -
|
||||||
|
Static method in class org.libjpegturbo.turbojpeg.<A HREF="./org/libjpegturbo/turbojpeg/TJ.html" title="class in org.libjpegturbo.turbojpeg">TJ</A>
|
||||||
|
<DD>Returns the MCU block height for the given level of chrominance
|
||||||
|
subsampling.
|
||||||
|
<DT><A HREF="./org/libjpegturbo/turbojpeg/TJ.html#getMCUWidth(int)"><B>getMCUWidth(int)</B></A> -
|
||||||
|
Static method in class org.libjpegturbo.turbojpeg.<A HREF="./org/libjpegturbo/turbojpeg/TJ.html" title="class in org.libjpegturbo.turbojpeg">TJ</A>
|
||||||
|
<DD>Returns the MCU block width for the given level of chrominance
|
||||||
|
subsampling.
|
||||||
|
<DT><A HREF="./org/libjpegturbo/turbojpeg/TJScalingFactor.html#getNum()"><B>getNum()</B></A> -
|
||||||
|
Method in class org.libjpegturbo.turbojpeg.<A HREF="./org/libjpegturbo/turbojpeg/TJScalingFactor.html" title="class in org.libjpegturbo.turbojpeg">TJScalingFactor</A>
|
||||||
|
<DD>Returns numerator
|
||||||
|
<DT><A HREF="./org/libjpegturbo/turbojpeg/TJ.html#getPixelSize(int)"><B>getPixelSize(int)</B></A> -
|
||||||
|
Static method in class org.libjpegturbo.turbojpeg.<A HREF="./org/libjpegturbo/turbojpeg/TJ.html" title="class in org.libjpegturbo.turbojpeg">TJ</A>
|
||||||
|
<DD>Returns the pixel size (in bytes) of the given pixel format.
|
||||||
|
<DT><A HREF="./org/libjpegturbo/turbojpeg/TJ.html#getRedOffset(int)"><B>getRedOffset(int)</B></A> -
|
||||||
|
Static method in class org.libjpegturbo.turbojpeg.<A HREF="./org/libjpegturbo/turbojpeg/TJ.html" title="class in org.libjpegturbo.turbojpeg">TJ</A>
|
||||||
|
<DD>For the given pixel format, returns the number of bytes that the red
|
||||||
|
component is offset from the start of the pixel.
|
||||||
|
<DT><A HREF="./org/libjpegturbo/turbojpeg/TJScalingFactor.html#getScaled(int)"><B>getScaled(int)</B></A> -
|
||||||
|
Method in class org.libjpegturbo.turbojpeg.<A HREF="./org/libjpegturbo/turbojpeg/TJScalingFactor.html" title="class in org.libjpegturbo.turbojpeg">TJScalingFactor</A>
|
||||||
|
<DD>Returns the scaled value of <code>dimension</code>.
|
||||||
|
<DT><A HREF="./org/libjpegturbo/turbojpeg/TJDecompressor.html#getScaledHeight(int, int)"><B>getScaledHeight(int, int)</B></A> -
|
||||||
|
Method in class org.libjpegturbo.turbojpeg.<A HREF="./org/libjpegturbo/turbojpeg/TJDecompressor.html" title="class in org.libjpegturbo.turbojpeg">TJDecompressor</A>
|
||||||
|
<DD>Returns the height of the largest scaled down image that the TurboJPEG
|
||||||
|
decompressor can generate without exceeding the desired image width and
|
||||||
|
height.
|
||||||
|
<DT><A HREF="./org/libjpegturbo/turbojpeg/TJDecompressor.html#getScaledWidth(int, int)"><B>getScaledWidth(int, int)</B></A> -
|
||||||
|
Method in class org.libjpegturbo.turbojpeg.<A HREF="./org/libjpegturbo/turbojpeg/TJDecompressor.html" title="class in org.libjpegturbo.turbojpeg">TJDecompressor</A>
|
||||||
|
<DD>Returns the width of the largest scaled down image that the TurboJPEG
|
||||||
|
decompressor can generate without exceeding the desired image width and
|
||||||
|
height.
|
||||||
|
<DT><A HREF="./org/libjpegturbo/turbojpeg/TJ.html#getScalingFactors()"><B>getScalingFactors()</B></A> -
|
||||||
|
Static method in class org.libjpegturbo.turbojpeg.<A HREF="./org/libjpegturbo/turbojpeg/TJ.html" title="class in org.libjpegturbo.turbojpeg">TJ</A>
|
||||||
|
<DD>Returns a list of fractional scaling factors that the JPEG decompressor in
|
||||||
|
this implementation of TurboJPEG supports.
|
||||||
|
<DT><A HREF="./org/libjpegturbo/turbojpeg/TJDecompressor.html#getSubsamp()"><B>getSubsamp()</B></A> -
|
||||||
|
Method in class org.libjpegturbo.turbojpeg.<A HREF="./org/libjpegturbo/turbojpeg/TJDecompressor.html" title="class in org.libjpegturbo.turbojpeg">TJDecompressor</A>
|
||||||
|
<DD>Returns the level of chrominance subsampling used in the JPEG image
|
||||||
|
associated with this decompressor instance.
|
||||||
|
<DT><A HREF="./org/libjpegturbo/turbojpeg/TJTransformer.html#getTransformedSizes()"><B>getTransformedSizes()</B></A> -
|
||||||
|
Method in class org.libjpegturbo.turbojpeg.<A HREF="./org/libjpegturbo/turbojpeg/TJTransformer.html" title="class in org.libjpegturbo.turbojpeg">TJTransformer</A>
|
||||||
|
<DD>Returns an array containing the sizes of the transformed JPEG images from
|
||||||
|
the most recent call to <A HREF="./org/libjpegturbo/turbojpeg/TJTransformer.html#transform(byte[][], org.libjpegturbo.turbojpeg.TJTransform[], int)"><CODE>transform()</CODE></A>.
|
||||||
|
<DT><A HREF="./org/libjpegturbo/turbojpeg/TJDecompressor.html#getWidth()"><B>getWidth()</B></A> -
|
||||||
|
Method in class org.libjpegturbo.turbojpeg.<A HREF="./org/libjpegturbo/turbojpeg/TJDecompressor.html" title="class in org.libjpegturbo.turbojpeg">TJDecompressor</A>
|
||||||
|
<DD>Returns the width of the JPEG image associated with this decompressor
|
||||||
|
instance.
|
||||||
|
</DL>
|
||||||
|
<HR>
|
||||||
|
<A NAME="_H_"><!-- --></A><H2>
|
||||||
|
<B>H</B></H2>
|
||||||
|
<DL>
|
||||||
|
<DT><A HREF="./org/libjpegturbo/turbojpeg/TJDecompressor.html#handle"><B>handle</B></A> -
|
||||||
|
Variable in class org.libjpegturbo.turbojpeg.<A HREF="./org/libjpegturbo/turbojpeg/TJDecompressor.html" title="class in org.libjpegturbo.turbojpeg">TJDecompressor</A>
|
||||||
|
<DD>
|
||||||
|
</DL>
|
||||||
|
<HR>
|
||||||
|
<A NAME="_I_"><!-- --></A><H2>
|
||||||
|
<B>I</B></H2>
|
||||||
|
<DL>
|
||||||
|
<DT><A HREF="./org/libjpegturbo/turbojpeg/TJScalingFactor.html#isOne()"><B>isOne()</B></A> -
|
||||||
|
Method in class org.libjpegturbo.turbojpeg.<A HREF="./org/libjpegturbo/turbojpeg/TJScalingFactor.html" title="class in org.libjpegturbo.turbojpeg">TJScalingFactor</A>
|
||||||
|
<DD>Returns true or false, depending on whether this instance is equal to
|
||||||
|
1/1.
|
||||||
|
</DL>
|
||||||
|
<HR>
|
||||||
|
<A NAME="_J_"><!-- --></A><H2>
|
||||||
|
<B>J</B></H2>
|
||||||
|
<DL>
|
||||||
|
<DT><A HREF="./org/libjpegturbo/turbojpeg/TJDecompressor.html#jpegBuf"><B>jpegBuf</B></A> -
|
||||||
|
Variable in class org.libjpegturbo.turbojpeg.<A HREF="./org/libjpegturbo/turbojpeg/TJDecompressor.html" title="class in org.libjpegturbo.turbojpeg">TJDecompressor</A>
|
||||||
|
<DD>
|
||||||
|
<DT><A HREF="./org/libjpegturbo/turbojpeg/TJDecompressor.html#jpegBufSize"><B>jpegBufSize</B></A> -
|
||||||
|
Variable in class org.libjpegturbo.turbojpeg.<A HREF="./org/libjpegturbo/turbojpeg/TJDecompressor.html" title="class in org.libjpegturbo.turbojpeg">TJDecompressor</A>
|
||||||
|
<DD>
|
||||||
|
<DT><A HREF="./org/libjpegturbo/turbojpeg/TJDecompressor.html#jpegHeight"><B>jpegHeight</B></A> -
|
||||||
|
Variable in class org.libjpegturbo.turbojpeg.<A HREF="./org/libjpegturbo/turbojpeg/TJDecompressor.html" title="class in org.libjpegturbo.turbojpeg">TJDecompressor</A>
|
||||||
|
<DD>
|
||||||
|
<DT><A HREF="./org/libjpegturbo/turbojpeg/TJDecompressor.html#jpegSubsamp"><B>jpegSubsamp</B></A> -
|
||||||
|
Variable in class org.libjpegturbo.turbojpeg.<A HREF="./org/libjpegturbo/turbojpeg/TJDecompressor.html" title="class in org.libjpegturbo.turbojpeg">TJDecompressor</A>
|
||||||
|
<DD>
|
||||||
|
<DT><A HREF="./org/libjpegturbo/turbojpeg/TJDecompressor.html#jpegWidth"><B>jpegWidth</B></A> -
|
||||||
|
Variable in class org.libjpegturbo.turbojpeg.<A HREF="./org/libjpegturbo/turbojpeg/TJDecompressor.html" title="class in org.libjpegturbo.turbojpeg">TJDecompressor</A>
|
||||||
|
<DD>
|
||||||
|
</DL>
|
||||||
|
<HR>
|
||||||
|
<A NAME="_N_"><!-- --></A><H2>
|
||||||
|
<B>N</B></H2>
|
||||||
|
<DL>
|
||||||
|
<DT><A HREF="./org/libjpegturbo/turbojpeg/TJTransform.html#NUMOP"><B>NUMOP</B></A> -
|
||||||
|
Static variable in class org.libjpegturbo.turbojpeg.<A HREF="./org/libjpegturbo/turbojpeg/TJTransform.html" title="class in org.libjpegturbo.turbojpeg">TJTransform</A>
|
||||||
|
<DD>The number of lossless transform operations
|
||||||
|
<DT><A HREF="./org/libjpegturbo/turbojpeg/TJ.html#NUMPF"><B>NUMPF</B></A> -
|
||||||
|
Static variable in class org.libjpegturbo.turbojpeg.<A HREF="./org/libjpegturbo/turbojpeg/TJ.html" title="class in org.libjpegturbo.turbojpeg">TJ</A>
|
||||||
|
<DD>The number of pixel formats
|
||||||
|
<DT><A HREF="./org/libjpegturbo/turbojpeg/TJ.html#NUMSAMP"><B>NUMSAMP</B></A> -
|
||||||
|
Static variable in class org.libjpegturbo.turbojpeg.<A HREF="./org/libjpegturbo/turbojpeg/TJ.html" title="class in org.libjpegturbo.turbojpeg">TJ</A>
|
||||||
|
<DD>The number of chrominance subsampling options
|
||||||
|
</DL>
|
||||||
|
<HR>
|
||||||
|
<A NAME="_O_"><!-- --></A><H2>
|
||||||
|
<B>O</B></H2>
|
||||||
|
<DL>
|
||||||
|
<DT><A HREF="./org/libjpegturbo/turbojpeg/TJTransform.html#op"><B>op</B></A> -
|
||||||
|
Variable in class org.libjpegturbo.turbojpeg.<A HREF="./org/libjpegturbo/turbojpeg/TJTransform.html" title="class in org.libjpegturbo.turbojpeg">TJTransform</A>
|
||||||
|
<DD>Transform operation (one of <code>OP_*</code>)
|
||||||
|
<DT><A HREF="./org/libjpegturbo/turbojpeg/TJTransform.html#OP_HFLIP"><B>OP_HFLIP</B></A> -
|
||||||
|
Static variable in class org.libjpegturbo.turbojpeg.<A HREF="./org/libjpegturbo/turbojpeg/TJTransform.html" title="class in org.libjpegturbo.turbojpeg">TJTransform</A>
|
||||||
|
<DD>Flip (mirror) image horizontally.
|
||||||
|
<DT><A HREF="./org/libjpegturbo/turbojpeg/TJTransform.html#OP_NONE"><B>OP_NONE</B></A> -
|
||||||
|
Static variable in class org.libjpegturbo.turbojpeg.<A HREF="./org/libjpegturbo/turbojpeg/TJTransform.html" title="class in org.libjpegturbo.turbojpeg">TJTransform</A>
|
||||||
|
<DD>Do not transform the position of the image pixels.
|
||||||
|
<DT><A HREF="./org/libjpegturbo/turbojpeg/TJTransform.html#OP_ROT180"><B>OP_ROT180</B></A> -
|
||||||
|
Static variable in class org.libjpegturbo.turbojpeg.<A HREF="./org/libjpegturbo/turbojpeg/TJTransform.html" title="class in org.libjpegturbo.turbojpeg">TJTransform</A>
|
||||||
|
<DD>Rotate image 180 degrees.
|
||||||
|
<DT><A HREF="./org/libjpegturbo/turbojpeg/TJTransform.html#OP_ROT270"><B>OP_ROT270</B></A> -
|
||||||
|
Static variable in class org.libjpegturbo.turbojpeg.<A HREF="./org/libjpegturbo/turbojpeg/TJTransform.html" title="class in org.libjpegturbo.turbojpeg">TJTransform</A>
|
||||||
|
<DD>Rotate image counter-clockwise by 90 degrees.
|
||||||
|
<DT><A HREF="./org/libjpegturbo/turbojpeg/TJTransform.html#OP_ROT90"><B>OP_ROT90</B></A> -
|
||||||
|
Static variable in class org.libjpegturbo.turbojpeg.<A HREF="./org/libjpegturbo/turbojpeg/TJTransform.html" title="class in org.libjpegturbo.turbojpeg">TJTransform</A>
|
||||||
|
<DD>Rotate image clockwise by 90 degrees.
|
||||||
|
<DT><A HREF="./org/libjpegturbo/turbojpeg/TJTransform.html#OP_TRANSPOSE"><B>OP_TRANSPOSE</B></A> -
|
||||||
|
Static variable in class org.libjpegturbo.turbojpeg.<A HREF="./org/libjpegturbo/turbojpeg/TJTransform.html" title="class in org.libjpegturbo.turbojpeg">TJTransform</A>
|
||||||
|
<DD>Transpose image (flip/mirror along upper left to lower right axis).
|
||||||
|
<DT><A HREF="./org/libjpegturbo/turbojpeg/TJTransform.html#OP_TRANSVERSE"><B>OP_TRANSVERSE</B></A> -
|
||||||
|
Static variable in class org.libjpegturbo.turbojpeg.<A HREF="./org/libjpegturbo/turbojpeg/TJTransform.html" title="class in org.libjpegturbo.turbojpeg">TJTransform</A>
|
||||||
|
<DD>Transverse transpose image (flip/mirror along upper right to lower left
|
||||||
|
axis).
|
||||||
|
<DT><A HREF="./org/libjpegturbo/turbojpeg/TJTransform.html#OP_VFLIP"><B>OP_VFLIP</B></A> -
|
||||||
|
Static variable in class org.libjpegturbo.turbojpeg.<A HREF="./org/libjpegturbo/turbojpeg/TJTransform.html" title="class in org.libjpegturbo.turbojpeg">TJTransform</A>
|
||||||
|
<DD>Flip (mirror) image vertically.
|
||||||
|
<DT><A HREF="./org/libjpegturbo/turbojpeg/TJTransform.html#OPT_CROP"><B>OPT_CROP</B></A> -
|
||||||
|
Static variable in class org.libjpegturbo.turbojpeg.<A HREF="./org/libjpegturbo/turbojpeg/TJTransform.html" title="class in org.libjpegturbo.turbojpeg">TJTransform</A>
|
||||||
|
<DD>This option will enable lossless cropping.
|
||||||
|
<DT><A HREF="./org/libjpegturbo/turbojpeg/TJTransform.html#OPT_GRAY"><B>OPT_GRAY</B></A> -
|
||||||
|
Static variable in class org.libjpegturbo.turbojpeg.<A HREF="./org/libjpegturbo/turbojpeg/TJTransform.html" title="class in org.libjpegturbo.turbojpeg">TJTransform</A>
|
||||||
|
<DD>This option will discard the color data in the input image and produce
|
||||||
|
a grayscale output image.
|
||||||
|
<DT><A HREF="./org/libjpegturbo/turbojpeg/TJTransform.html#OPT_NOOUTPUT"><B>OPT_NOOUTPUT</B></A> -
|
||||||
|
Static variable in class org.libjpegturbo.turbojpeg.<A HREF="./org/libjpegturbo/turbojpeg/TJTransform.html" title="class in org.libjpegturbo.turbojpeg">TJTransform</A>
|
||||||
|
<DD>This option will prevent <A HREF="./org/libjpegturbo/turbojpeg/TJTransformer.html#transform(byte[][], org.libjpegturbo.turbojpeg.TJTransform[], int)"><CODE>TJTransformer.transform()</CODE></A> from outputting a JPEG image for this
|
||||||
|
particular transform.
|
||||||
|
<DT><A HREF="./org/libjpegturbo/turbojpeg/TJTransform.html#OPT_PERFECT"><B>OPT_PERFECT</B></A> -
|
||||||
|
Static variable in class org.libjpegturbo.turbojpeg.<A HREF="./org/libjpegturbo/turbojpeg/TJTransform.html" title="class in org.libjpegturbo.turbojpeg">TJTransform</A>
|
||||||
|
<DD>This option will cause <A HREF="./org/libjpegturbo/turbojpeg/TJTransformer.html#transform(byte[][], org.libjpegturbo.turbojpeg.TJTransform[], int)"><CODE>TJTransformer.transform()</CODE></A> to throw an exception if the transform is not
|
||||||
|
perfect.
|
||||||
|
<DT><A HREF="./org/libjpegturbo/turbojpeg/TJTransform.html#OPT_TRIM"><B>OPT_TRIM</B></A> -
|
||||||
|
Static variable in class org.libjpegturbo.turbojpeg.<A HREF="./org/libjpegturbo/turbojpeg/TJTransform.html" title="class in org.libjpegturbo.turbojpeg">TJTransform</A>
|
||||||
|
<DD>This option will discard any partial MCU blocks that cannot be
|
||||||
|
transformed.
|
||||||
|
<DT><A HREF="./org/libjpegturbo/turbojpeg/TJTransform.html#options"><B>options</B></A> -
|
||||||
|
Variable in class org.libjpegturbo.turbojpeg.<A HREF="./org/libjpegturbo/turbojpeg/TJTransform.html" title="class in org.libjpegturbo.turbojpeg">TJTransform</A>
|
||||||
|
<DD>Transform options (bitwise OR of one or more of <code>OPT_*</code>)
|
||||||
|
<DT><A HREF="./org/libjpegturbo/turbojpeg/package-summary.html"><B>org.libjpegturbo.turbojpeg</B></A> - package org.libjpegturbo.turbojpeg<DD> </DL>
|
||||||
|
<HR>
|
||||||
|
<A NAME="_P_"><!-- --></A><H2>
|
||||||
|
<B>P</B></H2>
|
||||||
|
<DL>
|
||||||
|
<DT><A HREF="./org/libjpegturbo/turbojpeg/TJ.html#PF_ABGR"><B>PF_ABGR</B></A> -
|
||||||
|
Static variable in class org.libjpegturbo.turbojpeg.<A HREF="./org/libjpegturbo/turbojpeg/TJ.html" title="class in org.libjpegturbo.turbojpeg">TJ</A>
|
||||||
|
<DD>ABGR pixel format.
|
||||||
|
<DT><A HREF="./org/libjpegturbo/turbojpeg/TJ.html#PF_ARGB"><B>PF_ARGB</B></A> -
|
||||||
|
Static variable in class org.libjpegturbo.turbojpeg.<A HREF="./org/libjpegturbo/turbojpeg/TJ.html" title="class in org.libjpegturbo.turbojpeg">TJ</A>
|
||||||
|
<DD>ARGB pixel format.
|
||||||
|
<DT><A HREF="./org/libjpegturbo/turbojpeg/TJ.html#PF_BGR"><B>PF_BGR</B></A> -
|
||||||
|
Static variable in class org.libjpegturbo.turbojpeg.<A HREF="./org/libjpegturbo/turbojpeg/TJ.html" title="class in org.libjpegturbo.turbojpeg">TJ</A>
|
||||||
|
<DD>BGR pixel format.
|
||||||
|
<DT><A HREF="./org/libjpegturbo/turbojpeg/TJ.html#PF_BGRA"><B>PF_BGRA</B></A> -
|
||||||
|
Static variable in class org.libjpegturbo.turbojpeg.<A HREF="./org/libjpegturbo/turbojpeg/TJ.html" title="class in org.libjpegturbo.turbojpeg">TJ</A>
|
||||||
|
<DD>BGRA pixel format.
|
||||||
|
<DT><A HREF="./org/libjpegturbo/turbojpeg/TJ.html#PF_BGRX"><B>PF_BGRX</B></A> -
|
||||||
|
Static variable in class org.libjpegturbo.turbojpeg.<A HREF="./org/libjpegturbo/turbojpeg/TJ.html" title="class in org.libjpegturbo.turbojpeg">TJ</A>
|
||||||
|
<DD>BGRX pixel format.
|
||||||
|
<DT><A HREF="./org/libjpegturbo/turbojpeg/TJ.html#PF_GRAY"><B>PF_GRAY</B></A> -
|
||||||
|
Static variable in class org.libjpegturbo.turbojpeg.<A HREF="./org/libjpegturbo/turbojpeg/TJ.html" title="class in org.libjpegturbo.turbojpeg">TJ</A>
|
||||||
|
<DD>Grayscale pixel format.
|
||||||
|
<DT><A HREF="./org/libjpegturbo/turbojpeg/TJ.html#PF_RGB"><B>PF_RGB</B></A> -
|
||||||
|
Static variable in class org.libjpegturbo.turbojpeg.<A HREF="./org/libjpegturbo/turbojpeg/TJ.html" title="class in org.libjpegturbo.turbojpeg">TJ</A>
|
||||||
|
<DD>RGB pixel format.
|
||||||
|
<DT><A HREF="./org/libjpegturbo/turbojpeg/TJ.html#PF_RGBA"><B>PF_RGBA</B></A> -
|
||||||
|
Static variable in class org.libjpegturbo.turbojpeg.<A HREF="./org/libjpegturbo/turbojpeg/TJ.html" title="class in org.libjpegturbo.turbojpeg">TJ</A>
|
||||||
|
<DD>RGBA pixel format.
|
||||||
|
<DT><A HREF="./org/libjpegturbo/turbojpeg/TJ.html#PF_RGBX"><B>PF_RGBX</B></A> -
|
||||||
|
Static variable in class org.libjpegturbo.turbojpeg.<A HREF="./org/libjpegturbo/turbojpeg/TJ.html" title="class in org.libjpegturbo.turbojpeg">TJ</A>
|
||||||
|
<DD>RGBX pixel format.
|
||||||
|
<DT><A HREF="./org/libjpegturbo/turbojpeg/TJ.html#PF_XBGR"><B>PF_XBGR</B></A> -
|
||||||
|
Static variable in class org.libjpegturbo.turbojpeg.<A HREF="./org/libjpegturbo/turbojpeg/TJ.html" title="class in org.libjpegturbo.turbojpeg">TJ</A>
|
||||||
|
<DD>XBGR pixel format.
|
||||||
|
<DT><A HREF="./org/libjpegturbo/turbojpeg/TJ.html#PF_XRGB"><B>PF_XRGB</B></A> -
|
||||||
|
Static variable in class org.libjpegturbo.turbojpeg.<A HREF="./org/libjpegturbo/turbojpeg/TJ.html" title="class in org.libjpegturbo.turbojpeg">TJ</A>
|
||||||
|
<DD>XRGB pixel format.
|
||||||
|
</DL>
|
||||||
|
<HR>
|
||||||
|
<A NAME="_S_"><!-- --></A><H2>
|
||||||
|
<B>S</B></H2>
|
||||||
|
<DL>
|
||||||
|
<DT><A HREF="./org/libjpegturbo/turbojpeg/TJ.html#SAMP_420"><B>SAMP_420</B></A> -
|
||||||
|
Static variable in class org.libjpegturbo.turbojpeg.<A HREF="./org/libjpegturbo/turbojpeg/TJ.html" title="class in org.libjpegturbo.turbojpeg">TJ</A>
|
||||||
|
<DD>4:2:0 chrominance subsampling.
|
||||||
|
<DT><A HREF="./org/libjpegturbo/turbojpeg/TJ.html#SAMP_422"><B>SAMP_422</B></A> -
|
||||||
|
Static variable in class org.libjpegturbo.turbojpeg.<A HREF="./org/libjpegturbo/turbojpeg/TJ.html" title="class in org.libjpegturbo.turbojpeg">TJ</A>
|
||||||
|
<DD>4:2:2 chrominance subsampling.
|
||||||
|
<DT><A HREF="./org/libjpegturbo/turbojpeg/TJ.html#SAMP_440"><B>SAMP_440</B></A> -
|
||||||
|
Static variable in class org.libjpegturbo.turbojpeg.<A HREF="./org/libjpegturbo/turbojpeg/TJ.html" title="class in org.libjpegturbo.turbojpeg">TJ</A>
|
||||||
|
<DD>4:4:0 chrominance subsampling.
|
||||||
|
<DT><A HREF="./org/libjpegturbo/turbojpeg/TJ.html#SAMP_444"><B>SAMP_444</B></A> -
|
||||||
|
Static variable in class org.libjpegturbo.turbojpeg.<A HREF="./org/libjpegturbo/turbojpeg/TJ.html" title="class in org.libjpegturbo.turbojpeg">TJ</A>
|
||||||
|
<DD>4:4:4 chrominance subsampling (no chrominance subsampling).
|
||||||
|
<DT><A HREF="./org/libjpegturbo/turbojpeg/TJ.html#SAMP_GRAY"><B>SAMP_GRAY</B></A> -
|
||||||
|
Static variable in class org.libjpegturbo.turbojpeg.<A HREF="./org/libjpegturbo/turbojpeg/TJ.html" title="class in org.libjpegturbo.turbojpeg">TJ</A>
|
||||||
|
<DD>Grayscale.
|
||||||
|
<DT><A HREF="./org/libjpegturbo/turbojpeg/TJDecompressor.html#setJPEGImage(byte[], int)"><B>setJPEGImage(byte[], int)</B></A> -
|
||||||
|
Method in class org.libjpegturbo.turbojpeg.<A HREF="./org/libjpegturbo/turbojpeg/TJDecompressor.html" title="class in org.libjpegturbo.turbojpeg">TJDecompressor</A>
|
||||||
|
<DD>Associate the JPEG image of length <code>imageSize</code> bytes stored in
|
||||||
|
<code>jpegImage</code> with this decompressor instance.
|
||||||
|
<DT><A HREF="./org/libjpegturbo/turbojpeg/TJCompressor.html#setJPEGQuality(int)"><B>setJPEGQuality(int)</B></A> -
|
||||||
|
Method in class org.libjpegturbo.turbojpeg.<A HREF="./org/libjpegturbo/turbojpeg/TJCompressor.html" title="class in org.libjpegturbo.turbojpeg">TJCompressor</A>
|
||||||
|
<DD>Set the JPEG image quality level for subsequent compress operations.
|
||||||
|
<DT><A HREF="./org/libjpegturbo/turbojpeg/TJCompressor.html#setSourceImage(byte[], int, int, int, int)"><B>setSourceImage(byte[], int, int, int, int)</B></A> -
|
||||||
|
Method in class org.libjpegturbo.turbojpeg.<A HREF="./org/libjpegturbo/turbojpeg/TJCompressor.html" title="class in org.libjpegturbo.turbojpeg">TJCompressor</A>
|
||||||
|
<DD>Associate an uncompressed source image with this compressor instance.
|
||||||
|
<DT><A HREF="./org/libjpegturbo/turbojpeg/TJCompressor.html#setSubsamp(int)"><B>setSubsamp(int)</B></A> -
|
||||||
|
Method in class org.libjpegturbo.turbojpeg.<A HREF="./org/libjpegturbo/turbojpeg/TJCompressor.html" title="class in org.libjpegturbo.turbojpeg">TJCompressor</A>
|
||||||
|
<DD>Set the level of chrominance subsampling for subsequent compress/encode
|
||||||
|
operations.
|
||||||
|
</DL>
|
||||||
|
<HR>
|
||||||
|
<A NAME="_T_"><!-- --></A><H2>
|
||||||
|
<B>T</B></H2>
|
||||||
|
<DL>
|
||||||
|
<DT><A HREF="./org/libjpegturbo/turbojpeg/TJ.html" title="class in org.libjpegturbo.turbojpeg"><B>TJ</B></A> - Class in <A HREF="./org/libjpegturbo/turbojpeg/package-summary.html">org.libjpegturbo.turbojpeg</A><DD>TurboJPEG utility class (cannot be instantiated)<DT><A HREF="./org/libjpegturbo/turbojpeg/TJ.html#TJ()"><B>TJ()</B></A> -
|
||||||
|
Constructor for class org.libjpegturbo.turbojpeg.<A HREF="./org/libjpegturbo/turbojpeg/TJ.html" title="class in org.libjpegturbo.turbojpeg">TJ</A>
|
||||||
|
<DD>
|
||||||
|
<DT><A HREF="./org/libjpegturbo/turbojpeg/TJCompressor.html" title="class in org.libjpegturbo.turbojpeg"><B>TJCompressor</B></A> - Class in <A HREF="./org/libjpegturbo/turbojpeg/package-summary.html">org.libjpegturbo.turbojpeg</A><DD>TurboJPEG compressor<DT><A HREF="./org/libjpegturbo/turbojpeg/TJCompressor.html#TJCompressor()"><B>TJCompressor()</B></A> -
|
||||||
|
Constructor for class org.libjpegturbo.turbojpeg.<A HREF="./org/libjpegturbo/turbojpeg/TJCompressor.html" title="class in org.libjpegturbo.turbojpeg">TJCompressor</A>
|
||||||
|
<DD>Create a TurboJPEG compressor instance.
|
||||||
|
<DT><A HREF="./org/libjpegturbo/turbojpeg/TJCompressor.html#TJCompressor(byte[], int, int, int, int)"><B>TJCompressor(byte[], int, int, int, int)</B></A> -
|
||||||
|
Constructor for class org.libjpegturbo.turbojpeg.<A HREF="./org/libjpegturbo/turbojpeg/TJCompressor.html" title="class in org.libjpegturbo.turbojpeg">TJCompressor</A>
|
||||||
|
<DD>Create a TurboJPEG compressor instance and associate the uncompressed
|
||||||
|
source image stored in <code>srcImage</code> with the newly-created
|
||||||
|
instance.
|
||||||
|
<DT><A HREF="./org/libjpegturbo/turbojpeg/TJCustomFilter.html" title="interface in org.libjpegturbo.turbojpeg"><B>TJCustomFilter</B></A> - Interface in <A HREF="./org/libjpegturbo/turbojpeg/package-summary.html">org.libjpegturbo.turbojpeg</A><DD>Custom filter callback interface<DT><A HREF="./org/libjpegturbo/turbojpeg/TJDecompressor.html" title="class in org.libjpegturbo.turbojpeg"><B>TJDecompressor</B></A> - Class in <A HREF="./org/libjpegturbo/turbojpeg/package-summary.html">org.libjpegturbo.turbojpeg</A><DD>TurboJPEG decompressor<DT><A HREF="./org/libjpegturbo/turbojpeg/TJDecompressor.html#TJDecompressor()"><B>TJDecompressor()</B></A> -
|
||||||
|
Constructor for class org.libjpegturbo.turbojpeg.<A HREF="./org/libjpegturbo/turbojpeg/TJDecompressor.html" title="class in org.libjpegturbo.turbojpeg">TJDecompressor</A>
|
||||||
|
<DD>Create a TurboJPEG decompresssor instance.
|
||||||
|
<DT><A HREF="./org/libjpegturbo/turbojpeg/TJDecompressor.html#TJDecompressor(byte[])"><B>TJDecompressor(byte[])</B></A> -
|
||||||
|
Constructor for class org.libjpegturbo.turbojpeg.<A HREF="./org/libjpegturbo/turbojpeg/TJDecompressor.html" title="class in org.libjpegturbo.turbojpeg">TJDecompressor</A>
|
||||||
|
<DD>Create a TurboJPEG decompressor instance and associate the JPEG image
|
||||||
|
stored in <code>jpegImage</code> with the newly-created instance.
|
||||||
|
<DT><A HREF="./org/libjpegturbo/turbojpeg/TJDecompressor.html#TJDecompressor(byte[], int)"><B>TJDecompressor(byte[], int)</B></A> -
|
||||||
|
Constructor for class org.libjpegturbo.turbojpeg.<A HREF="./org/libjpegturbo/turbojpeg/TJDecompressor.html" title="class in org.libjpegturbo.turbojpeg">TJDecompressor</A>
|
||||||
|
<DD>Create a TurboJPEG decompressor instance and associate the JPEG image
|
||||||
|
of length <code>imageSize</code> bytes stored in <code>jpegImage</code>
|
||||||
|
with the newly-created instance.
|
||||||
|
<DT><A HREF="./org/libjpegturbo/turbojpeg/TJScalingFactor.html" title="class in org.libjpegturbo.turbojpeg"><B>TJScalingFactor</B></A> - Class in <A HREF="./org/libjpegturbo/turbojpeg/package-summary.html">org.libjpegturbo.turbojpeg</A><DD>Fractional scaling factor<DT><A HREF="./org/libjpegturbo/turbojpeg/TJScalingFactor.html#TJScalingFactor(int, int)"><B>TJScalingFactor(int, int)</B></A> -
|
||||||
|
Constructor for class org.libjpegturbo.turbojpeg.<A HREF="./org/libjpegturbo/turbojpeg/TJScalingFactor.html" title="class in org.libjpegturbo.turbojpeg">TJScalingFactor</A>
|
||||||
|
<DD>
|
||||||
|
<DT><A HREF="./org/libjpegturbo/turbojpeg/TJTransform.html" title="class in org.libjpegturbo.turbojpeg"><B>TJTransform</B></A> - Class in <A HREF="./org/libjpegturbo/turbojpeg/package-summary.html">org.libjpegturbo.turbojpeg</A><DD>Lossless transform parameters<DT><A HREF="./org/libjpegturbo/turbojpeg/TJTransform.html#TJTransform()"><B>TJTransform()</B></A> -
|
||||||
|
Constructor for class org.libjpegturbo.turbojpeg.<A HREF="./org/libjpegturbo/turbojpeg/TJTransform.html" title="class in org.libjpegturbo.turbojpeg">TJTransform</A>
|
||||||
|
<DD>Create a new lossless transform instance.
|
||||||
|
<DT><A HREF="./org/libjpegturbo/turbojpeg/TJTransform.html#TJTransform(int, int, int, int, int, int, org.libjpegturbo.turbojpeg.TJCustomFilter)"><B>TJTransform(int, int, int, int, int, int, TJCustomFilter)</B></A> -
|
||||||
|
Constructor for class org.libjpegturbo.turbojpeg.<A HREF="./org/libjpegturbo/turbojpeg/TJTransform.html" title="class in org.libjpegturbo.turbojpeg">TJTransform</A>
|
||||||
|
<DD>Create a new lossless transform instance with the given parameters.
|
||||||
|
<DT><A HREF="./org/libjpegturbo/turbojpeg/TJTransform.html#TJTransform(java.awt.Rectangle, int, int, org.libjpegturbo.turbojpeg.TJCustomFilter)"><B>TJTransform(Rectangle, int, int, TJCustomFilter)</B></A> -
|
||||||
|
Constructor for class org.libjpegturbo.turbojpeg.<A HREF="./org/libjpegturbo/turbojpeg/TJTransform.html" title="class in org.libjpegturbo.turbojpeg">TJTransform</A>
|
||||||
|
<DD>Create a new lossless transform instance with the given parameters.
|
||||||
|
<DT><A HREF="./org/libjpegturbo/turbojpeg/TJTransformer.html" title="class in org.libjpegturbo.turbojpeg"><B>TJTransformer</B></A> - Class in <A HREF="./org/libjpegturbo/turbojpeg/package-summary.html">org.libjpegturbo.turbojpeg</A><DD>TurboJPEG lossless transformer<DT><A HREF="./org/libjpegturbo/turbojpeg/TJTransformer.html#TJTransformer()"><B>TJTransformer()</B></A> -
|
||||||
|
Constructor for class org.libjpegturbo.turbojpeg.<A HREF="./org/libjpegturbo/turbojpeg/TJTransformer.html" title="class in org.libjpegturbo.turbojpeg">TJTransformer</A>
|
||||||
|
<DD>Create a TurboJPEG lossless transformer instance.
|
||||||
|
<DT><A HREF="./org/libjpegturbo/turbojpeg/TJTransformer.html#TJTransformer(byte[])"><B>TJTransformer(byte[])</B></A> -
|
||||||
|
Constructor for class org.libjpegturbo.turbojpeg.<A HREF="./org/libjpegturbo/turbojpeg/TJTransformer.html" title="class in org.libjpegturbo.turbojpeg">TJTransformer</A>
|
||||||
|
<DD>Create a TurboJPEG lossless transformer instance and associate the JPEG
|
||||||
|
image stored in <code>jpegImage</code> with the newly-created instance.
|
||||||
|
<DT><A HREF="./org/libjpegturbo/turbojpeg/TJTransformer.html#TJTransformer(byte[], int)"><B>TJTransformer(byte[], int)</B></A> -
|
||||||
|
Constructor for class org.libjpegturbo.turbojpeg.<A HREF="./org/libjpegturbo/turbojpeg/TJTransformer.html" title="class in org.libjpegturbo.turbojpeg">TJTransformer</A>
|
||||||
|
<DD>Create a TurboJPEG lossless transformer instance and associate the JPEG
|
||||||
|
image of length <code>imageSize</code> bytes stored in
|
||||||
|
<code>jpegImage</code> with the newly-created instance.
|
||||||
|
<DT><A HREF="./org/libjpegturbo/turbojpeg/TJTransformer.html#transform(byte[][], org.libjpegturbo.turbojpeg.TJTransform[], int)"><B>transform(byte[][], TJTransform[], int)</B></A> -
|
||||||
|
Method in class org.libjpegturbo.turbojpeg.<A HREF="./org/libjpegturbo/turbojpeg/TJTransformer.html" title="class in org.libjpegturbo.turbojpeg">TJTransformer</A>
|
||||||
|
<DD>Losslessly transform the JPEG image associated with this transformer
|
||||||
|
instance into one or more JPEG images stored in the given destination
|
||||||
|
buffers.
|
||||||
|
<DT><A HREF="./org/libjpegturbo/turbojpeg/TJTransformer.html#transform(org.libjpegturbo.turbojpeg.TJTransform[], int)"><B>transform(TJTransform[], int)</B></A> -
|
||||||
|
Method in class org.libjpegturbo.turbojpeg.<A HREF="./org/libjpegturbo/turbojpeg/TJTransformer.html" title="class in org.libjpegturbo.turbojpeg">TJTransformer</A>
|
||||||
|
<DD>Losslessly transform the JPEG 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> instances, each of
|
||||||
|
which has a transformed JPEG image associated with it.
|
||||||
|
</DL>
|
||||||
|
<HR>
|
||||||
|
<A HREF="#_B_">B</A> <A HREF="#_C_">C</A> <A HREF="#_D_">D</A> <A HREF="#_E_">E</A> <A HREF="#_F_">F</A> <A HREF="#_G_">G</A> <A HREF="#_H_">H</A> <A HREF="#_I_">I</A> <A HREF="#_J_">J</A> <A HREF="#_N_">N</A> <A HREF="#_O_">O</A> <A HREF="#_P_">P</A> <A HREF="#_S_">S</A> <A HREF="#_T_">T</A>
|
||||||
|
|
||||||
|
<!-- ======= START OF BOTTOM NAVBAR ====== -->
|
||||||
|
<A NAME="navbar_bottom"><!-- --></A>
|
||||||
|
<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
|
||||||
|
<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
|
||||||
|
<TR>
|
||||||
|
<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
|
||||||
|
<A NAME="navbar_bottom_firstrow"><!-- --></A>
|
||||||
|
<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
|
||||||
|
<TR ALIGN="center" VALIGN="top">
|
||||||
|
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="./org/libjpegturbo/turbojpeg/package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
|
||||||
|
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <FONT CLASS="NavBarFont1">Class</FONT> </TD>
|
||||||
|
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="./org/libjpegturbo/turbojpeg/package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
|
||||||
|
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="./deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
|
||||||
|
<TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Index</B></FONT> </TD>
|
||||||
|
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="./help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
|
||||||
|
</TR>
|
||||||
|
</TABLE>
|
||||||
|
</TD>
|
||||||
|
<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
|
||||||
|
</EM>
|
||||||
|
</TD>
|
||||||
|
</TR>
|
||||||
|
|
||||||
|
<TR>
|
||||||
|
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
|
||||||
|
PREV
|
||||||
|
NEXT</FONT></TD>
|
||||||
|
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
|
||||||
|
<A HREF="./index.html?index-all.html" target="_top"><B>FRAMES</B></A>
|
||||||
|
<A HREF="index-all.html" target="_top"><B>NO FRAMES</B></A>
|
||||||
|
<SCRIPT type="text/javascript">
|
||||||
|
<!--
|
||||||
|
if(window==top) {
|
||||||
|
document.writeln('<A HREF="./allclasses-noframe.html"><B>All Classes</B></A>');
|
||||||
|
}
|
||||||
|
//-->
|
||||||
|
</SCRIPT>
|
||||||
|
<NOSCRIPT>
|
||||||
|
<A HREF="./allclasses-noframe.html"><B>All Classes</B></A>
|
||||||
|
</NOSCRIPT>
|
||||||
|
|
||||||
|
|
||||||
|
</FONT></TD>
|
||||||
|
</TR>
|
||||||
|
</TABLE>
|
||||||
|
<A NAME="skip-navbar_bottom"></A>
|
||||||
|
<!-- ======== END OF BOTTOM NAVBAR ======= -->
|
||||||
|
|
||||||
|
<HR>
|
||||||
|
|
||||||
|
</BODY>
|
||||||
|
</HTML>
|
||||||
36
java/doc/index.html
Normal file
@@ -0,0 +1,36 @@
|
|||||||
|
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN" "http://www.w3.org/TR/html4/frameset.dtd">
|
||||||
|
<!--NewPage-->
|
||||||
|
<HTML>
|
||||||
|
<HEAD>
|
||||||
|
<!-- Generated by javadoc on Fri Jun 29 14:29:14 CDT 2012-->
|
||||||
|
<TITLE>
|
||||||
|
Generated Documentation (Untitled)
|
||||||
|
</TITLE>
|
||||||
|
<SCRIPT type="text/javascript">
|
||||||
|
targetPage = "" + window.location.search;
|
||||||
|
if (targetPage != "" && targetPage != "undefined")
|
||||||
|
targetPage = targetPage.substring(1);
|
||||||
|
if (targetPage.indexOf(":") != -1)
|
||||||
|
targetPage = "undefined";
|
||||||
|
function loadFrames() {
|
||||||
|
if (targetPage != "" && targetPage != "undefined")
|
||||||
|
top.classFrame.location = top.targetPage;
|
||||||
|
}
|
||||||
|
</SCRIPT>
|
||||||
|
<NOSCRIPT>
|
||||||
|
</NOSCRIPT>
|
||||||
|
</HEAD>
|
||||||
|
<FRAMESET cols="20%,80%" title="" 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>
|
||||||
|
<H2>
|
||||||
|
Frame Alert</H2>
|
||||||
|
|
||||||
|
<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.
|
||||||
|
<BR>
|
||||||
|
Link to<A HREF="org/libjpegturbo/turbojpeg/package-summary.html">Non-frame version.</A>
|
||||||
|
</NOFRAMES>
|
||||||
|
</FRAMESET>
|
||||||
|
</HTML>
|
||||||
1097
java/doc/org/libjpegturbo/turbojpeg/TJ.html
Normal file
696
java/doc/org/libjpegturbo/turbojpeg/TJCompressor.html
Normal file
@@ -0,0 +1,696 @@
|
|||||||
|
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
|
||||||
|
<!--NewPage-->
|
||||||
|
<HTML>
|
||||||
|
<HEAD>
|
||||||
|
<!-- Generated by javadoc (build 1.6.0_33) on Fri Jun 29 14:29:13 CDT 2012 -->
|
||||||
|
<TITLE>
|
||||||
|
TJCompressor
|
||||||
|
</TITLE>
|
||||||
|
|
||||||
|
<META NAME="date" CONTENT="2012-06-29">
|
||||||
|
|
||||||
|
<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../stylesheet.css" TITLE="Style">
|
||||||
|
|
||||||
|
<SCRIPT type="text/javascript">
|
||||||
|
function windowTitle()
|
||||||
|
{
|
||||||
|
if (location.href.indexOf('is-external=true') == -1) {
|
||||||
|
parent.document.title="TJCompressor";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</SCRIPT>
|
||||||
|
<NOSCRIPT>
|
||||||
|
</NOSCRIPT>
|
||||||
|
|
||||||
|
</HEAD>
|
||||||
|
|
||||||
|
<BODY BGCOLOR="white" onload="windowTitle();">
|
||||||
|
<HR>
|
||||||
|
|
||||||
|
|
||||||
|
<!-- ========= START OF TOP NAVBAR ======= -->
|
||||||
|
<A NAME="navbar_top"><!-- --></A>
|
||||||
|
<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
|
||||||
|
<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
|
||||||
|
<TR>
|
||||||
|
<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
|
||||||
|
<A NAME="navbar_top_firstrow"><!-- --></A>
|
||||||
|
<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
|
||||||
|
<TR ALIGN="center" VALIGN="top">
|
||||||
|
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../org/libjpegturbo/turbojpeg/package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
|
||||||
|
<TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
|
||||||
|
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
|
||||||
|
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
|
||||||
|
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
|
||||||
|
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
|
||||||
|
</TR>
|
||||||
|
</TABLE>
|
||||||
|
</TD>
|
||||||
|
<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
|
||||||
|
</EM>
|
||||||
|
</TD>
|
||||||
|
</TR>
|
||||||
|
|
||||||
|
<TR>
|
||||||
|
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
|
||||||
|
<A HREF="../../../org/libjpegturbo/turbojpeg/TJ.html" title="class in org.libjpegturbo.turbojpeg"><B>PREV CLASS</B></A>
|
||||||
|
<A HREF="../../../org/libjpegturbo/turbojpeg/TJCustomFilter.html" title="interface in org.libjpegturbo.turbojpeg"><B>NEXT CLASS</B></A></FONT></TD>
|
||||||
|
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
|
||||||
|
<A HREF="../../../index.html?org/libjpegturbo/turbojpeg/TJCompressor.html" target="_top"><B>FRAMES</B></A>
|
||||||
|
<A HREF="TJCompressor.html" target="_top"><B>NO FRAMES</B></A>
|
||||||
|
<SCRIPT type="text/javascript">
|
||||||
|
<!--
|
||||||
|
if(window==top) {
|
||||||
|
document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');
|
||||||
|
}
|
||||||
|
//-->
|
||||||
|
</SCRIPT>
|
||||||
|
<NOSCRIPT>
|
||||||
|
<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>
|
||||||
|
</NOSCRIPT>
|
||||||
|
|
||||||
|
|
||||||
|
</FONT></TD>
|
||||||
|
</TR>
|
||||||
|
<TR>
|
||||||
|
<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
|
||||||
|
SUMMARY: NESTED | FIELD | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
|
||||||
|
<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
|
||||||
|
DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
|
||||||
|
</TR>
|
||||||
|
</TABLE>
|
||||||
|
<A NAME="skip-navbar_top"></A>
|
||||||
|
<!-- ========= END OF TOP NAVBAR ========= -->
|
||||||
|
|
||||||
|
<HR>
|
||||||
|
<!-- ======== START OF CLASS DATA ======== -->
|
||||||
|
<H2>
|
||||||
|
<FONT SIZE="-1">
|
||||||
|
org.libjpegturbo.turbojpeg</FONT>
|
||||||
|
<BR>
|
||||||
|
Class TJCompressor</H2>
|
||||||
|
<PRE>
|
||||||
|
java.lang.Object
|
||||||
|
<IMG SRC="../../../resources/inherit.gif" ALT="extended by "><B>org.libjpegturbo.turbojpeg.TJCompressor</B>
|
||||||
|
</PRE>
|
||||||
|
<HR>
|
||||||
|
<DL>
|
||||||
|
<DT><PRE>public class <B>TJCompressor</B><DT>extends java.lang.Object</DL>
|
||||||
|
</PRE>
|
||||||
|
|
||||||
|
<P>
|
||||||
|
TurboJPEG compressor
|
||||||
|
<P>
|
||||||
|
|
||||||
|
<P>
|
||||||
|
<HR>
|
||||||
|
|
||||||
|
<P>
|
||||||
|
|
||||||
|
<!-- ======== CONSTRUCTOR SUMMARY ======== -->
|
||||||
|
|
||||||
|
<A NAME="constructor_summary"><!-- --></A>
|
||||||
|
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
|
||||||
|
<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
|
||||||
|
<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
|
||||||
|
<B>Constructor Summary</B></FONT></TH>
|
||||||
|
</TR>
|
||||||
|
<TR BGCOLOR="white" CLASS="TableRowColor">
|
||||||
|
<TD><CODE><B><A HREF="../../../org/libjpegturbo/turbojpeg/TJCompressor.html#TJCompressor()">TJCompressor</A></B>()</CODE>
|
||||||
|
|
||||||
|
<BR>
|
||||||
|
Create a TurboJPEG compressor instance.</TD>
|
||||||
|
</TR>
|
||||||
|
<TR BGCOLOR="white" CLASS="TableRowColor">
|
||||||
|
<TD><CODE><B><A HREF="../../../org/libjpegturbo/turbojpeg/TJCompressor.html#TJCompressor(byte[], int, int, int, int)">TJCompressor</A></B>(byte[] srcImage,
|
||||||
|
int width,
|
||||||
|
int pitch,
|
||||||
|
int height,
|
||||||
|
int pixelFormat)</CODE>
|
||||||
|
|
||||||
|
<BR>
|
||||||
|
Create a TurboJPEG compressor instance and associate the uncompressed
|
||||||
|
source image stored in <code>srcImage</code> with the newly-created
|
||||||
|
instance.</TD>
|
||||||
|
</TR>
|
||||||
|
</TABLE>
|
||||||
|
|
||||||
|
<!-- ========== METHOD SUMMARY =========== -->
|
||||||
|
|
||||||
|
<A NAME="method_summary"><!-- --></A>
|
||||||
|
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
|
||||||
|
<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
|
||||||
|
<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
|
||||||
|
<B>Method Summary</B></FONT></TH>
|
||||||
|
</TR>
|
||||||
|
<TR BGCOLOR="white" CLASS="TableRowColor">
|
||||||
|
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
|
||||||
|
<CODE> void</CODE></FONT></TD>
|
||||||
|
<TD><CODE><B><A HREF="../../../org/libjpegturbo/turbojpeg/TJCompressor.html#close()">close</A></B>()</CODE>
|
||||||
|
|
||||||
|
<BR>
|
||||||
|
Free the native structures associated with this compressor instance.</TD>
|
||||||
|
</TR>
|
||||||
|
<TR BGCOLOR="white" CLASS="TableRowColor">
|
||||||
|
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
|
||||||
|
<CODE> void</CODE></FONT></TD>
|
||||||
|
<TD><CODE><B><A HREF="../../../org/libjpegturbo/turbojpeg/TJCompressor.html#compress(java.awt.image.BufferedImage, byte[], int)">compress</A></B>(java.awt.image.BufferedImage srcImage,
|
||||||
|
byte[] dstBuf,
|
||||||
|
int flags)</CODE>
|
||||||
|
|
||||||
|
<BR>
|
||||||
|
Compress the uncompressed source image stored in <code>srcImage</code>
|
||||||
|
and output a JPEG image to the given destination buffer.</TD>
|
||||||
|
</TR>
|
||||||
|
<TR BGCOLOR="white" CLASS="TableRowColor">
|
||||||
|
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
|
||||||
|
<CODE> byte[]</CODE></FONT></TD>
|
||||||
|
<TD><CODE><B><A HREF="../../../org/libjpegturbo/turbojpeg/TJCompressor.html#compress(java.awt.image.BufferedImage, int)">compress</A></B>(java.awt.image.BufferedImage srcImage,
|
||||||
|
int flags)</CODE>
|
||||||
|
|
||||||
|
<BR>
|
||||||
|
Compress the uncompressed source image stored in <code>srcImage</code>
|
||||||
|
and return a buffer containing a JPEG image.</TD>
|
||||||
|
</TR>
|
||||||
|
<TR BGCOLOR="white" CLASS="TableRowColor">
|
||||||
|
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
|
||||||
|
<CODE> void</CODE></FONT></TD>
|
||||||
|
<TD><CODE><B><A HREF="../../../org/libjpegturbo/turbojpeg/TJCompressor.html#compress(byte[], int)">compress</A></B>(byte[] dstBuf,
|
||||||
|
int flags)</CODE>
|
||||||
|
|
||||||
|
<BR>
|
||||||
|
Compress the uncompressed source image associated with this compressor
|
||||||
|
instance and output a JPEG image to the given destination buffer.</TD>
|
||||||
|
</TR>
|
||||||
|
<TR BGCOLOR="white" CLASS="TableRowColor">
|
||||||
|
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
|
||||||
|
<CODE> byte[]</CODE></FONT></TD>
|
||||||
|
<TD><CODE><B><A HREF="../../../org/libjpegturbo/turbojpeg/TJCompressor.html#compress(int)">compress</A></B>(int flags)</CODE>
|
||||||
|
|
||||||
|
<BR>
|
||||||
|
Compress the uncompressed source image associated with this compressor
|
||||||
|
instance and return a buffer containing a JPEG image.</TD>
|
||||||
|
</TR>
|
||||||
|
<TR BGCOLOR="white" CLASS="TableRowColor">
|
||||||
|
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
|
||||||
|
<CODE> void</CODE></FONT></TD>
|
||||||
|
<TD><CODE><B><A HREF="../../../org/libjpegturbo/turbojpeg/TJCompressor.html#encodeYUV(java.awt.image.BufferedImage, byte[], int)">encodeYUV</A></B>(java.awt.image.BufferedImage srcImage,
|
||||||
|
byte[] dstBuf,
|
||||||
|
int flags)</CODE>
|
||||||
|
|
||||||
|
<BR>
|
||||||
|
Encode the uncompressed source image stored in <code>srcImage</code>
|
||||||
|
and output a YUV planar image to the given destination buffer.</TD>
|
||||||
|
</TR>
|
||||||
|
<TR BGCOLOR="white" CLASS="TableRowColor">
|
||||||
|
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
|
||||||
|
<CODE> byte[]</CODE></FONT></TD>
|
||||||
|
<TD><CODE><B><A HREF="../../../org/libjpegturbo/turbojpeg/TJCompressor.html#encodeYUV(java.awt.image.BufferedImage, int)">encodeYUV</A></B>(java.awt.image.BufferedImage srcImage,
|
||||||
|
int flags)</CODE>
|
||||||
|
|
||||||
|
<BR>
|
||||||
|
Encode the uncompressed source image stored in <code>srcImage</code>
|
||||||
|
and return a buffer containing a YUV planar image.</TD>
|
||||||
|
</TR>
|
||||||
|
<TR BGCOLOR="white" CLASS="TableRowColor">
|
||||||
|
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
|
||||||
|
<CODE> void</CODE></FONT></TD>
|
||||||
|
<TD><CODE><B><A HREF="../../../org/libjpegturbo/turbojpeg/TJCompressor.html#encodeYUV(byte[], int)">encodeYUV</A></B>(byte[] dstBuf,
|
||||||
|
int flags)</CODE>
|
||||||
|
|
||||||
|
<BR>
|
||||||
|
Encode the uncompressed source image associated with this compressor
|
||||||
|
instance and output a YUV planar image to the given destination buffer.</TD>
|
||||||
|
</TR>
|
||||||
|
<TR BGCOLOR="white" CLASS="TableRowColor">
|
||||||
|
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
|
||||||
|
<CODE> byte[]</CODE></FONT></TD>
|
||||||
|
<TD><CODE><B><A HREF="../../../org/libjpegturbo/turbojpeg/TJCompressor.html#encodeYUV(int)">encodeYUV</A></B>(int flags)</CODE>
|
||||||
|
|
||||||
|
<BR>
|
||||||
|
Encode the uncompressed source image associated with this compressor
|
||||||
|
instance and return a buffer containing a YUV planar image.</TD>
|
||||||
|
</TR>
|
||||||
|
<TR BGCOLOR="white" CLASS="TableRowColor">
|
||||||
|
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
|
||||||
|
<CODE>protected void</CODE></FONT></TD>
|
||||||
|
<TD><CODE><B><A HREF="../../../org/libjpegturbo/turbojpeg/TJCompressor.html#finalize()">finalize</A></B>()</CODE>
|
||||||
|
|
||||||
|
<BR>
|
||||||
|
</TD>
|
||||||
|
</TR>
|
||||||
|
<TR BGCOLOR="white" CLASS="TableRowColor">
|
||||||
|
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
|
||||||
|
<CODE> int</CODE></FONT></TD>
|
||||||
|
<TD><CODE><B><A HREF="../../../org/libjpegturbo/turbojpeg/TJCompressor.html#getCompressedSize()">getCompressedSize</A></B>()</CODE>
|
||||||
|
|
||||||
|
<BR>
|
||||||
|
Returns the size of the image (in bytes) generated by the most recent
|
||||||
|
compress/encode operation.</TD>
|
||||||
|
</TR>
|
||||||
|
<TR BGCOLOR="white" CLASS="TableRowColor">
|
||||||
|
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
|
||||||
|
<CODE> void</CODE></FONT></TD>
|
||||||
|
<TD><CODE><B><A HREF="../../../org/libjpegturbo/turbojpeg/TJCompressor.html#setJPEGQuality(int)">setJPEGQuality</A></B>(int quality)</CODE>
|
||||||
|
|
||||||
|
<BR>
|
||||||
|
Set the JPEG image quality level for subsequent compress operations.</TD>
|
||||||
|
</TR>
|
||||||
|
<TR BGCOLOR="white" CLASS="TableRowColor">
|
||||||
|
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
|
||||||
|
<CODE> void</CODE></FONT></TD>
|
||||||
|
<TD><CODE><B><A HREF="../../../org/libjpegturbo/turbojpeg/TJCompressor.html#setSourceImage(byte[], int, int, int, int)">setSourceImage</A></B>(byte[] srcImage,
|
||||||
|
int width,
|
||||||
|
int pitch,
|
||||||
|
int height,
|
||||||
|
int pixelFormat)</CODE>
|
||||||
|
|
||||||
|
<BR>
|
||||||
|
Associate an uncompressed source image with this compressor instance.</TD>
|
||||||
|
</TR>
|
||||||
|
<TR BGCOLOR="white" CLASS="TableRowColor">
|
||||||
|
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
|
||||||
|
<CODE> void</CODE></FONT></TD>
|
||||||
|
<TD><CODE><B><A HREF="../../../org/libjpegturbo/turbojpeg/TJCompressor.html#setSubsamp(int)">setSubsamp</A></B>(int newSubsamp)</CODE>
|
||||||
|
|
||||||
|
<BR>
|
||||||
|
Set the level of chrominance subsampling for subsequent compress/encode
|
||||||
|
operations.</TD>
|
||||||
|
</TR>
|
||||||
|
</TABLE>
|
||||||
|
<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
|
||||||
|
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
|
||||||
|
<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
|
||||||
|
<TH ALIGN="left"><B>Methods inherited from class java.lang.Object</B></TH>
|
||||||
|
</TR>
|
||||||
|
<TR BGCOLOR="white" CLASS="TableRowColor">
|
||||||
|
<TD><CODE>clone, equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</CODE></TD>
|
||||||
|
</TR>
|
||||||
|
</TABLE>
|
||||||
|
|
||||||
|
<P>
|
||||||
|
|
||||||
|
<!-- ========= CONSTRUCTOR DETAIL ======== -->
|
||||||
|
|
||||||
|
<A NAME="constructor_detail"><!-- --></A>
|
||||||
|
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
|
||||||
|
<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
|
||||||
|
<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
|
||||||
|
<B>Constructor Detail</B></FONT></TH>
|
||||||
|
</TR>
|
||||||
|
</TABLE>
|
||||||
|
|
||||||
|
<A NAME="TJCompressor()"><!-- --></A><H3>
|
||||||
|
TJCompressor</H3>
|
||||||
|
<PRE>
|
||||||
|
public <B>TJCompressor</B>()
|
||||||
|
throws java.lang.Exception</PRE>
|
||||||
|
<DL>
|
||||||
|
<DD>Create a TurboJPEG compressor instance.
|
||||||
|
<P>
|
||||||
|
<DL>
|
||||||
|
|
||||||
|
<DT><B>Throws:</B>
|
||||||
|
<DD><CODE>java.lang.Exception</CODE></DL>
|
||||||
|
</DL>
|
||||||
|
<HR>
|
||||||
|
|
||||||
|
<A NAME="TJCompressor(byte[], int, int, int, int)"><!-- --></A><H3>
|
||||||
|
TJCompressor</H3>
|
||||||
|
<PRE>
|
||||||
|
public <B>TJCompressor</B>(byte[] srcImage,
|
||||||
|
int width,
|
||||||
|
int pitch,
|
||||||
|
int height,
|
||||||
|
int pixelFormat)
|
||||||
|
throws java.lang.Exception</PRE>
|
||||||
|
<DL>
|
||||||
|
<DD>Create a TurboJPEG compressor instance and associate the uncompressed
|
||||||
|
source image stored in <code>srcImage</code> with the newly-created
|
||||||
|
instance.
|
||||||
|
<P>
|
||||||
|
<DL>
|
||||||
|
<DT><B>Parameters:</B><DD><CODE>srcImage</CODE> - see <A HREF="../../../org/libjpegturbo/turbojpeg/TJCompressor.html#setSourceImage(byte[], int, int, int, int)"><CODE>setSourceImage(byte[], int, int, int, int)</CODE></A> for description<DD><CODE>width</CODE> - see <A HREF="../../../org/libjpegturbo/turbojpeg/TJCompressor.html#setSourceImage(byte[], int, int, int, int)"><CODE>setSourceImage(byte[], int, int, int, int)</CODE></A> for description<DD><CODE>pitch</CODE> - see <A HREF="../../../org/libjpegturbo/turbojpeg/TJCompressor.html#setSourceImage(byte[], int, int, int, int)"><CODE>setSourceImage(byte[], int, int, int, int)</CODE></A> for description<DD><CODE>height</CODE> - see <A HREF="../../../org/libjpegturbo/turbojpeg/TJCompressor.html#setSourceImage(byte[], int, int, int, int)"><CODE>setSourceImage(byte[], int, int, int, int)</CODE></A> for description<DD><CODE>pixelFormat</CODE> - see <A HREF="../../../org/libjpegturbo/turbojpeg/TJCompressor.html#setSourceImage(byte[], int, int, int, int)"><CODE>setSourceImage(byte[], int, int, int, int)</CODE></A> for description
|
||||||
|
<DT><B>Throws:</B>
|
||||||
|
<DD><CODE>java.lang.Exception</CODE></DL>
|
||||||
|
</DL>
|
||||||
|
|
||||||
|
<!-- ============ METHOD DETAIL ========== -->
|
||||||
|
|
||||||
|
<A NAME="method_detail"><!-- --></A>
|
||||||
|
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
|
||||||
|
<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
|
||||||
|
<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
|
||||||
|
<B>Method Detail</B></FONT></TH>
|
||||||
|
</TR>
|
||||||
|
</TABLE>
|
||||||
|
|
||||||
|
<A NAME="setSourceImage(byte[], int, int, int, int)"><!-- --></A><H3>
|
||||||
|
setSourceImage</H3>
|
||||||
|
<PRE>
|
||||||
|
public void <B>setSourceImage</B>(byte[] srcImage,
|
||||||
|
int width,
|
||||||
|
int pitch,
|
||||||
|
int height,
|
||||||
|
int pixelFormat)
|
||||||
|
throws java.lang.Exception</PRE>
|
||||||
|
<DL>
|
||||||
|
<DD>Associate an uncompressed source image with this compressor instance.
|
||||||
|
<P>
|
||||||
|
<DD><DL>
|
||||||
|
<DT><B>Parameters:</B><DD><CODE>srcImage</CODE> - image buffer containing RGB or grayscale pixels to be
|
||||||
|
compressed<DD><CODE>width</CODE> - width (in pixels) of the source image<DD><CODE>pitch</CODE> - bytes per line of the source image. Normally, this should be
|
||||||
|
<code>width * TJ.pixelSize(pixelFormat)</code> if the source image is
|
||||||
|
unpadded, but you can use this parameter to, for instance, specify that
|
||||||
|
the scanlines in the source image are padded to 4-byte boundaries, as is
|
||||||
|
the case for Windows bitmaps. You can also be clever and use this
|
||||||
|
parameter to skip lines, etc. Setting this parameter to 0 is the
|
||||||
|
equivalent of setting it to <code>width *
|
||||||
|
TJ.pixelSize(pixelFormat)</code>.<DD><CODE>height</CODE> - height (in pixels) of the source image<DD><CODE>pixelFormat</CODE> - pixel format of the source image (one of
|
||||||
|
<A HREF="../../../org/libjpegturbo/turbojpeg/TJ.html" title="class in org.libjpegturbo.turbojpeg"><CODE>TJ.PF_*</CODE></A>)
|
||||||
|
<DT><B>Throws:</B>
|
||||||
|
<DD><CODE>java.lang.Exception</CODE></DL>
|
||||||
|
</DD>
|
||||||
|
</DL>
|
||||||
|
<HR>
|
||||||
|
|
||||||
|
<A NAME="setSubsamp(int)"><!-- --></A><H3>
|
||||||
|
setSubsamp</H3>
|
||||||
|
<PRE>
|
||||||
|
public void <B>setSubsamp</B>(int newSubsamp)
|
||||||
|
throws java.lang.Exception</PRE>
|
||||||
|
<DL>
|
||||||
|
<DD>Set the level of chrominance subsampling for subsequent compress/encode
|
||||||
|
operations.
|
||||||
|
<P>
|
||||||
|
<DD><DL>
|
||||||
|
<DT><B>Parameters:</B><DD><CODE>newSubsamp</CODE> - the new level of chrominance subsampling (one of
|
||||||
|
<A HREF="../../../org/libjpegturbo/turbojpeg/TJ.html" title="class in org.libjpegturbo.turbojpeg"><CODE>TJ.SAMP_*</CODE></A>)
|
||||||
|
<DT><B>Throws:</B>
|
||||||
|
<DD><CODE>java.lang.Exception</CODE></DL>
|
||||||
|
</DD>
|
||||||
|
</DL>
|
||||||
|
<HR>
|
||||||
|
|
||||||
|
<A NAME="setJPEGQuality(int)"><!-- --></A><H3>
|
||||||
|
setJPEGQuality</H3>
|
||||||
|
<PRE>
|
||||||
|
public void <B>setJPEGQuality</B>(int quality)
|
||||||
|
throws java.lang.Exception</PRE>
|
||||||
|
<DL>
|
||||||
|
<DD>Set the JPEG image quality level for subsequent compress operations.
|
||||||
|
<P>
|
||||||
|
<DD><DL>
|
||||||
|
<DT><B>Parameters:</B><DD><CODE>quality</CODE> - the new JPEG image quality level (1 to 100, 1 = worst,
|
||||||
|
100 = best)
|
||||||
|
<DT><B>Throws:</B>
|
||||||
|
<DD><CODE>java.lang.Exception</CODE></DL>
|
||||||
|
</DD>
|
||||||
|
</DL>
|
||||||
|
<HR>
|
||||||
|
|
||||||
|
<A NAME="compress(byte[], int)"><!-- --></A><H3>
|
||||||
|
compress</H3>
|
||||||
|
<PRE>
|
||||||
|
public void <B>compress</B>(byte[] dstBuf,
|
||||||
|
int flags)
|
||||||
|
throws java.lang.Exception</PRE>
|
||||||
|
<DL>
|
||||||
|
<DD>Compress the uncompressed source image associated with this compressor
|
||||||
|
instance and output a JPEG image to the given destination buffer.
|
||||||
|
<P>
|
||||||
|
<DD><DL>
|
||||||
|
<DT><B>Parameters:</B><DD><CODE>dstBuf</CODE> - buffer that will receive the JPEG image. Use
|
||||||
|
<A HREF="../../../org/libjpegturbo/turbojpeg/TJ.html#bufSize(int, int, int)"><CODE>TJ.bufSize(int, int, int)</CODE></A> to determine the maximum size for this buffer based on
|
||||||
|
the image width and height.<DD><CODE>flags</CODE> - the bitwise OR of one or more of <A HREF="../../../org/libjpegturbo/turbojpeg/TJ.html" title="class in org.libjpegturbo.turbojpeg"><CODE>TJ.FLAG_*</CODE></A>
|
||||||
|
<DT><B>Throws:</B>
|
||||||
|
<DD><CODE>java.lang.Exception</CODE></DL>
|
||||||
|
</DD>
|
||||||
|
</DL>
|
||||||
|
<HR>
|
||||||
|
|
||||||
|
<A NAME="compress(int)"><!-- --></A><H3>
|
||||||
|
compress</H3>
|
||||||
|
<PRE>
|
||||||
|
public byte[] <B>compress</B>(int flags)
|
||||||
|
throws java.lang.Exception</PRE>
|
||||||
|
<DL>
|
||||||
|
<DD>Compress the uncompressed source image associated with this compressor
|
||||||
|
instance and return a buffer containing a JPEG image.
|
||||||
|
<P>
|
||||||
|
<DD><DL>
|
||||||
|
<DT><B>Parameters:</B><DD><CODE>flags</CODE> - the bitwise OR of one or more of <A HREF="../../../org/libjpegturbo/turbojpeg/TJ.html" title="class in org.libjpegturbo.turbojpeg"><CODE>TJ.FLAG_*</CODE></A>
|
||||||
|
<DT><B>Returns:</B><DD>a buffer containing a JPEG image. The length of this buffer will
|
||||||
|
not be equal to the size of the JPEG image. Use <A HREF="../../../org/libjpegturbo/turbojpeg/TJCompressor.html#getCompressedSize()"><CODE>getCompressedSize()</CODE></A> to obtain the size of the JPEG image.
|
||||||
|
<DT><B>Throws:</B>
|
||||||
|
<DD><CODE>java.lang.Exception</CODE></DL>
|
||||||
|
</DD>
|
||||||
|
</DL>
|
||||||
|
<HR>
|
||||||
|
|
||||||
|
<A NAME="compress(java.awt.image.BufferedImage, byte[], int)"><!-- --></A><H3>
|
||||||
|
compress</H3>
|
||||||
|
<PRE>
|
||||||
|
public void <B>compress</B>(java.awt.image.BufferedImage srcImage,
|
||||||
|
byte[] dstBuf,
|
||||||
|
int flags)
|
||||||
|
throws java.lang.Exception</PRE>
|
||||||
|
<DL>
|
||||||
|
<DD>Compress the uncompressed source image stored in <code>srcImage</code>
|
||||||
|
and output a JPEG image to the given destination buffer.
|
||||||
|
<P>
|
||||||
|
<DD><DL>
|
||||||
|
<DT><B>Parameters:</B><DD><CODE>srcImage</CODE> - a <code>BufferedImage</code> instance containing RGB or
|
||||||
|
grayscale pixels to be compressed<DD><CODE>dstBuf</CODE> - buffer that will receive the JPEG image. Use
|
||||||
|
<A HREF="../../../org/libjpegturbo/turbojpeg/TJ.html#bufSize(int, int, int)"><CODE>TJ.bufSize(int, int, int)</CODE></A> to determine the maximum size for this buffer based on
|
||||||
|
the image width and height.<DD><CODE>flags</CODE> - the bitwise OR of one or more of <A HREF="../../../org/libjpegturbo/turbojpeg/TJ.html" title="class in org.libjpegturbo.turbojpeg"><CODE>TJ.FLAG_*</CODE></A>
|
||||||
|
<DT><B>Throws:</B>
|
||||||
|
<DD><CODE>java.lang.Exception</CODE></DL>
|
||||||
|
</DD>
|
||||||
|
</DL>
|
||||||
|
<HR>
|
||||||
|
|
||||||
|
<A NAME="compress(java.awt.image.BufferedImage, int)"><!-- --></A><H3>
|
||||||
|
compress</H3>
|
||||||
|
<PRE>
|
||||||
|
public byte[] <B>compress</B>(java.awt.image.BufferedImage srcImage,
|
||||||
|
int flags)
|
||||||
|
throws java.lang.Exception</PRE>
|
||||||
|
<DL>
|
||||||
|
<DD>Compress the uncompressed source image stored in <code>srcImage</code>
|
||||||
|
and return a buffer containing a JPEG image.
|
||||||
|
<P>
|
||||||
|
<DD><DL>
|
||||||
|
<DT><B>Parameters:</B><DD><CODE>srcImage</CODE> - a <code>BufferedImage</code> instance containing RGB or
|
||||||
|
grayscale pixels to be compressed<DD><CODE>flags</CODE> - the bitwise OR of one or more of <A HREF="../../../org/libjpegturbo/turbojpeg/TJ.html" title="class in org.libjpegturbo.turbojpeg"><CODE>TJ.FLAG_*</CODE></A>
|
||||||
|
<DT><B>Returns:</B><DD>a buffer containing a JPEG image. The length of this buffer will
|
||||||
|
not be equal to the size of the JPEG image. Use <A HREF="../../../org/libjpegturbo/turbojpeg/TJCompressor.html#getCompressedSize()"><CODE>getCompressedSize()</CODE></A> to obtain the size of the JPEG image.
|
||||||
|
<DT><B>Throws:</B>
|
||||||
|
<DD><CODE>java.lang.Exception</CODE></DL>
|
||||||
|
</DD>
|
||||||
|
</DL>
|
||||||
|
<HR>
|
||||||
|
|
||||||
|
<A NAME="encodeYUV(byte[], int)"><!-- --></A><H3>
|
||||||
|
encodeYUV</H3>
|
||||||
|
<PRE>
|
||||||
|
public void <B>encodeYUV</B>(byte[] dstBuf,
|
||||||
|
int flags)
|
||||||
|
throws java.lang.Exception</PRE>
|
||||||
|
<DL>
|
||||||
|
<DD>Encode the uncompressed source image associated with this compressor
|
||||||
|
instance and output a YUV planar image to the given destination buffer.
|
||||||
|
This method uses the accelerated color conversion routines in
|
||||||
|
TurboJPEG's underlying codec to produce a planar YUV image that is
|
||||||
|
suitable for direct video display. Specifically, if the chrominance
|
||||||
|
components are subsampled along the horizontal dimension, then the width
|
||||||
|
of the luminance plane is padded to 2 in the output image (same goes for
|
||||||
|
the height of the luminance plane, if the chrominance components are
|
||||||
|
subsampled along the vertical dimension.) Also, each line of each plane
|
||||||
|
in the output image is padded to 4 bytes. Although this will work with
|
||||||
|
any subsampling option, it is really only useful in combination with
|
||||||
|
<A HREF="../../../org/libjpegturbo/turbojpeg/TJ.html#SAMP_420"><CODE>TJ.SAMP_420</CODE></A>, which produces an image compatible with the I420 (AKA
|
||||||
|
"YUV420P") format.
|
||||||
|
<P>
|
||||||
|
<DD><DL>
|
||||||
|
<DT><B>Parameters:</B><DD><CODE>dstBuf</CODE> - buffer that will receive the YUV planar image. Use
|
||||||
|
<A HREF="../../../org/libjpegturbo/turbojpeg/TJ.html#bufSizeYUV(int, int, int)"><CODE>TJ.bufSizeYUV(int, int, int)</CODE></A> to determine the appropriate size for this buffer
|
||||||
|
based on the image width, height, and level of chrominance subsampling.<DD><CODE>flags</CODE> - the bitwise OR of one or more of <A HREF="../../../org/libjpegturbo/turbojpeg/TJ.html" title="class in org.libjpegturbo.turbojpeg"><CODE>TJ.FLAG_*</CODE></A>
|
||||||
|
<DT><B>Throws:</B>
|
||||||
|
<DD><CODE>java.lang.Exception</CODE></DL>
|
||||||
|
</DD>
|
||||||
|
</DL>
|
||||||
|
<HR>
|
||||||
|
|
||||||
|
<A NAME="encodeYUV(int)"><!-- --></A><H3>
|
||||||
|
encodeYUV</H3>
|
||||||
|
<PRE>
|
||||||
|
public byte[] <B>encodeYUV</B>(int flags)
|
||||||
|
throws java.lang.Exception</PRE>
|
||||||
|
<DL>
|
||||||
|
<DD>Encode the uncompressed source image associated with this compressor
|
||||||
|
instance and return a buffer containing a YUV planar image. See
|
||||||
|
<A HREF="../../../org/libjpegturbo/turbojpeg/TJCompressor.html#encodeYUV(byte[], int)"><CODE>encodeYUV(byte[], int)</CODE></A> for more detail.
|
||||||
|
<P>
|
||||||
|
<DD><DL>
|
||||||
|
<DT><B>Parameters:</B><DD><CODE>flags</CODE> - the bitwise OR of one or more of <A HREF="../../../org/libjpegturbo/turbojpeg/TJ.html" title="class in org.libjpegturbo.turbojpeg"><CODE>TJ.FLAG_*</CODE></A>
|
||||||
|
<DT><B>Returns:</B><DD>a buffer containing a YUV planar image
|
||||||
|
<DT><B>Throws:</B>
|
||||||
|
<DD><CODE>java.lang.Exception</CODE></DL>
|
||||||
|
</DD>
|
||||||
|
</DL>
|
||||||
|
<HR>
|
||||||
|
|
||||||
|
<A NAME="encodeYUV(java.awt.image.BufferedImage, byte[], int)"><!-- --></A><H3>
|
||||||
|
encodeYUV</H3>
|
||||||
|
<PRE>
|
||||||
|
public void <B>encodeYUV</B>(java.awt.image.BufferedImage srcImage,
|
||||||
|
byte[] dstBuf,
|
||||||
|
int flags)
|
||||||
|
throws java.lang.Exception</PRE>
|
||||||
|
<DL>
|
||||||
|
<DD>Encode the uncompressed source image stored in <code>srcImage</code>
|
||||||
|
and output a YUV planar image to the given destination buffer. See
|
||||||
|
<A HREF="../../../org/libjpegturbo/turbojpeg/TJCompressor.html#encodeYUV(byte[], int)"><CODE>encodeYUV(byte[], int)</CODE></A> for more detail.
|
||||||
|
<P>
|
||||||
|
<DD><DL>
|
||||||
|
<DT><B>Parameters:</B><DD><CODE>srcImage</CODE> - a <code>BufferedImage</code> instance containing RGB or
|
||||||
|
grayscale pixels to be encoded<DD><CODE>dstBuf</CODE> - buffer that will receive the YUV planar image. Use
|
||||||
|
<A HREF="../../../org/libjpegturbo/turbojpeg/TJ.html#bufSizeYUV(int, int, int)"><CODE>TJ.bufSizeYUV(int, int, int)</CODE></A> to determine the appropriate size for this buffer
|
||||||
|
based on the image width, height, and level of chrominance subsampling.<DD><CODE>flags</CODE> - the bitwise OR of one or more of <A HREF="../../../org/libjpegturbo/turbojpeg/TJ.html" title="class in org.libjpegturbo.turbojpeg"><CODE>TJ.FLAG_*</CODE></A>
|
||||||
|
<DT><B>Throws:</B>
|
||||||
|
<DD><CODE>java.lang.Exception</CODE></DL>
|
||||||
|
</DD>
|
||||||
|
</DL>
|
||||||
|
<HR>
|
||||||
|
|
||||||
|
<A NAME="encodeYUV(java.awt.image.BufferedImage, int)"><!-- --></A><H3>
|
||||||
|
encodeYUV</H3>
|
||||||
|
<PRE>
|
||||||
|
public byte[] <B>encodeYUV</B>(java.awt.image.BufferedImage srcImage,
|
||||||
|
int flags)
|
||||||
|
throws java.lang.Exception</PRE>
|
||||||
|
<DL>
|
||||||
|
<DD>Encode the uncompressed source image stored in <code>srcImage</code>
|
||||||
|
and return a buffer containing a YUV planar image. See
|
||||||
|
<A HREF="../../../org/libjpegturbo/turbojpeg/TJCompressor.html#encodeYUV(byte[], int)"><CODE>encodeYUV(byte[], int)</CODE></A> for more detail.
|
||||||
|
<P>
|
||||||
|
<DD><DL>
|
||||||
|
<DT><B>Parameters:</B><DD><CODE>srcImage</CODE> - a <code>BufferedImage</code> instance containing RGB or
|
||||||
|
grayscale pixels to be encoded<DD><CODE>flags</CODE> - the bitwise OR of one or more of <A HREF="../../../org/libjpegturbo/turbojpeg/TJ.html" title="class in org.libjpegturbo.turbojpeg"><CODE>TJ.FLAG_*</CODE></A>
|
||||||
|
<DT><B>Returns:</B><DD>a buffer containing a YUV planar image
|
||||||
|
<DT><B>Throws:</B>
|
||||||
|
<DD><CODE>java.lang.Exception</CODE></DL>
|
||||||
|
</DD>
|
||||||
|
</DL>
|
||||||
|
<HR>
|
||||||
|
|
||||||
|
<A NAME="getCompressedSize()"><!-- --></A><H3>
|
||||||
|
getCompressedSize</H3>
|
||||||
|
<PRE>
|
||||||
|
public int <B>getCompressedSize</B>()</PRE>
|
||||||
|
<DL>
|
||||||
|
<DD>Returns the size of the image (in bytes) generated by the most recent
|
||||||
|
compress/encode operation.
|
||||||
|
<P>
|
||||||
|
<DD><DL>
|
||||||
|
|
||||||
|
<DT><B>Returns:</B><DD>the size of the image (in bytes) generated by the most recent
|
||||||
|
compress/encode operation</DL>
|
||||||
|
</DD>
|
||||||
|
</DL>
|
||||||
|
<HR>
|
||||||
|
|
||||||
|
<A NAME="close()"><!-- --></A><H3>
|
||||||
|
close</H3>
|
||||||
|
<PRE>
|
||||||
|
public void <B>close</B>()
|
||||||
|
throws java.lang.Exception</PRE>
|
||||||
|
<DL>
|
||||||
|
<DD>Free the native structures associated with this compressor instance.
|
||||||
|
<P>
|
||||||
|
<DD><DL>
|
||||||
|
|
||||||
|
<DT><B>Throws:</B>
|
||||||
|
<DD><CODE>java.lang.Exception</CODE></DL>
|
||||||
|
</DD>
|
||||||
|
</DL>
|
||||||
|
<HR>
|
||||||
|
|
||||||
|
<A NAME="finalize()"><!-- --></A><H3>
|
||||||
|
finalize</H3>
|
||||||
|
<PRE>
|
||||||
|
protected void <B>finalize</B>()
|
||||||
|
throws java.lang.Throwable</PRE>
|
||||||
|
<DL>
|
||||||
|
<DD><DL>
|
||||||
|
<DT><B>Overrides:</B><DD><CODE>finalize</CODE> in class <CODE>java.lang.Object</CODE></DL>
|
||||||
|
</DD>
|
||||||
|
<DD><DL>
|
||||||
|
|
||||||
|
<DT><B>Throws:</B>
|
||||||
|
<DD><CODE>java.lang.Throwable</CODE></DL>
|
||||||
|
</DD>
|
||||||
|
</DL>
|
||||||
|
<!-- ========= END OF CLASS DATA ========= -->
|
||||||
|
<HR>
|
||||||
|
|
||||||
|
|
||||||
|
<!-- ======= START OF BOTTOM NAVBAR ====== -->
|
||||||
|
<A NAME="navbar_bottom"><!-- --></A>
|
||||||
|
<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
|
||||||
|
<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
|
||||||
|
<TR>
|
||||||
|
<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
|
||||||
|
<A NAME="navbar_bottom_firstrow"><!-- --></A>
|
||||||
|
<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
|
||||||
|
<TR ALIGN="center" VALIGN="top">
|
||||||
|
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../org/libjpegturbo/turbojpeg/package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
|
||||||
|
<TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
|
||||||
|
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
|
||||||
|
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
|
||||||
|
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
|
||||||
|
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
|
||||||
|
</TR>
|
||||||
|
</TABLE>
|
||||||
|
</TD>
|
||||||
|
<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
|
||||||
|
</EM>
|
||||||
|
</TD>
|
||||||
|
</TR>
|
||||||
|
|
||||||
|
<TR>
|
||||||
|
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
|
||||||
|
<A HREF="../../../org/libjpegturbo/turbojpeg/TJ.html" title="class in org.libjpegturbo.turbojpeg"><B>PREV CLASS</B></A>
|
||||||
|
<A HREF="../../../org/libjpegturbo/turbojpeg/TJCustomFilter.html" title="interface in org.libjpegturbo.turbojpeg"><B>NEXT CLASS</B></A></FONT></TD>
|
||||||
|
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
|
||||||
|
<A HREF="../../../index.html?org/libjpegturbo/turbojpeg/TJCompressor.html" target="_top"><B>FRAMES</B></A>
|
||||||
|
<A HREF="TJCompressor.html" target="_top"><B>NO FRAMES</B></A>
|
||||||
|
<SCRIPT type="text/javascript">
|
||||||
|
<!--
|
||||||
|
if(window==top) {
|
||||||
|
document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');
|
||||||
|
}
|
||||||
|
//-->
|
||||||
|
</SCRIPT>
|
||||||
|
<NOSCRIPT>
|
||||||
|
<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>
|
||||||
|
</NOSCRIPT>
|
||||||
|
|
||||||
|
|
||||||
|
</FONT></TD>
|
||||||
|
</TR>
|
||||||
|
<TR>
|
||||||
|
<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
|
||||||
|
SUMMARY: NESTED | FIELD | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
|
||||||
|
<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
|
||||||
|
DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
|
||||||
|
</TR>
|
||||||
|
</TABLE>
|
||||||
|
<A NAME="skip-navbar_bottom"></A>
|
||||||
|
<!-- ======== END OF BOTTOM NAVBAR ======= -->
|
||||||
|
|
||||||
|
<HR>
|
||||||
|
|
||||||
|
</BODY>
|
||||||
|
</HTML>
|
||||||
240
java/doc/org/libjpegturbo/turbojpeg/TJCustomFilter.html
Normal file
@@ -0,0 +1,240 @@
|
|||||||
|
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
|
||||||
|
<!--NewPage-->
|
||||||
|
<HTML>
|
||||||
|
<HEAD>
|
||||||
|
<!-- Generated by javadoc (build 1.6.0_33) on Fri Jun 29 14:29:13 CDT 2012 -->
|
||||||
|
<TITLE>
|
||||||
|
TJCustomFilter
|
||||||
|
</TITLE>
|
||||||
|
|
||||||
|
<META NAME="date" CONTENT="2012-06-29">
|
||||||
|
|
||||||
|
<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../stylesheet.css" TITLE="Style">
|
||||||
|
|
||||||
|
<SCRIPT type="text/javascript">
|
||||||
|
function windowTitle()
|
||||||
|
{
|
||||||
|
if (location.href.indexOf('is-external=true') == -1) {
|
||||||
|
parent.document.title="TJCustomFilter";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</SCRIPT>
|
||||||
|
<NOSCRIPT>
|
||||||
|
</NOSCRIPT>
|
||||||
|
|
||||||
|
</HEAD>
|
||||||
|
|
||||||
|
<BODY BGCOLOR="white" onload="windowTitle();">
|
||||||
|
<HR>
|
||||||
|
|
||||||
|
|
||||||
|
<!-- ========= START OF TOP NAVBAR ======= -->
|
||||||
|
<A NAME="navbar_top"><!-- --></A>
|
||||||
|
<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
|
||||||
|
<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
|
||||||
|
<TR>
|
||||||
|
<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
|
||||||
|
<A NAME="navbar_top_firstrow"><!-- --></A>
|
||||||
|
<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
|
||||||
|
<TR ALIGN="center" VALIGN="top">
|
||||||
|
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../org/libjpegturbo/turbojpeg/package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
|
||||||
|
<TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
|
||||||
|
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
|
||||||
|
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
|
||||||
|
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
|
||||||
|
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
|
||||||
|
</TR>
|
||||||
|
</TABLE>
|
||||||
|
</TD>
|
||||||
|
<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
|
||||||
|
</EM>
|
||||||
|
</TD>
|
||||||
|
</TR>
|
||||||
|
|
||||||
|
<TR>
|
||||||
|
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
|
||||||
|
<A HREF="../../../org/libjpegturbo/turbojpeg/TJCompressor.html" title="class in org.libjpegturbo.turbojpeg"><B>PREV CLASS</B></A>
|
||||||
|
<A HREF="../../../org/libjpegturbo/turbojpeg/TJDecompressor.html" title="class in org.libjpegturbo.turbojpeg"><B>NEXT CLASS</B></A></FONT></TD>
|
||||||
|
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
|
||||||
|
<A HREF="../../../index.html?org/libjpegturbo/turbojpeg/TJCustomFilter.html" target="_top"><B>FRAMES</B></A>
|
||||||
|
<A HREF="TJCustomFilter.html" target="_top"><B>NO FRAMES</B></A>
|
||||||
|
<SCRIPT type="text/javascript">
|
||||||
|
<!--
|
||||||
|
if(window==top) {
|
||||||
|
document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');
|
||||||
|
}
|
||||||
|
//-->
|
||||||
|
</SCRIPT>
|
||||||
|
<NOSCRIPT>
|
||||||
|
<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>
|
||||||
|
</NOSCRIPT>
|
||||||
|
|
||||||
|
|
||||||
|
</FONT></TD>
|
||||||
|
</TR>
|
||||||
|
<TR>
|
||||||
|
<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
|
||||||
|
SUMMARY: NESTED | FIELD | CONSTR | <A HREF="#method_summary">METHOD</A></FONT></TD>
|
||||||
|
<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
|
||||||
|
DETAIL: FIELD | CONSTR | <A HREF="#method_detail">METHOD</A></FONT></TD>
|
||||||
|
</TR>
|
||||||
|
</TABLE>
|
||||||
|
<A NAME="skip-navbar_top"></A>
|
||||||
|
<!-- ========= END OF TOP NAVBAR ========= -->
|
||||||
|
|
||||||
|
<HR>
|
||||||
|
<!-- ======== START OF CLASS DATA ======== -->
|
||||||
|
<H2>
|
||||||
|
<FONT SIZE="-1">
|
||||||
|
org.libjpegturbo.turbojpeg</FONT>
|
||||||
|
<BR>
|
||||||
|
Interface TJCustomFilter</H2>
|
||||||
|
<HR>
|
||||||
|
<DL>
|
||||||
|
<DT><PRE>public interface <B>TJCustomFilter</B></DL>
|
||||||
|
</PRE>
|
||||||
|
|
||||||
|
<P>
|
||||||
|
Custom filter callback interface
|
||||||
|
<P>
|
||||||
|
|
||||||
|
<P>
|
||||||
|
<HR>
|
||||||
|
|
||||||
|
<P>
|
||||||
|
|
||||||
|
<!-- ========== METHOD SUMMARY =========== -->
|
||||||
|
|
||||||
|
<A NAME="method_summary"><!-- --></A>
|
||||||
|
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
|
||||||
|
<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
|
||||||
|
<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
|
||||||
|
<B>Method Summary</B></FONT></TH>
|
||||||
|
</TR>
|
||||||
|
<TR BGCOLOR="white" CLASS="TableRowColor">
|
||||||
|
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
|
||||||
|
<CODE> void</CODE></FONT></TD>
|
||||||
|
<TD><CODE><B><A HREF="../../../org/libjpegturbo/turbojpeg/TJCustomFilter.html#customFilter(java.nio.ShortBuffer, java.awt.Rectangle, java.awt.Rectangle, int, int, org.libjpegturbo.turbojpeg.TJTransform)">customFilter</A></B>(java.nio.ShortBuffer coeffBuffer,
|
||||||
|
java.awt.Rectangle bufferRegion,
|
||||||
|
java.awt.Rectangle planeRegion,
|
||||||
|
int componentID,
|
||||||
|
int transformID,
|
||||||
|
<A HREF="../../../org/libjpegturbo/turbojpeg/TJTransform.html" title="class in org.libjpegturbo.turbojpeg">TJTransform</A> transform)</CODE>
|
||||||
|
|
||||||
|
<BR>
|
||||||
|
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
|
||||||
|
JPEG file.</TD>
|
||||||
|
</TR>
|
||||||
|
</TABLE>
|
||||||
|
|
||||||
|
<P>
|
||||||
|
|
||||||
|
<!-- ============ METHOD DETAIL ========== -->
|
||||||
|
|
||||||
|
<A NAME="method_detail"><!-- --></A>
|
||||||
|
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
|
||||||
|
<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
|
||||||
|
<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
|
||||||
|
<B>Method Detail</B></FONT></TH>
|
||||||
|
</TR>
|
||||||
|
</TABLE>
|
||||||
|
|
||||||
|
<A NAME="customFilter(java.nio.ShortBuffer, java.awt.Rectangle, java.awt.Rectangle, int, int, org.libjpegturbo.turbojpeg.TJTransform)"><!-- --></A><H3>
|
||||||
|
customFilter</H3>
|
||||||
|
<PRE>
|
||||||
|
void <B>customFilter</B>(java.nio.ShortBuffer coeffBuffer,
|
||||||
|
java.awt.Rectangle bufferRegion,
|
||||||
|
java.awt.Rectangle planeRegion,
|
||||||
|
int componentID,
|
||||||
|
int transformID,
|
||||||
|
<A HREF="../../../org/libjpegturbo/turbojpeg/TJTransform.html" title="class in org.libjpegturbo.turbojpeg">TJTransform</A> transform)
|
||||||
|
throws java.lang.Exception</PRE>
|
||||||
|
<DL>
|
||||||
|
<DD>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
|
||||||
|
JPEG file. This allows for custom filters or other transformations to be
|
||||||
|
applied in the frequency domain.
|
||||||
|
<P>
|
||||||
|
<DD><DL>
|
||||||
|
<DT><B>Parameters:</B><DD><CODE>coeffBuffer</CODE> - a buffer containing transformed DCT coefficients.
|
||||||
|
(NOTE: this buffer is not guaranteed to be valid once the callback
|
||||||
|
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
|
||||||
|
the callback.)<DD><CODE>bufferRegion</CODE> - rectangle containing the width and height of
|
||||||
|
<code>coeffBuffer</code> as well as its offset relative to the component
|
||||||
|
plane. TurboJPEG implementations may choose to split each component plane
|
||||||
|
into multiple DCT coefficient buffers and call the callback function once
|
||||||
|
for each buffer.<DD><CODE>planeRegion</CODE> - rectangle containing the width and height of the
|
||||||
|
component plane to which <code>coeffBuffer</code> belongs<DD><CODE>componentID</CODE> - ID number of the component plane to which
|
||||||
|
<code>coeffBuffer</code>belongs (Y, Cb, and Cr have, respectively, ID's of
|
||||||
|
0, 1, and 2 in typical JPEG images.)<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
|
||||||
|
transform in the transforms array that was passed to <A HREF="../../../org/libjpegturbo/turbojpeg/TJTransformer.html#transform(byte[][], org.libjpegturbo.turbojpeg.TJTransform[], int)"><CODE>TJTransformer.transform()</CODE></A>.<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
|
||||||
|
parameters and/or cropping region for this transform
|
||||||
|
<DT><B>Throws:</B>
|
||||||
|
<DD><CODE>java.lang.Exception</CODE></DL>
|
||||||
|
</DD>
|
||||||
|
</DL>
|
||||||
|
<!-- ========= END OF CLASS DATA ========= -->
|
||||||
|
<HR>
|
||||||
|
|
||||||
|
|
||||||
|
<!-- ======= START OF BOTTOM NAVBAR ====== -->
|
||||||
|
<A NAME="navbar_bottom"><!-- --></A>
|
||||||
|
<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
|
||||||
|
<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
|
||||||
|
<TR>
|
||||||
|
<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
|
||||||
|
<A NAME="navbar_bottom_firstrow"><!-- --></A>
|
||||||
|
<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
|
||||||
|
<TR ALIGN="center" VALIGN="top">
|
||||||
|
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../org/libjpegturbo/turbojpeg/package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
|
||||||
|
<TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
|
||||||
|
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
|
||||||
|
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
|
||||||
|
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
|
||||||
|
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
|
||||||
|
</TR>
|
||||||
|
</TABLE>
|
||||||
|
</TD>
|
||||||
|
<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
|
||||||
|
</EM>
|
||||||
|
</TD>
|
||||||
|
</TR>
|
||||||
|
|
||||||
|
<TR>
|
||||||
|
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
|
||||||
|
<A HREF="../../../org/libjpegturbo/turbojpeg/TJCompressor.html" title="class in org.libjpegturbo.turbojpeg"><B>PREV CLASS</B></A>
|
||||||
|
<A HREF="../../../org/libjpegturbo/turbojpeg/TJDecompressor.html" title="class in org.libjpegturbo.turbojpeg"><B>NEXT CLASS</B></A></FONT></TD>
|
||||||
|
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
|
||||||
|
<A HREF="../../../index.html?org/libjpegturbo/turbojpeg/TJCustomFilter.html" target="_top"><B>FRAMES</B></A>
|
||||||
|
<A HREF="TJCustomFilter.html" target="_top"><B>NO FRAMES</B></A>
|
||||||
|
<SCRIPT type="text/javascript">
|
||||||
|
<!--
|
||||||
|
if(window==top) {
|
||||||
|
document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');
|
||||||
|
}
|
||||||
|
//-->
|
||||||
|
</SCRIPT>
|
||||||
|
<NOSCRIPT>
|
||||||
|
<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>
|
||||||
|
</NOSCRIPT>
|
||||||
|
|
||||||
|
|
||||||
|
</FONT></TD>
|
||||||
|
</TR>
|
||||||
|
<TR>
|
||||||
|
<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
|
||||||
|
SUMMARY: NESTED | FIELD | CONSTR | <A HREF="#method_summary">METHOD</A></FONT></TD>
|
||||||
|
<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
|
||||||
|
DETAIL: FIELD | CONSTR | <A HREF="#method_detail">METHOD</A></FONT></TD>
|
||||||
|
</TR>
|
||||||
|
</TABLE>
|
||||||
|
<A NAME="skip-navbar_bottom"></A>
|
||||||
|
<!-- ======== END OF BOTTOM NAVBAR ======= -->
|
||||||
|
|
||||||
|
<HR>
|
||||||
|
|
||||||
|
</BODY>
|
||||||
|
</HTML>
|
||||||
948
java/doc/org/libjpegturbo/turbojpeg/TJDecompressor.html
Normal file
@@ -0,0 +1,948 @@
|
|||||||
|
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
|
||||||
|
<!--NewPage-->
|
||||||
|
<HTML>
|
||||||
|
<HEAD>
|
||||||
|
<!-- Generated by javadoc (build 1.6.0_33) on Fri Jun 29 14:29:13 CDT 2012 -->
|
||||||
|
<TITLE>
|
||||||
|
TJDecompressor
|
||||||
|
</TITLE>
|
||||||
|
|
||||||
|
<META NAME="date" CONTENT="2012-06-29">
|
||||||
|
|
||||||
|
<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../stylesheet.css" TITLE="Style">
|
||||||
|
|
||||||
|
<SCRIPT type="text/javascript">
|
||||||
|
function windowTitle()
|
||||||
|
{
|
||||||
|
if (location.href.indexOf('is-external=true') == -1) {
|
||||||
|
parent.document.title="TJDecompressor";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</SCRIPT>
|
||||||
|
<NOSCRIPT>
|
||||||
|
</NOSCRIPT>
|
||||||
|
|
||||||
|
</HEAD>
|
||||||
|
|
||||||
|
<BODY BGCOLOR="white" onload="windowTitle();">
|
||||||
|
<HR>
|
||||||
|
|
||||||
|
|
||||||
|
<!-- ========= START OF TOP NAVBAR ======= -->
|
||||||
|
<A NAME="navbar_top"><!-- --></A>
|
||||||
|
<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
|
||||||
|
<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
|
||||||
|
<TR>
|
||||||
|
<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
|
||||||
|
<A NAME="navbar_top_firstrow"><!-- --></A>
|
||||||
|
<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
|
||||||
|
<TR ALIGN="center" VALIGN="top">
|
||||||
|
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../org/libjpegturbo/turbojpeg/package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
|
||||||
|
<TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
|
||||||
|
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
|
||||||
|
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
|
||||||
|
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
|
||||||
|
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
|
||||||
|
</TR>
|
||||||
|
</TABLE>
|
||||||
|
</TD>
|
||||||
|
<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
|
||||||
|
</EM>
|
||||||
|
</TD>
|
||||||
|
</TR>
|
||||||
|
|
||||||
|
<TR>
|
||||||
|
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
|
||||||
|
<A HREF="../../../org/libjpegturbo/turbojpeg/TJCustomFilter.html" title="interface in org.libjpegturbo.turbojpeg"><B>PREV CLASS</B></A>
|
||||||
|
<A HREF="../../../org/libjpegturbo/turbojpeg/TJScalingFactor.html" title="class in org.libjpegturbo.turbojpeg"><B>NEXT CLASS</B></A></FONT></TD>
|
||||||
|
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
|
||||||
|
<A HREF="../../../index.html?org/libjpegturbo/turbojpeg/TJDecompressor.html" target="_top"><B>FRAMES</B></A>
|
||||||
|
<A HREF="TJDecompressor.html" target="_top"><B>NO FRAMES</B></A>
|
||||||
|
<SCRIPT type="text/javascript">
|
||||||
|
<!--
|
||||||
|
if(window==top) {
|
||||||
|
document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');
|
||||||
|
}
|
||||||
|
//-->
|
||||||
|
</SCRIPT>
|
||||||
|
<NOSCRIPT>
|
||||||
|
<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>
|
||||||
|
</NOSCRIPT>
|
||||||
|
|
||||||
|
|
||||||
|
</FONT></TD>
|
||||||
|
</TR>
|
||||||
|
<TR>
|
||||||
|
<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
|
||||||
|
SUMMARY: NESTED | <A HREF="#field_summary">FIELD</A> | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
|
||||||
|
<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
|
||||||
|
DETAIL: <A HREF="#field_detail">FIELD</A> | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
|
||||||
|
</TR>
|
||||||
|
</TABLE>
|
||||||
|
<A NAME="skip-navbar_top"></A>
|
||||||
|
<!-- ========= END OF TOP NAVBAR ========= -->
|
||||||
|
|
||||||
|
<HR>
|
||||||
|
<!-- ======== START OF CLASS DATA ======== -->
|
||||||
|
<H2>
|
||||||
|
<FONT SIZE="-1">
|
||||||
|
org.libjpegturbo.turbojpeg</FONT>
|
||||||
|
<BR>
|
||||||
|
Class TJDecompressor</H2>
|
||||||
|
<PRE>
|
||||||
|
java.lang.Object
|
||||||
|
<IMG SRC="../../../resources/inherit.gif" ALT="extended by "><B>org.libjpegturbo.turbojpeg.TJDecompressor</B>
|
||||||
|
</PRE>
|
||||||
|
<DL>
|
||||||
|
<DT><B>Direct Known Subclasses:</B> <DD><A HREF="../../../org/libjpegturbo/turbojpeg/TJTransformer.html" title="class in org.libjpegturbo.turbojpeg">TJTransformer</A></DD>
|
||||||
|
</DL>
|
||||||
|
<HR>
|
||||||
|
<DL>
|
||||||
|
<DT><PRE>public class <B>TJDecompressor</B><DT>extends java.lang.Object</DL>
|
||||||
|
</PRE>
|
||||||
|
|
||||||
|
<P>
|
||||||
|
TurboJPEG decompressor
|
||||||
|
<P>
|
||||||
|
|
||||||
|
<P>
|
||||||
|
<HR>
|
||||||
|
|
||||||
|
<P>
|
||||||
|
<!-- =========== FIELD SUMMARY =========== -->
|
||||||
|
|
||||||
|
<A NAME="field_summary"><!-- --></A>
|
||||||
|
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
|
||||||
|
<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
|
||||||
|
<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
|
||||||
|
<B>Field Summary</B></FONT></TH>
|
||||||
|
</TR>
|
||||||
|
<TR BGCOLOR="white" CLASS="TableRowColor">
|
||||||
|
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
|
||||||
|
<CODE>protected long</CODE></FONT></TD>
|
||||||
|
<TD><CODE><B><A HREF="../../../org/libjpegturbo/turbojpeg/TJDecompressor.html#handle">handle</A></B></CODE>
|
||||||
|
|
||||||
|
<BR>
|
||||||
|
</TD>
|
||||||
|
</TR>
|
||||||
|
<TR BGCOLOR="white" CLASS="TableRowColor">
|
||||||
|
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
|
||||||
|
<CODE>protected byte[]</CODE></FONT></TD>
|
||||||
|
<TD><CODE><B><A HREF="../../../org/libjpegturbo/turbojpeg/TJDecompressor.html#jpegBuf">jpegBuf</A></B></CODE>
|
||||||
|
|
||||||
|
<BR>
|
||||||
|
</TD>
|
||||||
|
</TR>
|
||||||
|
<TR BGCOLOR="white" CLASS="TableRowColor">
|
||||||
|
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
|
||||||
|
<CODE>protected int</CODE></FONT></TD>
|
||||||
|
<TD><CODE><B><A HREF="../../../org/libjpegturbo/turbojpeg/TJDecompressor.html#jpegBufSize">jpegBufSize</A></B></CODE>
|
||||||
|
|
||||||
|
<BR>
|
||||||
|
</TD>
|
||||||
|
</TR>
|
||||||
|
<TR BGCOLOR="white" CLASS="TableRowColor">
|
||||||
|
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
|
||||||
|
<CODE>protected int</CODE></FONT></TD>
|
||||||
|
<TD><CODE><B><A HREF="../../../org/libjpegturbo/turbojpeg/TJDecompressor.html#jpegHeight">jpegHeight</A></B></CODE>
|
||||||
|
|
||||||
|
<BR>
|
||||||
|
</TD>
|
||||||
|
</TR>
|
||||||
|
<TR BGCOLOR="white" CLASS="TableRowColor">
|
||||||
|
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
|
||||||
|
<CODE>protected int</CODE></FONT></TD>
|
||||||
|
<TD><CODE><B><A HREF="../../../org/libjpegturbo/turbojpeg/TJDecompressor.html#jpegSubsamp">jpegSubsamp</A></B></CODE>
|
||||||
|
|
||||||
|
<BR>
|
||||||
|
</TD>
|
||||||
|
</TR>
|
||||||
|
<TR BGCOLOR="white" CLASS="TableRowColor">
|
||||||
|
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
|
||||||
|
<CODE>protected int</CODE></FONT></TD>
|
||||||
|
<TD><CODE><B><A HREF="../../../org/libjpegturbo/turbojpeg/TJDecompressor.html#jpegWidth">jpegWidth</A></B></CODE>
|
||||||
|
|
||||||
|
<BR>
|
||||||
|
</TD>
|
||||||
|
</TR>
|
||||||
|
</TABLE>
|
||||||
|
|
||||||
|
<!-- ======== CONSTRUCTOR SUMMARY ======== -->
|
||||||
|
|
||||||
|
<A NAME="constructor_summary"><!-- --></A>
|
||||||
|
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
|
||||||
|
<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
|
||||||
|
<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
|
||||||
|
<B>Constructor Summary</B></FONT></TH>
|
||||||
|
</TR>
|
||||||
|
<TR BGCOLOR="white" CLASS="TableRowColor">
|
||||||
|
<TD><CODE><B><A HREF="../../../org/libjpegturbo/turbojpeg/TJDecompressor.html#TJDecompressor()">TJDecompressor</A></B>()</CODE>
|
||||||
|
|
||||||
|
<BR>
|
||||||
|
Create a TurboJPEG decompresssor instance.</TD>
|
||||||
|
</TR>
|
||||||
|
<TR BGCOLOR="white" CLASS="TableRowColor">
|
||||||
|
<TD><CODE><B><A HREF="../../../org/libjpegturbo/turbojpeg/TJDecompressor.html#TJDecompressor(byte[])">TJDecompressor</A></B>(byte[] jpegImage)</CODE>
|
||||||
|
|
||||||
|
<BR>
|
||||||
|
Create a TurboJPEG decompressor instance and associate the JPEG image
|
||||||
|
stored in <code>jpegImage</code> with the newly-created instance.</TD>
|
||||||
|
</TR>
|
||||||
|
<TR BGCOLOR="white" CLASS="TableRowColor">
|
||||||
|
<TD><CODE><B><A HREF="../../../org/libjpegturbo/turbojpeg/TJDecompressor.html#TJDecompressor(byte[], int)">TJDecompressor</A></B>(byte[] jpegImage,
|
||||||
|
int imageSize)</CODE>
|
||||||
|
|
||||||
|
<BR>
|
||||||
|
Create a TurboJPEG decompressor instance and associate the JPEG image
|
||||||
|
of length <code>imageSize</code> bytes stored in <code>jpegImage</code>
|
||||||
|
with the newly-created instance.</TD>
|
||||||
|
</TR>
|
||||||
|
</TABLE>
|
||||||
|
|
||||||
|
<!-- ========== METHOD SUMMARY =========== -->
|
||||||
|
|
||||||
|
<A NAME="method_summary"><!-- --></A>
|
||||||
|
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
|
||||||
|
<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
|
||||||
|
<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
|
||||||
|
<B>Method Summary</B></FONT></TH>
|
||||||
|
</TR>
|
||||||
|
<TR BGCOLOR="white" CLASS="TableRowColor">
|
||||||
|
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
|
||||||
|
<CODE> void</CODE></FONT></TD>
|
||||||
|
<TD><CODE><B><A HREF="../../../org/libjpegturbo/turbojpeg/TJDecompressor.html#close()">close</A></B>()</CODE>
|
||||||
|
|
||||||
|
<BR>
|
||||||
|
Free the native structures associated with this decompressor instance.</TD>
|
||||||
|
</TR>
|
||||||
|
<TR BGCOLOR="white" CLASS="TableRowColor">
|
||||||
|
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
|
||||||
|
<CODE> void</CODE></FONT></TD>
|
||||||
|
<TD><CODE><B><A HREF="../../../org/libjpegturbo/turbojpeg/TJDecompressor.html#decompress(java.awt.image.BufferedImage, int)">decompress</A></B>(java.awt.image.BufferedImage dstImage,
|
||||||
|
int flags)</CODE>
|
||||||
|
|
||||||
|
<BR>
|
||||||
|
Decompress the JPEG source image associated with this decompressor
|
||||||
|
instance and output a decompressed image to the given
|
||||||
|
<code>BufferedImage</code> instance.</TD>
|
||||||
|
</TR>
|
||||||
|
<TR BGCOLOR="white" CLASS="TableRowColor">
|
||||||
|
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
|
||||||
|
<CODE> void</CODE></FONT></TD>
|
||||||
|
<TD><CODE><B><A HREF="../../../org/libjpegturbo/turbojpeg/TJDecompressor.html#decompress(byte[], int, int, int, int, int)">decompress</A></B>(byte[] dstBuf,
|
||||||
|
int desiredWidth,
|
||||||
|
int pitch,
|
||||||
|
int desiredHeight,
|
||||||
|
int pixelFormat,
|
||||||
|
int flags)</CODE>
|
||||||
|
|
||||||
|
<BR>
|
||||||
|
Decompress the JPEG source image associated with this decompressor
|
||||||
|
instance and output a decompressed image to the given destination buffer.</TD>
|
||||||
|
</TR>
|
||||||
|
<TR BGCOLOR="white" CLASS="TableRowColor">
|
||||||
|
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
|
||||||
|
<CODE> java.awt.image.BufferedImage</CODE></FONT></TD>
|
||||||
|
<TD><CODE><B><A HREF="../../../org/libjpegturbo/turbojpeg/TJDecompressor.html#decompress(int, int, int, int)">decompress</A></B>(int desiredWidth,
|
||||||
|
int desiredHeight,
|
||||||
|
int bufferedImageType,
|
||||||
|
int flags)</CODE>
|
||||||
|
|
||||||
|
<BR>
|
||||||
|
Decompress the JPEG source image associated with this decompressor
|
||||||
|
instance and return a <code>BufferedImage</code> instance containing the
|
||||||
|
decompressed image.</TD>
|
||||||
|
</TR>
|
||||||
|
<TR BGCOLOR="white" CLASS="TableRowColor">
|
||||||
|
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
|
||||||
|
<CODE> byte[]</CODE></FONT></TD>
|
||||||
|
<TD><CODE><B><A HREF="../../../org/libjpegturbo/turbojpeg/TJDecompressor.html#decompress(int, int, int, int, int)">decompress</A></B>(int desiredWidth,
|
||||||
|
int pitch,
|
||||||
|
int desiredHeight,
|
||||||
|
int pixelFormat,
|
||||||
|
int flags)</CODE>
|
||||||
|
|
||||||
|
<BR>
|
||||||
|
Decompress the JPEG source image associated with this decompressor
|
||||||
|
instance and return a buffer containing the decompressed image.</TD>
|
||||||
|
</TR>
|
||||||
|
<TR BGCOLOR="white" CLASS="TableRowColor">
|
||||||
|
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
|
||||||
|
<CODE> void</CODE></FONT></TD>
|
||||||
|
<TD><CODE><B><A HREF="../../../org/libjpegturbo/turbojpeg/TJDecompressor.html#decompressToYUV(byte[], int)">decompressToYUV</A></B>(byte[] dstBuf,
|
||||||
|
int flags)</CODE>
|
||||||
|
|
||||||
|
<BR>
|
||||||
|
Decompress the JPEG source image associated with this decompressor
|
||||||
|
instance and output a YUV planar image to the given destination buffer.</TD>
|
||||||
|
</TR>
|
||||||
|
<TR BGCOLOR="white" CLASS="TableRowColor">
|
||||||
|
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
|
||||||
|
<CODE> byte[]</CODE></FONT></TD>
|
||||||
|
<TD><CODE><B><A HREF="../../../org/libjpegturbo/turbojpeg/TJDecompressor.html#decompressToYUV(int)">decompressToYUV</A></B>(int flags)</CODE>
|
||||||
|
|
||||||
|
<BR>
|
||||||
|
Decompress the JPEG source image associated with this decompressor
|
||||||
|
instance and return a buffer containing a YUV planar image.</TD>
|
||||||
|
</TR>
|
||||||
|
<TR BGCOLOR="white" CLASS="TableRowColor">
|
||||||
|
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
|
||||||
|
<CODE>protected void</CODE></FONT></TD>
|
||||||
|
<TD><CODE><B><A HREF="../../../org/libjpegturbo/turbojpeg/TJDecompressor.html#finalize()">finalize</A></B>()</CODE>
|
||||||
|
|
||||||
|
<BR>
|
||||||
|
</TD>
|
||||||
|
</TR>
|
||||||
|
<TR BGCOLOR="white" CLASS="TableRowColor">
|
||||||
|
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
|
||||||
|
<CODE> int</CODE></FONT></TD>
|
||||||
|
<TD><CODE><B><A HREF="../../../org/libjpegturbo/turbojpeg/TJDecompressor.html#getHeight()">getHeight</A></B>()</CODE>
|
||||||
|
|
||||||
|
<BR>
|
||||||
|
Returns the height of the JPEG image associated with this decompressor
|
||||||
|
instance.</TD>
|
||||||
|
</TR>
|
||||||
|
<TR BGCOLOR="white" CLASS="TableRowColor">
|
||||||
|
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
|
||||||
|
<CODE> byte[]</CODE></FONT></TD>
|
||||||
|
<TD><CODE><B><A HREF="../../../org/libjpegturbo/turbojpeg/TJDecompressor.html#getJPEGBuf()">getJPEGBuf</A></B>()</CODE>
|
||||||
|
|
||||||
|
<BR>
|
||||||
|
Returns the JPEG image buffer associated with this decompressor instance.</TD>
|
||||||
|
</TR>
|
||||||
|
<TR BGCOLOR="white" CLASS="TableRowColor">
|
||||||
|
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
|
||||||
|
<CODE> int</CODE></FONT></TD>
|
||||||
|
<TD><CODE><B><A HREF="../../../org/libjpegturbo/turbojpeg/TJDecompressor.html#getJPEGSize()">getJPEGSize</A></B>()</CODE>
|
||||||
|
|
||||||
|
<BR>
|
||||||
|
Returns the size of the JPEG image (in bytes) associated with this
|
||||||
|
decompressor instance.</TD>
|
||||||
|
</TR>
|
||||||
|
<TR BGCOLOR="white" CLASS="TableRowColor">
|
||||||
|
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
|
||||||
|
<CODE> int</CODE></FONT></TD>
|
||||||
|
<TD><CODE><B><A HREF="../../../org/libjpegturbo/turbojpeg/TJDecompressor.html#getScaledHeight(int, int)">getScaledHeight</A></B>(int desiredWidth,
|
||||||
|
int desiredHeight)</CODE>
|
||||||
|
|
||||||
|
<BR>
|
||||||
|
Returns the height of the largest scaled down image that the TurboJPEG
|
||||||
|
decompressor can generate without exceeding the desired image width and
|
||||||
|
height.</TD>
|
||||||
|
</TR>
|
||||||
|
<TR BGCOLOR="white" CLASS="TableRowColor">
|
||||||
|
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
|
||||||
|
<CODE> int</CODE></FONT></TD>
|
||||||
|
<TD><CODE><B><A HREF="../../../org/libjpegturbo/turbojpeg/TJDecompressor.html#getScaledWidth(int, int)">getScaledWidth</A></B>(int desiredWidth,
|
||||||
|
int desiredHeight)</CODE>
|
||||||
|
|
||||||
|
<BR>
|
||||||
|
Returns the width of the largest scaled down image that the TurboJPEG
|
||||||
|
decompressor can generate without exceeding the desired image width and
|
||||||
|
height.</TD>
|
||||||
|
</TR>
|
||||||
|
<TR BGCOLOR="white" CLASS="TableRowColor">
|
||||||
|
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
|
||||||
|
<CODE> int</CODE></FONT></TD>
|
||||||
|
<TD><CODE><B><A HREF="../../../org/libjpegturbo/turbojpeg/TJDecompressor.html#getSubsamp()">getSubsamp</A></B>()</CODE>
|
||||||
|
|
||||||
|
<BR>
|
||||||
|
Returns the level of chrominance subsampling used in the JPEG image
|
||||||
|
associated with this decompressor instance.</TD>
|
||||||
|
</TR>
|
||||||
|
<TR BGCOLOR="white" CLASS="TableRowColor">
|
||||||
|
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
|
||||||
|
<CODE> int</CODE></FONT></TD>
|
||||||
|
<TD><CODE><B><A HREF="../../../org/libjpegturbo/turbojpeg/TJDecompressor.html#getWidth()">getWidth</A></B>()</CODE>
|
||||||
|
|
||||||
|
<BR>
|
||||||
|
Returns the width of the JPEG image associated with this decompressor
|
||||||
|
instance.</TD>
|
||||||
|
</TR>
|
||||||
|
<TR BGCOLOR="white" CLASS="TableRowColor">
|
||||||
|
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
|
||||||
|
<CODE> void</CODE></FONT></TD>
|
||||||
|
<TD><CODE><B><A HREF="../../../org/libjpegturbo/turbojpeg/TJDecompressor.html#setJPEGImage(byte[], int)">setJPEGImage</A></B>(byte[] jpegImage,
|
||||||
|
int imageSize)</CODE>
|
||||||
|
|
||||||
|
<BR>
|
||||||
|
Associate the JPEG image of length <code>imageSize</code> bytes stored in
|
||||||
|
<code>jpegImage</code> with this decompressor instance.</TD>
|
||||||
|
</TR>
|
||||||
|
</TABLE>
|
||||||
|
<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
|
||||||
|
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
|
||||||
|
<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
|
||||||
|
<TH ALIGN="left"><B>Methods inherited from class java.lang.Object</B></TH>
|
||||||
|
</TR>
|
||||||
|
<TR BGCOLOR="white" CLASS="TableRowColor">
|
||||||
|
<TD><CODE>clone, equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</CODE></TD>
|
||||||
|
</TR>
|
||||||
|
</TABLE>
|
||||||
|
|
||||||
|
<P>
|
||||||
|
|
||||||
|
<!-- ============ FIELD DETAIL =========== -->
|
||||||
|
|
||||||
|
<A NAME="field_detail"><!-- --></A>
|
||||||
|
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
|
||||||
|
<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
|
||||||
|
<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
|
||||||
|
<B>Field Detail</B></FONT></TH>
|
||||||
|
</TR>
|
||||||
|
</TABLE>
|
||||||
|
|
||||||
|
<A NAME="handle"><!-- --></A><H3>
|
||||||
|
handle</H3>
|
||||||
|
<PRE>
|
||||||
|
protected long <B>handle</B></PRE>
|
||||||
|
<DL>
|
||||||
|
<DL>
|
||||||
|
</DL>
|
||||||
|
</DL>
|
||||||
|
<HR>
|
||||||
|
|
||||||
|
<A NAME="jpegBuf"><!-- --></A><H3>
|
||||||
|
jpegBuf</H3>
|
||||||
|
<PRE>
|
||||||
|
protected byte[] <B>jpegBuf</B></PRE>
|
||||||
|
<DL>
|
||||||
|
<DL>
|
||||||
|
</DL>
|
||||||
|
</DL>
|
||||||
|
<HR>
|
||||||
|
|
||||||
|
<A NAME="jpegBufSize"><!-- --></A><H3>
|
||||||
|
jpegBufSize</H3>
|
||||||
|
<PRE>
|
||||||
|
protected int <B>jpegBufSize</B></PRE>
|
||||||
|
<DL>
|
||||||
|
<DL>
|
||||||
|
</DL>
|
||||||
|
</DL>
|
||||||
|
<HR>
|
||||||
|
|
||||||
|
<A NAME="jpegWidth"><!-- --></A><H3>
|
||||||
|
jpegWidth</H3>
|
||||||
|
<PRE>
|
||||||
|
protected int <B>jpegWidth</B></PRE>
|
||||||
|
<DL>
|
||||||
|
<DL>
|
||||||
|
</DL>
|
||||||
|
</DL>
|
||||||
|
<HR>
|
||||||
|
|
||||||
|
<A NAME="jpegHeight"><!-- --></A><H3>
|
||||||
|
jpegHeight</H3>
|
||||||
|
<PRE>
|
||||||
|
protected int <B>jpegHeight</B></PRE>
|
||||||
|
<DL>
|
||||||
|
<DL>
|
||||||
|
</DL>
|
||||||
|
</DL>
|
||||||
|
<HR>
|
||||||
|
|
||||||
|
<A NAME="jpegSubsamp"><!-- --></A><H3>
|
||||||
|
jpegSubsamp</H3>
|
||||||
|
<PRE>
|
||||||
|
protected int <B>jpegSubsamp</B></PRE>
|
||||||
|
<DL>
|
||||||
|
<DL>
|
||||||
|
</DL>
|
||||||
|
</DL>
|
||||||
|
|
||||||
|
<!-- ========= CONSTRUCTOR DETAIL ======== -->
|
||||||
|
|
||||||
|
<A NAME="constructor_detail"><!-- --></A>
|
||||||
|
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
|
||||||
|
<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
|
||||||
|
<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
|
||||||
|
<B>Constructor Detail</B></FONT></TH>
|
||||||
|
</TR>
|
||||||
|
</TABLE>
|
||||||
|
|
||||||
|
<A NAME="TJDecompressor()"><!-- --></A><H3>
|
||||||
|
TJDecompressor</H3>
|
||||||
|
<PRE>
|
||||||
|
public <B>TJDecompressor</B>()
|
||||||
|
throws java.lang.Exception</PRE>
|
||||||
|
<DL>
|
||||||
|
<DD>Create a TurboJPEG decompresssor instance.
|
||||||
|
<P>
|
||||||
|
<DL>
|
||||||
|
|
||||||
|
<DT><B>Throws:</B>
|
||||||
|
<DD><CODE>java.lang.Exception</CODE></DL>
|
||||||
|
</DL>
|
||||||
|
<HR>
|
||||||
|
|
||||||
|
<A NAME="TJDecompressor(byte[])"><!-- --></A><H3>
|
||||||
|
TJDecompressor</H3>
|
||||||
|
<PRE>
|
||||||
|
public <B>TJDecompressor</B>(byte[] jpegImage)
|
||||||
|
throws java.lang.Exception</PRE>
|
||||||
|
<DL>
|
||||||
|
<DD>Create a TurboJPEG decompressor instance and associate the JPEG image
|
||||||
|
stored in <code>jpegImage</code> with the newly-created instance.
|
||||||
|
<P>
|
||||||
|
<DL>
|
||||||
|
<DT><B>Parameters:</B><DD><CODE>jpegImage</CODE> - JPEG image buffer (size of the JPEG image is assumed to
|
||||||
|
be the length of the array)
|
||||||
|
<DT><B>Throws:</B>
|
||||||
|
<DD><CODE>java.lang.Exception</CODE></DL>
|
||||||
|
</DL>
|
||||||
|
<HR>
|
||||||
|
|
||||||
|
<A NAME="TJDecompressor(byte[], int)"><!-- --></A><H3>
|
||||||
|
TJDecompressor</H3>
|
||||||
|
<PRE>
|
||||||
|
public <B>TJDecompressor</B>(byte[] jpegImage,
|
||||||
|
int imageSize)
|
||||||
|
throws java.lang.Exception</PRE>
|
||||||
|
<DL>
|
||||||
|
<DD>Create a TurboJPEG decompressor instance and associate the JPEG image
|
||||||
|
of length <code>imageSize</code> bytes stored in <code>jpegImage</code>
|
||||||
|
with the newly-created instance.
|
||||||
|
<P>
|
||||||
|
<DL>
|
||||||
|
<DT><B>Parameters:</B><DD><CODE>jpegImage</CODE> - JPEG image buffer<DD><CODE>imageSize</CODE> - size of the JPEG image (in bytes)
|
||||||
|
<DT><B>Throws:</B>
|
||||||
|
<DD><CODE>java.lang.Exception</CODE></DL>
|
||||||
|
</DL>
|
||||||
|
|
||||||
|
<!-- ============ METHOD DETAIL ========== -->
|
||||||
|
|
||||||
|
<A NAME="method_detail"><!-- --></A>
|
||||||
|
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
|
||||||
|
<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
|
||||||
|
<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
|
||||||
|
<B>Method Detail</B></FONT></TH>
|
||||||
|
</TR>
|
||||||
|
</TABLE>
|
||||||
|
|
||||||
|
<A NAME="setJPEGImage(byte[], int)"><!-- --></A><H3>
|
||||||
|
setJPEGImage</H3>
|
||||||
|
<PRE>
|
||||||
|
public void <B>setJPEGImage</B>(byte[] jpegImage,
|
||||||
|
int imageSize)
|
||||||
|
throws java.lang.Exception</PRE>
|
||||||
|
<DL>
|
||||||
|
<DD>Associate the JPEG image of length <code>imageSize</code> bytes stored in
|
||||||
|
<code>jpegImage</code> with this decompressor instance. This image will
|
||||||
|
be used as the source image for subsequent decompress operations.
|
||||||
|
<P>
|
||||||
|
<DD><DL>
|
||||||
|
<DT><B>Parameters:</B><DD><CODE>jpegImage</CODE> - JPEG image buffer<DD><CODE>imageSize</CODE> - size of the JPEG image (in bytes)
|
||||||
|
<DT><B>Throws:</B>
|
||||||
|
<DD><CODE>java.lang.Exception</CODE></DL>
|
||||||
|
</DD>
|
||||||
|
</DL>
|
||||||
|
<HR>
|
||||||
|
|
||||||
|
<A NAME="getWidth()"><!-- --></A><H3>
|
||||||
|
getWidth</H3>
|
||||||
|
<PRE>
|
||||||
|
public int <B>getWidth</B>()
|
||||||
|
throws java.lang.Exception</PRE>
|
||||||
|
<DL>
|
||||||
|
<DD>Returns the width of the JPEG image associated with this decompressor
|
||||||
|
instance.
|
||||||
|
<P>
|
||||||
|
<DD><DL>
|
||||||
|
|
||||||
|
<DT><B>Returns:</B><DD>the width of the JPEG image associated with this decompressor
|
||||||
|
instance
|
||||||
|
<DT><B>Throws:</B>
|
||||||
|
<DD><CODE>java.lang.Exception</CODE></DL>
|
||||||
|
</DD>
|
||||||
|
</DL>
|
||||||
|
<HR>
|
||||||
|
|
||||||
|
<A NAME="getHeight()"><!-- --></A><H3>
|
||||||
|
getHeight</H3>
|
||||||
|
<PRE>
|
||||||
|
public int <B>getHeight</B>()
|
||||||
|
throws java.lang.Exception</PRE>
|
||||||
|
<DL>
|
||||||
|
<DD>Returns the height of the JPEG image associated with this decompressor
|
||||||
|
instance.
|
||||||
|
<P>
|
||||||
|
<DD><DL>
|
||||||
|
|
||||||
|
<DT><B>Returns:</B><DD>the height of the JPEG image associated with this decompressor
|
||||||
|
instance
|
||||||
|
<DT><B>Throws:</B>
|
||||||
|
<DD><CODE>java.lang.Exception</CODE></DL>
|
||||||
|
</DD>
|
||||||
|
</DL>
|
||||||
|
<HR>
|
||||||
|
|
||||||
|
<A NAME="getSubsamp()"><!-- --></A><H3>
|
||||||
|
getSubsamp</H3>
|
||||||
|
<PRE>
|
||||||
|
public int <B>getSubsamp</B>()
|
||||||
|
throws java.lang.Exception</PRE>
|
||||||
|
<DL>
|
||||||
|
<DD>Returns the level of chrominance subsampling used in the JPEG image
|
||||||
|
associated with this decompressor instance.
|
||||||
|
<P>
|
||||||
|
<DD><DL>
|
||||||
|
|
||||||
|
<DT><B>Returns:</B><DD>the level of chrominance subsampling used in the JPEG image
|
||||||
|
associated with this decompressor instance
|
||||||
|
<DT><B>Throws:</B>
|
||||||
|
<DD><CODE>java.lang.Exception</CODE></DL>
|
||||||
|
</DD>
|
||||||
|
</DL>
|
||||||
|
<HR>
|
||||||
|
|
||||||
|
<A NAME="getJPEGBuf()"><!-- --></A><H3>
|
||||||
|
getJPEGBuf</H3>
|
||||||
|
<PRE>
|
||||||
|
public byte[] <B>getJPEGBuf</B>()
|
||||||
|
throws java.lang.Exception</PRE>
|
||||||
|
<DL>
|
||||||
|
<DD>Returns the JPEG image buffer associated with this decompressor instance.
|
||||||
|
<P>
|
||||||
|
<DD><DL>
|
||||||
|
|
||||||
|
<DT><B>Returns:</B><DD>the JPEG image buffer associated with this decompressor instance
|
||||||
|
<DT><B>Throws:</B>
|
||||||
|
<DD><CODE>java.lang.Exception</CODE></DL>
|
||||||
|
</DD>
|
||||||
|
</DL>
|
||||||
|
<HR>
|
||||||
|
|
||||||
|
<A NAME="getJPEGSize()"><!-- --></A><H3>
|
||||||
|
getJPEGSize</H3>
|
||||||
|
<PRE>
|
||||||
|
public int <B>getJPEGSize</B>()
|
||||||
|
throws java.lang.Exception</PRE>
|
||||||
|
<DL>
|
||||||
|
<DD>Returns the size of the JPEG image (in bytes) associated with this
|
||||||
|
decompressor instance.
|
||||||
|
<P>
|
||||||
|
<DD><DL>
|
||||||
|
|
||||||
|
<DT><B>Returns:</B><DD>the size of the JPEG image (in bytes) associated with this
|
||||||
|
decompressor instance
|
||||||
|
<DT><B>Throws:</B>
|
||||||
|
<DD><CODE>java.lang.Exception</CODE></DL>
|
||||||
|
</DD>
|
||||||
|
</DL>
|
||||||
|
<HR>
|
||||||
|
|
||||||
|
<A NAME="getScaledWidth(int, int)"><!-- --></A><H3>
|
||||||
|
getScaledWidth</H3>
|
||||||
|
<PRE>
|
||||||
|
public int <B>getScaledWidth</B>(int desiredWidth,
|
||||||
|
int desiredHeight)
|
||||||
|
throws java.lang.Exception</PRE>
|
||||||
|
<DL>
|
||||||
|
<DD>Returns the width of the largest scaled down image that the TurboJPEG
|
||||||
|
decompressor can generate without exceeding the desired image width and
|
||||||
|
height.
|
||||||
|
<P>
|
||||||
|
<DD><DL>
|
||||||
|
<DT><B>Parameters:</B><DD><CODE>desiredWidth</CODE> - desired width (in pixels) of the decompressed image.
|
||||||
|
Setting this to 0 is the same as setting it to the width of the JPEG image
|
||||||
|
(in other words, the width will not be considered when determining the
|
||||||
|
scaled image size.)<DD><CODE>desiredHeight</CODE> - desired height (in pixels) of the decompressed image.
|
||||||
|
Setting this to 0 is the same as setting it to the height of the JPEG
|
||||||
|
image (in other words, the height will not be considered when determining
|
||||||
|
the scaled image size.)
|
||||||
|
<DT><B>Returns:</B><DD>the width of the largest scaled down image that the TurboJPEG
|
||||||
|
decompressor can generate without exceeding the desired image width and
|
||||||
|
height
|
||||||
|
<DT><B>Throws:</B>
|
||||||
|
<DD><CODE>java.lang.Exception</CODE></DL>
|
||||||
|
</DD>
|
||||||
|
</DL>
|
||||||
|
<HR>
|
||||||
|
|
||||||
|
<A NAME="getScaledHeight(int, int)"><!-- --></A><H3>
|
||||||
|
getScaledHeight</H3>
|
||||||
|
<PRE>
|
||||||
|
public int <B>getScaledHeight</B>(int desiredWidth,
|
||||||
|
int desiredHeight)
|
||||||
|
throws java.lang.Exception</PRE>
|
||||||
|
<DL>
|
||||||
|
<DD>Returns the height of the largest scaled down image that the TurboJPEG
|
||||||
|
decompressor can generate without exceeding the desired image width and
|
||||||
|
height.
|
||||||
|
<P>
|
||||||
|
<DD><DL>
|
||||||
|
<DT><B>Parameters:</B><DD><CODE>desiredWidth</CODE> - desired width (in pixels) of the decompressed image.
|
||||||
|
Setting this to 0 is the same as setting it to the width of the JPEG image
|
||||||
|
(in other words, the width will not be considered when determining the
|
||||||
|
scaled image size.)<DD><CODE>desiredHeight</CODE> - desired height (in pixels) of the decompressed image.
|
||||||
|
Setting this to 0 is the same as setting it to the height of the JPEG
|
||||||
|
image (in other words, the height will not be considered when determining
|
||||||
|
the scaled image size.)
|
||||||
|
<DT><B>Returns:</B><DD>the height of the largest scaled down image that the TurboJPEG
|
||||||
|
decompressor can generate without exceeding the desired image width and
|
||||||
|
height
|
||||||
|
<DT><B>Throws:</B>
|
||||||
|
<DD><CODE>java.lang.Exception</CODE></DL>
|
||||||
|
</DD>
|
||||||
|
</DL>
|
||||||
|
<HR>
|
||||||
|
|
||||||
|
<A NAME="decompress(byte[], int, int, int, int, int)"><!-- --></A><H3>
|
||||||
|
decompress</H3>
|
||||||
|
<PRE>
|
||||||
|
public void <B>decompress</B>(byte[] dstBuf,
|
||||||
|
int desiredWidth,
|
||||||
|
int pitch,
|
||||||
|
int desiredHeight,
|
||||||
|
int pixelFormat,
|
||||||
|
int flags)
|
||||||
|
throws java.lang.Exception</PRE>
|
||||||
|
<DL>
|
||||||
|
<DD>Decompress the JPEG source image associated with this decompressor
|
||||||
|
instance and output a decompressed image to the given destination buffer.
|
||||||
|
<P>
|
||||||
|
<DD><DL>
|
||||||
|
<DT><B>Parameters:</B><DD><CODE>dstBuf</CODE> - buffer that will receive the decompressed image. This
|
||||||
|
buffer should normally be <code>pitch * scaledHeight</code> bytes in size,
|
||||||
|
where <code>scaledHeight</code> can be determined by calling <code>
|
||||||
|
scalingFactor.<A HREF="../../../org/libjpegturbo/turbojpeg/TJScalingFactor.html#getScaled(int)"><CODE>getScaled</CODE></A>(jpegHeight)
|
||||||
|
</code> with one of the scaling factors returned from <A HREF="../../../org/libjpegturbo/turbojpeg/TJ.html#getScalingFactors()"><CODE>TJ.getScalingFactors()</CODE></A> or by calling <A HREF="../../../org/libjpegturbo/turbojpeg/TJDecompressor.html#getScaledHeight(int, int)"><CODE>getScaledHeight(int, int)</CODE></A>.<DD><CODE>desiredWidth</CODE> - desired width (in pixels) of the decompressed image.
|
||||||
|
If the desired image dimensions are smaller than the dimensions of the
|
||||||
|
JPEG image being decompressed, then TurboJPEG will use scaling in the JPEG
|
||||||
|
decompressor to generate the largest possible image that will fit within
|
||||||
|
the desired dimensions. Setting this to 0 is the same as setting it to
|
||||||
|
the width of the JPEG image (in other words, the width will not be
|
||||||
|
considered when determining the scaled image size.)<DD><CODE>pitch</CODE> - bytes per line of the destination image. Normally, this
|
||||||
|
should be set to <code>scaledWidth * TJ.pixelSize(pixelFormat)</code> if
|
||||||
|
the decompressed image is unpadded, but you can use this to, for instance,
|
||||||
|
pad each line of the decompressed image to a 4-byte boundary. NOTE:
|
||||||
|
<code>scaledWidth</code> can be determined by calling <code>
|
||||||
|
scalingFactor.<A HREF="../../../org/libjpegturbo/turbojpeg/TJScalingFactor.html#getScaled(int)"><CODE>getScaled</CODE></A>(jpegWidth)
|
||||||
|
</code> or by calling <A HREF="../../../org/libjpegturbo/turbojpeg/TJDecompressor.html#getScaledWidth(int, int)"><CODE>getScaledWidth(int, int)</CODE></A>. Setting this parameter to
|
||||||
|
0 is the equivalent of setting it to <code>scaledWidth *
|
||||||
|
TJ.pixelSize(pixelFormat)</code>.<DD><CODE>desiredHeight</CODE> - desired height (in pixels) of the decompressed image.
|
||||||
|
If the desired image dimensions are smaller than the dimensions of the
|
||||||
|
JPEG image being decompressed, then TurboJPEG will use scaling in the JPEG
|
||||||
|
decompressor to generate the largest possible image that will fit within
|
||||||
|
the desired dimensions. Setting this to 0 is the same as setting it to
|
||||||
|
the height of the JPEG image (in other words, the height will not be
|
||||||
|
considered when determining the scaled image size.)<DD><CODE>pixelFormat</CODE> - pixel format of the decompressed image (one of
|
||||||
|
<A HREF="../../../org/libjpegturbo/turbojpeg/TJ.html" title="class in org.libjpegturbo.turbojpeg"><CODE>TJ.PF_*</CODE></A>)<DD><CODE>flags</CODE> - the bitwise OR of one or more of <A HREF="../../../org/libjpegturbo/turbojpeg/TJ.html" title="class in org.libjpegturbo.turbojpeg"><CODE>TJ.FLAG_*</CODE></A>
|
||||||
|
<DT><B>Throws:</B>
|
||||||
|
<DD><CODE>java.lang.Exception</CODE></DL>
|
||||||
|
</DD>
|
||||||
|
</DL>
|
||||||
|
<HR>
|
||||||
|
|
||||||
|
<A NAME="decompress(int, int, int, int, int)"><!-- --></A><H3>
|
||||||
|
decompress</H3>
|
||||||
|
<PRE>
|
||||||
|
public byte[] <B>decompress</B>(int desiredWidth,
|
||||||
|
int pitch,
|
||||||
|
int desiredHeight,
|
||||||
|
int pixelFormat,
|
||||||
|
int flags)
|
||||||
|
throws java.lang.Exception</PRE>
|
||||||
|
<DL>
|
||||||
|
<DD>Decompress the JPEG source image associated with this decompressor
|
||||||
|
instance and return a buffer containing the decompressed image.
|
||||||
|
<P>
|
||||||
|
<DD><DL>
|
||||||
|
<DT><B>Parameters:</B><DD><CODE>desiredWidth</CODE> - see
|
||||||
|
<A HREF="../../../org/libjpegturbo/turbojpeg/TJDecompressor.html#decompress(byte[], int, int, int, int, int)"><CODE>decompress(byte[], int, int, int, int, int)</CODE></A> for description<DD><CODE>pitch</CODE> - see
|
||||||
|
<A HREF="../../../org/libjpegturbo/turbojpeg/TJDecompressor.html#decompress(byte[], int, int, int, int, int)"><CODE>decompress(byte[], int, int, int, int, int)</CODE></A> for description<DD><CODE>desiredHeight</CODE> - see
|
||||||
|
<A HREF="../../../org/libjpegturbo/turbojpeg/TJDecompressor.html#decompress(byte[], int, int, int, int, int)"><CODE>decompress(byte[], int, int, int, int, int)</CODE></A> for description<DD><CODE>pixelFormat</CODE> - pixel format of the decompressed image (one of
|
||||||
|
<A HREF="../../../org/libjpegturbo/turbojpeg/TJ.html" title="class in org.libjpegturbo.turbojpeg"><CODE>TJ.PF_*</CODE></A>)<DD><CODE>flags</CODE> - the bitwise OR of one or more of <A HREF="../../../org/libjpegturbo/turbojpeg/TJ.html" title="class in org.libjpegturbo.turbojpeg"><CODE>TJ.FLAG_*</CODE></A>
|
||||||
|
<DT><B>Returns:</B><DD>a buffer containing the decompressed image
|
||||||
|
<DT><B>Throws:</B>
|
||||||
|
<DD><CODE>java.lang.Exception</CODE></DL>
|
||||||
|
</DD>
|
||||||
|
</DL>
|
||||||
|
<HR>
|
||||||
|
|
||||||
|
<A NAME="decompressToYUV(byte[], int)"><!-- --></A><H3>
|
||||||
|
decompressToYUV</H3>
|
||||||
|
<PRE>
|
||||||
|
public void <B>decompressToYUV</B>(byte[] dstBuf,
|
||||||
|
int flags)
|
||||||
|
throws java.lang.Exception</PRE>
|
||||||
|
<DL>
|
||||||
|
<DD>Decompress the JPEG source image associated with this decompressor
|
||||||
|
instance and output a YUV planar image to the given destination buffer.
|
||||||
|
This method performs JPEG decompression but leaves out the color
|
||||||
|
conversion step, so a planar YUV image is generated instead of an RGB
|
||||||
|
image. The padding of the planes in this image is the same as the images
|
||||||
|
generated by <A HREF="../../../org/libjpegturbo/turbojpeg/TJCompressor.html#encodeYUV(byte[], int)"><CODE>TJCompressor.encodeYUV(byte[], int)</CODE></A>. Note that, if
|
||||||
|
the width or height of the image is not an even multiple of the MCU block
|
||||||
|
size (see <A HREF="../../../org/libjpegturbo/turbojpeg/TJ.html#getMCUWidth(int)"><CODE>TJ.getMCUWidth(int)</CODE></A> and <A HREF="../../../org/libjpegturbo/turbojpeg/TJ.html#getMCUHeight(int)"><CODE>TJ.getMCUHeight(int)</CODE></A>), then an
|
||||||
|
intermediate buffer copy will be performed within TurboJPEG.
|
||||||
|
<P>
|
||||||
|
<DD><DL>
|
||||||
|
<DT><B>Parameters:</B><DD><CODE>dstBuf</CODE> - buffer that will receive the YUV planar image. Use
|
||||||
|
<A HREF="../../../org/libjpegturbo/turbojpeg/TJ.html#bufSizeYUV(int, int, int)"><CODE>TJ.bufSizeYUV(int, int, int)</CODE></A> to determine the appropriate size for this buffer
|
||||||
|
based on the image width, height, and level of chrominance subsampling.<DD><CODE>flags</CODE> - the bitwise OR of one or more of <A HREF="../../../org/libjpegturbo/turbojpeg/TJ.html" title="class in org.libjpegturbo.turbojpeg"><CODE>TJ.FLAG_*</CODE></A>
|
||||||
|
<DT><B>Throws:</B>
|
||||||
|
<DD><CODE>java.lang.Exception</CODE></DL>
|
||||||
|
</DD>
|
||||||
|
</DL>
|
||||||
|
<HR>
|
||||||
|
|
||||||
|
<A NAME="decompressToYUV(int)"><!-- --></A><H3>
|
||||||
|
decompressToYUV</H3>
|
||||||
|
<PRE>
|
||||||
|
public byte[] <B>decompressToYUV</B>(int flags)
|
||||||
|
throws java.lang.Exception</PRE>
|
||||||
|
<DL>
|
||||||
|
<DD>Decompress the JPEG source image associated with this decompressor
|
||||||
|
instance and return a buffer containing a YUV planar image. See <A HREF="../../../org/libjpegturbo/turbojpeg/TJDecompressor.html#decompressToYUV(byte[], int)"><CODE>decompressToYUV(byte[], int)</CODE></A> for more detail.
|
||||||
|
<P>
|
||||||
|
<DD><DL>
|
||||||
|
<DT><B>Parameters:</B><DD><CODE>flags</CODE> - the bitwise OR of one or more of <A HREF="../../../org/libjpegturbo/turbojpeg/TJ.html" title="class in org.libjpegturbo.turbojpeg"><CODE>TJ.FLAG_*</CODE></A>
|
||||||
|
<DT><B>Returns:</B><DD>a buffer containing a YUV planar image
|
||||||
|
<DT><B>Throws:</B>
|
||||||
|
<DD><CODE>java.lang.Exception</CODE></DL>
|
||||||
|
</DD>
|
||||||
|
</DL>
|
||||||
|
<HR>
|
||||||
|
|
||||||
|
<A NAME="decompress(java.awt.image.BufferedImage, int)"><!-- --></A><H3>
|
||||||
|
decompress</H3>
|
||||||
|
<PRE>
|
||||||
|
public void <B>decompress</B>(java.awt.image.BufferedImage dstImage,
|
||||||
|
int flags)
|
||||||
|
throws java.lang.Exception</PRE>
|
||||||
|
<DL>
|
||||||
|
<DD>Decompress the JPEG source image associated with this decompressor
|
||||||
|
instance and output a decompressed image to the given
|
||||||
|
<code>BufferedImage</code> instance.
|
||||||
|
<P>
|
||||||
|
<DD><DL>
|
||||||
|
<DT><B>Parameters:</B><DD><CODE>dstImage</CODE> - a <code>BufferedImage</code> instance that will receive
|
||||||
|
the decompressed image<DD><CODE>flags</CODE> - the bitwise OR of one or more of <A HREF="../../../org/libjpegturbo/turbojpeg/TJ.html" title="class in org.libjpegturbo.turbojpeg"><CODE>TJ.FLAG_*</CODE></A>
|
||||||
|
<DT><B>Throws:</B>
|
||||||
|
<DD><CODE>java.lang.Exception</CODE></DL>
|
||||||
|
</DD>
|
||||||
|
</DL>
|
||||||
|
<HR>
|
||||||
|
|
||||||
|
<A NAME="decompress(int, int, int, int)"><!-- --></A><H3>
|
||||||
|
decompress</H3>
|
||||||
|
<PRE>
|
||||||
|
public java.awt.image.BufferedImage <B>decompress</B>(int desiredWidth,
|
||||||
|
int desiredHeight,
|
||||||
|
int bufferedImageType,
|
||||||
|
int flags)
|
||||||
|
throws java.lang.Exception</PRE>
|
||||||
|
<DL>
|
||||||
|
<DD>Decompress the JPEG source image associated with this decompressor
|
||||||
|
instance and return a <code>BufferedImage</code> instance containing the
|
||||||
|
decompressed image.
|
||||||
|
<P>
|
||||||
|
<DD><DL>
|
||||||
|
<DT><B>Parameters:</B><DD><CODE>desiredWidth</CODE> - see
|
||||||
|
<A HREF="../../../org/libjpegturbo/turbojpeg/TJDecompressor.html#decompress(byte[], int, int, int, int, int)"><CODE>decompress(byte[], int, int, int, int, int)</CODE></A> for description<DD><CODE>desiredHeight</CODE> - see
|
||||||
|
<A HREF="../../../org/libjpegturbo/turbojpeg/TJDecompressor.html#decompress(byte[], int, int, int, int, int)"><CODE>decompress(byte[], int, int, int, int, int)</CODE></A> for description<DD><CODE>bufferedImageType</CODE> - the image type of the newly-created
|
||||||
|
<code>BufferedImage</code> instance (for instance,
|
||||||
|
<code>BufferedImage.TYPE_INT_RGB</code>)<DD><CODE>flags</CODE> - the bitwise OR of one or more of <A HREF="../../../org/libjpegturbo/turbojpeg/TJ.html" title="class in org.libjpegturbo.turbojpeg"><CODE>TJ.FLAG_*</CODE></A>
|
||||||
|
<DT><B>Returns:</B><DD>a <code>BufferedImage</code> instance containing the
|
||||||
|
decompressed image
|
||||||
|
<DT><B>Throws:</B>
|
||||||
|
<DD><CODE>java.lang.Exception</CODE></DL>
|
||||||
|
</DD>
|
||||||
|
</DL>
|
||||||
|
<HR>
|
||||||
|
|
||||||
|
<A NAME="close()"><!-- --></A><H3>
|
||||||
|
close</H3>
|
||||||
|
<PRE>
|
||||||
|
public void <B>close</B>()
|
||||||
|
throws java.lang.Exception</PRE>
|
||||||
|
<DL>
|
||||||
|
<DD>Free the native structures associated with this decompressor instance.
|
||||||
|
<P>
|
||||||
|
<DD><DL>
|
||||||
|
|
||||||
|
<DT><B>Throws:</B>
|
||||||
|
<DD><CODE>java.lang.Exception</CODE></DL>
|
||||||
|
</DD>
|
||||||
|
</DL>
|
||||||
|
<HR>
|
||||||
|
|
||||||
|
<A NAME="finalize()"><!-- --></A><H3>
|
||||||
|
finalize</H3>
|
||||||
|
<PRE>
|
||||||
|
protected void <B>finalize</B>()
|
||||||
|
throws java.lang.Throwable</PRE>
|
||||||
|
<DL>
|
||||||
|
<DD><DL>
|
||||||
|
<DT><B>Overrides:</B><DD><CODE>finalize</CODE> in class <CODE>java.lang.Object</CODE></DL>
|
||||||
|
</DD>
|
||||||
|
<DD><DL>
|
||||||
|
|
||||||
|
<DT><B>Throws:</B>
|
||||||
|
<DD><CODE>java.lang.Throwable</CODE></DL>
|
||||||
|
</DD>
|
||||||
|
</DL>
|
||||||
|
<!-- ========= END OF CLASS DATA ========= -->
|
||||||
|
<HR>
|
||||||
|
|
||||||
|
|
||||||
|
<!-- ======= START OF BOTTOM NAVBAR ====== -->
|
||||||
|
<A NAME="navbar_bottom"><!-- --></A>
|
||||||
|
<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
|
||||||
|
<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
|
||||||
|
<TR>
|
||||||
|
<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
|
||||||
|
<A NAME="navbar_bottom_firstrow"><!-- --></A>
|
||||||
|
<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
|
||||||
|
<TR ALIGN="center" VALIGN="top">
|
||||||
|
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../org/libjpegturbo/turbojpeg/package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
|
||||||
|
<TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
|
||||||
|
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
|
||||||
|
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
|
||||||
|
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
|
||||||
|
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
|
||||||
|
</TR>
|
||||||
|
</TABLE>
|
||||||
|
</TD>
|
||||||
|
<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
|
||||||
|
</EM>
|
||||||
|
</TD>
|
||||||
|
</TR>
|
||||||
|
|
||||||
|
<TR>
|
||||||
|
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
|
||||||
|
<A HREF="../../../org/libjpegturbo/turbojpeg/TJCustomFilter.html" title="interface in org.libjpegturbo.turbojpeg"><B>PREV CLASS</B></A>
|
||||||
|
<A HREF="../../../org/libjpegturbo/turbojpeg/TJScalingFactor.html" title="class in org.libjpegturbo.turbojpeg"><B>NEXT CLASS</B></A></FONT></TD>
|
||||||
|
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
|
||||||
|
<A HREF="../../../index.html?org/libjpegturbo/turbojpeg/TJDecompressor.html" target="_top"><B>FRAMES</B></A>
|
||||||
|
<A HREF="TJDecompressor.html" target="_top"><B>NO FRAMES</B></A>
|
||||||
|
<SCRIPT type="text/javascript">
|
||||||
|
<!--
|
||||||
|
if(window==top) {
|
||||||
|
document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');
|
||||||
|
}
|
||||||
|
//-->
|
||||||
|
</SCRIPT>
|
||||||
|
<NOSCRIPT>
|
||||||
|
<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>
|
||||||
|
</NOSCRIPT>
|
||||||
|
|
||||||
|
|
||||||
|
</FONT></TD>
|
||||||
|
</TR>
|
||||||
|
<TR>
|
||||||
|
<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
|
||||||
|
SUMMARY: NESTED | <A HREF="#field_summary">FIELD</A> | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
|
||||||
|
<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
|
||||||
|
DETAIL: <A HREF="#field_detail">FIELD</A> | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
|
||||||
|
</TR>
|
||||||
|
</TABLE>
|
||||||
|
<A NAME="skip-navbar_bottom"></A>
|
||||||
|
<!-- ======== END OF BOTTOM NAVBAR ======= -->
|
||||||
|
|
||||||
|
<HR>
|
||||||
|
|
||||||
|
</BODY>
|
||||||
|
</HTML>
|
||||||
358
java/doc/org/libjpegturbo/turbojpeg/TJScalingFactor.html
Normal file
@@ -0,0 +1,358 @@
|
|||||||
|
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
|
||||||
|
<!--NewPage-->
|
||||||
|
<HTML>
|
||||||
|
<HEAD>
|
||||||
|
<!-- Generated by javadoc (build 1.6.0_33) on Fri Jun 29 14:29:13 CDT 2012 -->
|
||||||
|
<TITLE>
|
||||||
|
TJScalingFactor
|
||||||
|
</TITLE>
|
||||||
|
|
||||||
|
<META NAME="date" CONTENT="2012-06-29">
|
||||||
|
|
||||||
|
<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../stylesheet.css" TITLE="Style">
|
||||||
|
|
||||||
|
<SCRIPT type="text/javascript">
|
||||||
|
function windowTitle()
|
||||||
|
{
|
||||||
|
if (location.href.indexOf('is-external=true') == -1) {
|
||||||
|
parent.document.title="TJScalingFactor";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</SCRIPT>
|
||||||
|
<NOSCRIPT>
|
||||||
|
</NOSCRIPT>
|
||||||
|
|
||||||
|
</HEAD>
|
||||||
|
|
||||||
|
<BODY BGCOLOR="white" onload="windowTitle();">
|
||||||
|
<HR>
|
||||||
|
|
||||||
|
|
||||||
|
<!-- ========= START OF TOP NAVBAR ======= -->
|
||||||
|
<A NAME="navbar_top"><!-- --></A>
|
||||||
|
<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
|
||||||
|
<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
|
||||||
|
<TR>
|
||||||
|
<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
|
||||||
|
<A NAME="navbar_top_firstrow"><!-- --></A>
|
||||||
|
<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
|
||||||
|
<TR ALIGN="center" VALIGN="top">
|
||||||
|
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../org/libjpegturbo/turbojpeg/package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
|
||||||
|
<TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
|
||||||
|
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
|
||||||
|
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
|
||||||
|
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
|
||||||
|
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
|
||||||
|
</TR>
|
||||||
|
</TABLE>
|
||||||
|
</TD>
|
||||||
|
<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
|
||||||
|
</EM>
|
||||||
|
</TD>
|
||||||
|
</TR>
|
||||||
|
|
||||||
|
<TR>
|
||||||
|
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
|
||||||
|
<A HREF="../../../org/libjpegturbo/turbojpeg/TJDecompressor.html" title="class in org.libjpegturbo.turbojpeg"><B>PREV CLASS</B></A>
|
||||||
|
<A HREF="../../../org/libjpegturbo/turbojpeg/TJTransform.html" title="class in org.libjpegturbo.turbojpeg"><B>NEXT CLASS</B></A></FONT></TD>
|
||||||
|
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
|
||||||
|
<A HREF="../../../index.html?org/libjpegturbo/turbojpeg/TJScalingFactor.html" target="_top"><B>FRAMES</B></A>
|
||||||
|
<A HREF="TJScalingFactor.html" target="_top"><B>NO FRAMES</B></A>
|
||||||
|
<SCRIPT type="text/javascript">
|
||||||
|
<!--
|
||||||
|
if(window==top) {
|
||||||
|
document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');
|
||||||
|
}
|
||||||
|
//-->
|
||||||
|
</SCRIPT>
|
||||||
|
<NOSCRIPT>
|
||||||
|
<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>
|
||||||
|
</NOSCRIPT>
|
||||||
|
|
||||||
|
|
||||||
|
</FONT></TD>
|
||||||
|
</TR>
|
||||||
|
<TR>
|
||||||
|
<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
|
||||||
|
SUMMARY: NESTED | FIELD | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
|
||||||
|
<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
|
||||||
|
DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
|
||||||
|
</TR>
|
||||||
|
</TABLE>
|
||||||
|
<A NAME="skip-navbar_top"></A>
|
||||||
|
<!-- ========= END OF TOP NAVBAR ========= -->
|
||||||
|
|
||||||
|
<HR>
|
||||||
|
<!-- ======== START OF CLASS DATA ======== -->
|
||||||
|
<H2>
|
||||||
|
<FONT SIZE="-1">
|
||||||
|
org.libjpegturbo.turbojpeg</FONT>
|
||||||
|
<BR>
|
||||||
|
Class TJScalingFactor</H2>
|
||||||
|
<PRE>
|
||||||
|
java.lang.Object
|
||||||
|
<IMG SRC="../../../resources/inherit.gif" ALT="extended by "><B>org.libjpegturbo.turbojpeg.TJScalingFactor</B>
|
||||||
|
</PRE>
|
||||||
|
<HR>
|
||||||
|
<DL>
|
||||||
|
<DT><PRE>public class <B>TJScalingFactor</B><DT>extends java.lang.Object</DL>
|
||||||
|
</PRE>
|
||||||
|
|
||||||
|
<P>
|
||||||
|
Fractional scaling factor
|
||||||
|
<P>
|
||||||
|
|
||||||
|
<P>
|
||||||
|
<HR>
|
||||||
|
|
||||||
|
<P>
|
||||||
|
|
||||||
|
<!-- ======== CONSTRUCTOR SUMMARY ======== -->
|
||||||
|
|
||||||
|
<A NAME="constructor_summary"><!-- --></A>
|
||||||
|
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
|
||||||
|
<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
|
||||||
|
<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
|
||||||
|
<B>Constructor Summary</B></FONT></TH>
|
||||||
|
</TR>
|
||||||
|
<TR BGCOLOR="white" CLASS="TableRowColor">
|
||||||
|
<TD><CODE><B><A HREF="../../../org/libjpegturbo/turbojpeg/TJScalingFactor.html#TJScalingFactor(int, int)">TJScalingFactor</A></B>(int num,
|
||||||
|
int denom)</CODE>
|
||||||
|
|
||||||
|
<BR>
|
||||||
|
</TD>
|
||||||
|
</TR>
|
||||||
|
</TABLE>
|
||||||
|
|
||||||
|
<!-- ========== METHOD SUMMARY =========== -->
|
||||||
|
|
||||||
|
<A NAME="method_summary"><!-- --></A>
|
||||||
|
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
|
||||||
|
<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
|
||||||
|
<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
|
||||||
|
<B>Method Summary</B></FONT></TH>
|
||||||
|
</TR>
|
||||||
|
<TR BGCOLOR="white" CLASS="TableRowColor">
|
||||||
|
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
|
||||||
|
<CODE> boolean</CODE></FONT></TD>
|
||||||
|
<TD><CODE><B><A HREF="../../../org/libjpegturbo/turbojpeg/TJScalingFactor.html#equals(org.libjpegturbo.turbojpeg.TJScalingFactor)">equals</A></B>(<A HREF="../../../org/libjpegturbo/turbojpeg/TJScalingFactor.html" title="class in org.libjpegturbo.turbojpeg">TJScalingFactor</A> other)</CODE>
|
||||||
|
|
||||||
|
<BR>
|
||||||
|
Returns true or false, depending on whether this instance and
|
||||||
|
<code>other</code> have the same numerator and denominator.</TD>
|
||||||
|
</TR>
|
||||||
|
<TR BGCOLOR="white" CLASS="TableRowColor">
|
||||||
|
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
|
||||||
|
<CODE> int</CODE></FONT></TD>
|
||||||
|
<TD><CODE><B><A HREF="../../../org/libjpegturbo/turbojpeg/TJScalingFactor.html#getDenom()">getDenom</A></B>()</CODE>
|
||||||
|
|
||||||
|
<BR>
|
||||||
|
Returns denominator</TD>
|
||||||
|
</TR>
|
||||||
|
<TR BGCOLOR="white" CLASS="TableRowColor">
|
||||||
|
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
|
||||||
|
<CODE> int</CODE></FONT></TD>
|
||||||
|
<TD><CODE><B><A HREF="../../../org/libjpegturbo/turbojpeg/TJScalingFactor.html#getNum()">getNum</A></B>()</CODE>
|
||||||
|
|
||||||
|
<BR>
|
||||||
|
Returns numerator</TD>
|
||||||
|
</TR>
|
||||||
|
<TR BGCOLOR="white" CLASS="TableRowColor">
|
||||||
|
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
|
||||||
|
<CODE> int</CODE></FONT></TD>
|
||||||
|
<TD><CODE><B><A HREF="../../../org/libjpegturbo/turbojpeg/TJScalingFactor.html#getScaled(int)">getScaled</A></B>(int dimension)</CODE>
|
||||||
|
|
||||||
|
<BR>
|
||||||
|
Returns the scaled value of <code>dimension</code>.</TD>
|
||||||
|
</TR>
|
||||||
|
<TR BGCOLOR="white" CLASS="TableRowColor">
|
||||||
|
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
|
||||||
|
<CODE> boolean</CODE></FONT></TD>
|
||||||
|
<TD><CODE><B><A HREF="../../../org/libjpegturbo/turbojpeg/TJScalingFactor.html#isOne()">isOne</A></B>()</CODE>
|
||||||
|
|
||||||
|
<BR>
|
||||||
|
Returns true or false, depending on whether this instance is equal to
|
||||||
|
1/1.</TD>
|
||||||
|
</TR>
|
||||||
|
</TABLE>
|
||||||
|
<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
|
||||||
|
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
|
||||||
|
<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
|
||||||
|
<TH ALIGN="left"><B>Methods inherited from class java.lang.Object</B></TH>
|
||||||
|
</TR>
|
||||||
|
<TR BGCOLOR="white" CLASS="TableRowColor">
|
||||||
|
<TD><CODE>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</CODE></TD>
|
||||||
|
</TR>
|
||||||
|
</TABLE>
|
||||||
|
|
||||||
|
<P>
|
||||||
|
|
||||||
|
<!-- ========= CONSTRUCTOR DETAIL ======== -->
|
||||||
|
|
||||||
|
<A NAME="constructor_detail"><!-- --></A>
|
||||||
|
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
|
||||||
|
<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
|
||||||
|
<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
|
||||||
|
<B>Constructor Detail</B></FONT></TH>
|
||||||
|
</TR>
|
||||||
|
</TABLE>
|
||||||
|
|
||||||
|
<A NAME="TJScalingFactor(int, int)"><!-- --></A><H3>
|
||||||
|
TJScalingFactor</H3>
|
||||||
|
<PRE>
|
||||||
|
public <B>TJScalingFactor</B>(int num,
|
||||||
|
int denom)
|
||||||
|
throws java.lang.Exception</PRE>
|
||||||
|
<DL>
|
||||||
|
<DL>
|
||||||
|
|
||||||
|
<DT><B>Throws:</B>
|
||||||
|
<DD><CODE>java.lang.Exception</CODE></DL>
|
||||||
|
</DL>
|
||||||
|
|
||||||
|
<!-- ============ METHOD DETAIL ========== -->
|
||||||
|
|
||||||
|
<A NAME="method_detail"><!-- --></A>
|
||||||
|
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
|
||||||
|
<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
|
||||||
|
<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
|
||||||
|
<B>Method Detail</B></FONT></TH>
|
||||||
|
</TR>
|
||||||
|
</TABLE>
|
||||||
|
|
||||||
|
<A NAME="getNum()"><!-- --></A><H3>
|
||||||
|
getNum</H3>
|
||||||
|
<PRE>
|
||||||
|
public int <B>getNum</B>()</PRE>
|
||||||
|
<DL>
|
||||||
|
<DD>Returns numerator
|
||||||
|
<P>
|
||||||
|
<DD><DL>
|
||||||
|
|
||||||
|
<DT><B>Returns:</B><DD>numerator</DL>
|
||||||
|
</DD>
|
||||||
|
</DL>
|
||||||
|
<HR>
|
||||||
|
|
||||||
|
<A NAME="getDenom()"><!-- --></A><H3>
|
||||||
|
getDenom</H3>
|
||||||
|
<PRE>
|
||||||
|
public int <B>getDenom</B>()</PRE>
|
||||||
|
<DL>
|
||||||
|
<DD>Returns denominator
|
||||||
|
<P>
|
||||||
|
<DD><DL>
|
||||||
|
|
||||||
|
<DT><B>Returns:</B><DD>denominator</DL>
|
||||||
|
</DD>
|
||||||
|
</DL>
|
||||||
|
<HR>
|
||||||
|
|
||||||
|
<A NAME="getScaled(int)"><!-- --></A><H3>
|
||||||
|
getScaled</H3>
|
||||||
|
<PRE>
|
||||||
|
public int <B>getScaled</B>(int dimension)</PRE>
|
||||||
|
<DL>
|
||||||
|
<DD>Returns the scaled value of <code>dimension</code>. This function
|
||||||
|
performs the integer equivalent of
|
||||||
|
<code>ceil(dimension * scalingFactor)</code>.
|
||||||
|
<P>
|
||||||
|
<DD><DL>
|
||||||
|
|
||||||
|
<DT><B>Returns:</B><DD>the scaled value of <code>dimension</code></DL>
|
||||||
|
</DD>
|
||||||
|
</DL>
|
||||||
|
<HR>
|
||||||
|
|
||||||
|
<A NAME="equals(org.libjpegturbo.turbojpeg.TJScalingFactor)"><!-- --></A><H3>
|
||||||
|
equals</H3>
|
||||||
|
<PRE>
|
||||||
|
public boolean <B>equals</B>(<A HREF="../../../org/libjpegturbo/turbojpeg/TJScalingFactor.html" title="class in org.libjpegturbo.turbojpeg">TJScalingFactor</A> other)</PRE>
|
||||||
|
<DL>
|
||||||
|
<DD>Returns true or false, depending on whether this instance and
|
||||||
|
<code>other</code> have the same numerator and denominator.
|
||||||
|
<P>
|
||||||
|
<DD><DL>
|
||||||
|
|
||||||
|
<DT><B>Returns:</B><DD>true or false, depending on whether this instance and
|
||||||
|
<code>other</code> have the same numerator and denominator</DL>
|
||||||
|
</DD>
|
||||||
|
</DL>
|
||||||
|
<HR>
|
||||||
|
|
||||||
|
<A NAME="isOne()"><!-- --></A><H3>
|
||||||
|
isOne</H3>
|
||||||
|
<PRE>
|
||||||
|
public boolean <B>isOne</B>()</PRE>
|
||||||
|
<DL>
|
||||||
|
<DD>Returns true or false, depending on whether this instance is equal to
|
||||||
|
1/1.
|
||||||
|
<P>
|
||||||
|
<DD><DL>
|
||||||
|
|
||||||
|
<DT><B>Returns:</B><DD>true or false, depending on whether this instance is equal to
|
||||||
|
1/1</DL>
|
||||||
|
</DD>
|
||||||
|
</DL>
|
||||||
|
<!-- ========= END OF CLASS DATA ========= -->
|
||||||
|
<HR>
|
||||||
|
|
||||||
|
|
||||||
|
<!-- ======= START OF BOTTOM NAVBAR ====== -->
|
||||||
|
<A NAME="navbar_bottom"><!-- --></A>
|
||||||
|
<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
|
||||||
|
<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
|
||||||
|
<TR>
|
||||||
|
<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
|
||||||
|
<A NAME="navbar_bottom_firstrow"><!-- --></A>
|
||||||
|
<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
|
||||||
|
<TR ALIGN="center" VALIGN="top">
|
||||||
|
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../org/libjpegturbo/turbojpeg/package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
|
||||||
|
<TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
|
||||||
|
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
|
||||||
|
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
|
||||||
|
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
|
||||||
|
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
|
||||||
|
</TR>
|
||||||
|
</TABLE>
|
||||||
|
</TD>
|
||||||
|
<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
|
||||||
|
</EM>
|
||||||
|
</TD>
|
||||||
|
</TR>
|
||||||
|
|
||||||
|
<TR>
|
||||||
|
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
|
||||||
|
<A HREF="../../../org/libjpegturbo/turbojpeg/TJDecompressor.html" title="class in org.libjpegturbo.turbojpeg"><B>PREV CLASS</B></A>
|
||||||
|
<A HREF="../../../org/libjpegturbo/turbojpeg/TJTransform.html" title="class in org.libjpegturbo.turbojpeg"><B>NEXT CLASS</B></A></FONT></TD>
|
||||||
|
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
|
||||||
|
<A HREF="../../../index.html?org/libjpegturbo/turbojpeg/TJScalingFactor.html" target="_top"><B>FRAMES</B></A>
|
||||||
|
<A HREF="TJScalingFactor.html" target="_top"><B>NO FRAMES</B></A>
|
||||||
|
<SCRIPT type="text/javascript">
|
||||||
|
<!--
|
||||||
|
if(window==top) {
|
||||||
|
document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');
|
||||||
|
}
|
||||||
|
//-->
|
||||||
|
</SCRIPT>
|
||||||
|
<NOSCRIPT>
|
||||||
|
<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>
|
||||||
|
</NOSCRIPT>
|
||||||
|
|
||||||
|
|
||||||
|
</FONT></TD>
|
||||||
|
</TR>
|
||||||
|
<TR>
|
||||||
|
<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
|
||||||
|
SUMMARY: NESTED | FIELD | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
|
||||||
|
<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
|
||||||
|
DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
|
||||||
|
</TR>
|
||||||
|
</TABLE>
|
||||||
|
<A NAME="skip-navbar_bottom"></A>
|
||||||
|
<!-- ======== END OF BOTTOM NAVBAR ======= -->
|
||||||
|
|
||||||
|
<HR>
|
||||||
|
|
||||||
|
</BODY>
|
||||||
|
</HTML>
|
||||||
767
java/doc/org/libjpegturbo/turbojpeg/TJTransform.html
Normal file
@@ -0,0 +1,767 @@
|
|||||||
|
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
|
||||||
|
<!--NewPage-->
|
||||||
|
<HTML>
|
||||||
|
<HEAD>
|
||||||
|
<!-- Generated by javadoc (build 1.6.0_33) on Fri Jun 29 14:29:13 CDT 2012 -->
|
||||||
|
<TITLE>
|
||||||
|
TJTransform
|
||||||
|
</TITLE>
|
||||||
|
|
||||||
|
<META NAME="date" CONTENT="2012-06-29">
|
||||||
|
|
||||||
|
<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../stylesheet.css" TITLE="Style">
|
||||||
|
|
||||||
|
<SCRIPT type="text/javascript">
|
||||||
|
function windowTitle()
|
||||||
|
{
|
||||||
|
if (location.href.indexOf('is-external=true') == -1) {
|
||||||
|
parent.document.title="TJTransform";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</SCRIPT>
|
||||||
|
<NOSCRIPT>
|
||||||
|
</NOSCRIPT>
|
||||||
|
|
||||||
|
</HEAD>
|
||||||
|
|
||||||
|
<BODY BGCOLOR="white" onload="windowTitle();">
|
||||||
|
<HR>
|
||||||
|
|
||||||
|
|
||||||
|
<!-- ========= START OF TOP NAVBAR ======= -->
|
||||||
|
<A NAME="navbar_top"><!-- --></A>
|
||||||
|
<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
|
||||||
|
<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
|
||||||
|
<TR>
|
||||||
|
<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
|
||||||
|
<A NAME="navbar_top_firstrow"><!-- --></A>
|
||||||
|
<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
|
||||||
|
<TR ALIGN="center" VALIGN="top">
|
||||||
|
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../org/libjpegturbo/turbojpeg/package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
|
||||||
|
<TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
|
||||||
|
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
|
||||||
|
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
|
||||||
|
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
|
||||||
|
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
|
||||||
|
</TR>
|
||||||
|
</TABLE>
|
||||||
|
</TD>
|
||||||
|
<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
|
||||||
|
</EM>
|
||||||
|
</TD>
|
||||||
|
</TR>
|
||||||
|
|
||||||
|
<TR>
|
||||||
|
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
|
||||||
|
<A HREF="../../../org/libjpegturbo/turbojpeg/TJScalingFactor.html" title="class in org.libjpegturbo.turbojpeg"><B>PREV CLASS</B></A>
|
||||||
|
<A HREF="../../../org/libjpegturbo/turbojpeg/TJTransformer.html" title="class in org.libjpegturbo.turbojpeg"><B>NEXT CLASS</B></A></FONT></TD>
|
||||||
|
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
|
||||||
|
<A HREF="../../../index.html?org/libjpegturbo/turbojpeg/TJTransform.html" target="_top"><B>FRAMES</B></A>
|
||||||
|
<A HREF="TJTransform.html" target="_top"><B>NO FRAMES</B></A>
|
||||||
|
<SCRIPT type="text/javascript">
|
||||||
|
<!--
|
||||||
|
if(window==top) {
|
||||||
|
document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');
|
||||||
|
}
|
||||||
|
//-->
|
||||||
|
</SCRIPT>
|
||||||
|
<NOSCRIPT>
|
||||||
|
<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>
|
||||||
|
</NOSCRIPT>
|
||||||
|
|
||||||
|
|
||||||
|
</FONT></TD>
|
||||||
|
</TR>
|
||||||
|
<TR>
|
||||||
|
<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
|
||||||
|
SUMMARY: <A HREF="#nested_classes_inherited_from_class_java.awt.geom.Rectangle2D">NESTED</A> | <A HREF="#field_summary">FIELD</A> | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#methods_inherited_from_class_java.awt.Rectangle">METHOD</A></FONT></TD>
|
||||||
|
<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
|
||||||
|
DETAIL: <A HREF="#field_detail">FIELD</A> | <A HREF="#constructor_detail">CONSTR</A> | METHOD</FONT></TD>
|
||||||
|
</TR>
|
||||||
|
</TABLE>
|
||||||
|
<A NAME="skip-navbar_top"></A>
|
||||||
|
<!-- ========= END OF TOP NAVBAR ========= -->
|
||||||
|
|
||||||
|
<HR>
|
||||||
|
<!-- ======== START OF CLASS DATA ======== -->
|
||||||
|
<H2>
|
||||||
|
<FONT SIZE="-1">
|
||||||
|
org.libjpegturbo.turbojpeg</FONT>
|
||||||
|
<BR>
|
||||||
|
Class TJTransform</H2>
|
||||||
|
<PRE>
|
||||||
|
java.lang.Object
|
||||||
|
<IMG SRC="../../../resources/inherit.gif" ALT="extended by ">java.awt.geom.RectangularShape
|
||||||
|
<IMG SRC="../../../resources/inherit.gif" ALT="extended by ">java.awt.geom.Rectangle2D
|
||||||
|
<IMG SRC="../../../resources/inherit.gif" ALT="extended by ">java.awt.Rectangle
|
||||||
|
<IMG SRC="../../../resources/inherit.gif" ALT="extended by "><B>org.libjpegturbo.turbojpeg.TJTransform</B>
|
||||||
|
</PRE>
|
||||||
|
<DL>
|
||||||
|
<DT><B>All Implemented Interfaces:</B> <DD>java.awt.Shape, java.io.Serializable, java.lang.Cloneable</DD>
|
||||||
|
</DL>
|
||||||
|
<HR>
|
||||||
|
<DL>
|
||||||
|
<DT><PRE>public class <B>TJTransform</B><DT>extends java.awt.Rectangle</DL>
|
||||||
|
</PRE>
|
||||||
|
|
||||||
|
<P>
|
||||||
|
Lossless transform parameters
|
||||||
|
<P>
|
||||||
|
|
||||||
|
<P>
|
||||||
|
<DL>
|
||||||
|
<DT><B>See Also:</B><DD><A HREF="../../../serialized-form.html#org.libjpegturbo.turbojpeg.TJTransform">Serialized Form</A></DL>
|
||||||
|
<HR>
|
||||||
|
|
||||||
|
<P>
|
||||||
|
<!-- ======== NESTED CLASS SUMMARY ======== -->
|
||||||
|
|
||||||
|
<A NAME="nested_class_summary"><!-- --></A>
|
||||||
|
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
|
||||||
|
<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
|
||||||
|
<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
|
||||||
|
<B>Nested Class Summary</B></FONT></TH>
|
||||||
|
</TR>
|
||||||
|
</TABLE>
|
||||||
|
<A NAME="nested_classes_inherited_from_class_java.awt.geom.Rectangle2D"><!-- --></A>
|
||||||
|
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
|
||||||
|
<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
|
||||||
|
<TH ALIGN="left"><B>Nested classes/interfaces inherited from class java.awt.geom.Rectangle2D</B></TH>
|
||||||
|
</TR>
|
||||||
|
<TR BGCOLOR="white" CLASS="TableRowColor">
|
||||||
|
<TD><CODE>java.awt.geom.Rectangle2D.Double, java.awt.geom.Rectangle2D.Float</CODE></TD>
|
||||||
|
</TR>
|
||||||
|
</TABLE>
|
||||||
|
|
||||||
|
<!-- =========== FIELD SUMMARY =========== -->
|
||||||
|
|
||||||
|
<A NAME="field_summary"><!-- --></A>
|
||||||
|
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
|
||||||
|
<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
|
||||||
|
<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
|
||||||
|
<B>Field Summary</B></FONT></TH>
|
||||||
|
</TR>
|
||||||
|
<TR BGCOLOR="white" CLASS="TableRowColor">
|
||||||
|
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
|
||||||
|
<CODE> <A HREF="../../../org/libjpegturbo/turbojpeg/TJCustomFilter.html" title="interface in org.libjpegturbo.turbojpeg">TJCustomFilter</A></CODE></FONT></TD>
|
||||||
|
<TD><CODE><B><A HREF="../../../org/libjpegturbo/turbojpeg/TJTransform.html#cf">cf</A></B></CODE>
|
||||||
|
|
||||||
|
<BR>
|
||||||
|
Custom filter instance</TD>
|
||||||
|
</TR>
|
||||||
|
<TR BGCOLOR="white" CLASS="TableRowColor">
|
||||||
|
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
|
||||||
|
<CODE>static int</CODE></FONT></TD>
|
||||||
|
<TD><CODE><B><A HREF="../../../org/libjpegturbo/turbojpeg/TJTransform.html#NUMOP">NUMOP</A></B></CODE>
|
||||||
|
|
||||||
|
<BR>
|
||||||
|
The number of lossless transform operations</TD>
|
||||||
|
</TR>
|
||||||
|
<TR BGCOLOR="white" CLASS="TableRowColor">
|
||||||
|
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
|
||||||
|
<CODE> int</CODE></FONT></TD>
|
||||||
|
<TD><CODE><B><A HREF="../../../org/libjpegturbo/turbojpeg/TJTransform.html#op">op</A></B></CODE>
|
||||||
|
|
||||||
|
<BR>
|
||||||
|
Transform operation (one of <code>OP_*</code>)</TD>
|
||||||
|
</TR>
|
||||||
|
<TR BGCOLOR="white" CLASS="TableRowColor">
|
||||||
|
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
|
||||||
|
<CODE>static int</CODE></FONT></TD>
|
||||||
|
<TD><CODE><B><A HREF="../../../org/libjpegturbo/turbojpeg/TJTransform.html#OP_HFLIP">OP_HFLIP</A></B></CODE>
|
||||||
|
|
||||||
|
<BR>
|
||||||
|
Flip (mirror) image horizontally.</TD>
|
||||||
|
</TR>
|
||||||
|
<TR BGCOLOR="white" CLASS="TableRowColor">
|
||||||
|
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
|
||||||
|
<CODE>static int</CODE></FONT></TD>
|
||||||
|
<TD><CODE><B><A HREF="../../../org/libjpegturbo/turbojpeg/TJTransform.html#OP_NONE">OP_NONE</A></B></CODE>
|
||||||
|
|
||||||
|
<BR>
|
||||||
|
Do not transform the position of the image pixels.</TD>
|
||||||
|
</TR>
|
||||||
|
<TR BGCOLOR="white" CLASS="TableRowColor">
|
||||||
|
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
|
||||||
|
<CODE>static int</CODE></FONT></TD>
|
||||||
|
<TD><CODE><B><A HREF="../../../org/libjpegturbo/turbojpeg/TJTransform.html#OP_ROT180">OP_ROT180</A></B></CODE>
|
||||||
|
|
||||||
|
<BR>
|
||||||
|
Rotate image 180 degrees.</TD>
|
||||||
|
</TR>
|
||||||
|
<TR BGCOLOR="white" CLASS="TableRowColor">
|
||||||
|
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
|
||||||
|
<CODE>static int</CODE></FONT></TD>
|
||||||
|
<TD><CODE><B><A HREF="../../../org/libjpegturbo/turbojpeg/TJTransform.html#OP_ROT270">OP_ROT270</A></B></CODE>
|
||||||
|
|
||||||
|
<BR>
|
||||||
|
Rotate image counter-clockwise by 90 degrees.</TD>
|
||||||
|
</TR>
|
||||||
|
<TR BGCOLOR="white" CLASS="TableRowColor">
|
||||||
|
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
|
||||||
|
<CODE>static int</CODE></FONT></TD>
|
||||||
|
<TD><CODE><B><A HREF="../../../org/libjpegturbo/turbojpeg/TJTransform.html#OP_ROT90">OP_ROT90</A></B></CODE>
|
||||||
|
|
||||||
|
<BR>
|
||||||
|
Rotate image clockwise by 90 degrees.</TD>
|
||||||
|
</TR>
|
||||||
|
<TR BGCOLOR="white" CLASS="TableRowColor">
|
||||||
|
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
|
||||||
|
<CODE>static int</CODE></FONT></TD>
|
||||||
|
<TD><CODE><B><A HREF="../../../org/libjpegturbo/turbojpeg/TJTransform.html#OP_TRANSPOSE">OP_TRANSPOSE</A></B></CODE>
|
||||||
|
|
||||||
|
<BR>
|
||||||
|
Transpose image (flip/mirror along upper left to lower right axis).</TD>
|
||||||
|
</TR>
|
||||||
|
<TR BGCOLOR="white" CLASS="TableRowColor">
|
||||||
|
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
|
||||||
|
<CODE>static int</CODE></FONT></TD>
|
||||||
|
<TD><CODE><B><A HREF="../../../org/libjpegturbo/turbojpeg/TJTransform.html#OP_TRANSVERSE">OP_TRANSVERSE</A></B></CODE>
|
||||||
|
|
||||||
|
<BR>
|
||||||
|
Transverse transpose image (flip/mirror along upper right to lower left
|
||||||
|
axis).</TD>
|
||||||
|
</TR>
|
||||||
|
<TR BGCOLOR="white" CLASS="TableRowColor">
|
||||||
|
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
|
||||||
|
<CODE>static int</CODE></FONT></TD>
|
||||||
|
<TD><CODE><B><A HREF="../../../org/libjpegturbo/turbojpeg/TJTransform.html#OP_VFLIP">OP_VFLIP</A></B></CODE>
|
||||||
|
|
||||||
|
<BR>
|
||||||
|
Flip (mirror) image vertically.</TD>
|
||||||
|
</TR>
|
||||||
|
<TR BGCOLOR="white" CLASS="TableRowColor">
|
||||||
|
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
|
||||||
|
<CODE>static int</CODE></FONT></TD>
|
||||||
|
<TD><CODE><B><A HREF="../../../org/libjpegturbo/turbojpeg/TJTransform.html#OPT_CROP">OPT_CROP</A></B></CODE>
|
||||||
|
|
||||||
|
<BR>
|
||||||
|
This option will enable lossless cropping.</TD>
|
||||||
|
</TR>
|
||||||
|
<TR BGCOLOR="white" CLASS="TableRowColor">
|
||||||
|
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
|
||||||
|
<CODE>static int</CODE></FONT></TD>
|
||||||
|
<TD><CODE><B><A HREF="../../../org/libjpegturbo/turbojpeg/TJTransform.html#OPT_GRAY">OPT_GRAY</A></B></CODE>
|
||||||
|
|
||||||
|
<BR>
|
||||||
|
This option will discard the color data in the input image and produce
|
||||||
|
a grayscale output image.</TD>
|
||||||
|
</TR>
|
||||||
|
<TR BGCOLOR="white" CLASS="TableRowColor">
|
||||||
|
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
|
||||||
|
<CODE>static int</CODE></FONT></TD>
|
||||||
|
<TD><CODE><B><A HREF="../../../org/libjpegturbo/turbojpeg/TJTransform.html#OPT_NOOUTPUT">OPT_NOOUTPUT</A></B></CODE>
|
||||||
|
|
||||||
|
<BR>
|
||||||
|
This option will prevent <A HREF="../../../org/libjpegturbo/turbojpeg/TJTransformer.html#transform(byte[][], org.libjpegturbo.turbojpeg.TJTransform[], int)"><CODE>TJTransformer.transform()</CODE></A> from outputting a JPEG image for this
|
||||||
|
particular transform.</TD>
|
||||||
|
</TR>
|
||||||
|
<TR BGCOLOR="white" CLASS="TableRowColor">
|
||||||
|
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
|
||||||
|
<CODE>static int</CODE></FONT></TD>
|
||||||
|
<TD><CODE><B><A HREF="../../../org/libjpegturbo/turbojpeg/TJTransform.html#OPT_PERFECT">OPT_PERFECT</A></B></CODE>
|
||||||
|
|
||||||
|
<BR>
|
||||||
|
This option will cause <A HREF="../../../org/libjpegturbo/turbojpeg/TJTransformer.html#transform(byte[][], org.libjpegturbo.turbojpeg.TJTransform[], int)"><CODE>TJTransformer.transform()</CODE></A> to throw an exception if the transform is not
|
||||||
|
perfect.</TD>
|
||||||
|
</TR>
|
||||||
|
<TR BGCOLOR="white" CLASS="TableRowColor">
|
||||||
|
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
|
||||||
|
<CODE>static int</CODE></FONT></TD>
|
||||||
|
<TD><CODE><B><A HREF="../../../org/libjpegturbo/turbojpeg/TJTransform.html#OPT_TRIM">OPT_TRIM</A></B></CODE>
|
||||||
|
|
||||||
|
<BR>
|
||||||
|
This option will discard any partial MCU blocks that cannot be
|
||||||
|
transformed.</TD>
|
||||||
|
</TR>
|
||||||
|
<TR BGCOLOR="white" CLASS="TableRowColor">
|
||||||
|
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
|
||||||
|
<CODE> int</CODE></FONT></TD>
|
||||||
|
<TD><CODE><B><A HREF="../../../org/libjpegturbo/turbojpeg/TJTransform.html#options">options</A></B></CODE>
|
||||||
|
|
||||||
|
<BR>
|
||||||
|
Transform options (bitwise OR of one or more of <code>OPT_*</code>)</TD>
|
||||||
|
</TR>
|
||||||
|
</TABLE>
|
||||||
|
<A NAME="fields_inherited_from_class_java.awt.Rectangle"><!-- --></A>
|
||||||
|
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
|
||||||
|
<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
|
||||||
|
<TH ALIGN="left"><B>Fields inherited from class java.awt.Rectangle</B></TH>
|
||||||
|
</TR>
|
||||||
|
<TR BGCOLOR="white" CLASS="TableRowColor">
|
||||||
|
<TD><CODE>height, width, x, y</CODE></TD>
|
||||||
|
</TR>
|
||||||
|
</TABLE>
|
||||||
|
<A NAME="fields_inherited_from_class_java.awt.geom.Rectangle2D"><!-- --></A>
|
||||||
|
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
|
||||||
|
<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
|
||||||
|
<TH ALIGN="left"><B>Fields inherited from class java.awt.geom.Rectangle2D</B></TH>
|
||||||
|
</TR>
|
||||||
|
<TR BGCOLOR="white" CLASS="TableRowColor">
|
||||||
|
<TD><CODE>OUT_BOTTOM, OUT_LEFT, OUT_RIGHT, OUT_TOP</CODE></TD>
|
||||||
|
</TR>
|
||||||
|
</TABLE>
|
||||||
|
|
||||||
|
<!-- ======== CONSTRUCTOR SUMMARY ======== -->
|
||||||
|
|
||||||
|
<A NAME="constructor_summary"><!-- --></A>
|
||||||
|
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
|
||||||
|
<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
|
||||||
|
<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
|
||||||
|
<B>Constructor Summary</B></FONT></TH>
|
||||||
|
</TR>
|
||||||
|
<TR BGCOLOR="white" CLASS="TableRowColor">
|
||||||
|
<TD><CODE><B><A HREF="../../../org/libjpegturbo/turbojpeg/TJTransform.html#TJTransform()">TJTransform</A></B>()</CODE>
|
||||||
|
|
||||||
|
<BR>
|
||||||
|
Create a new lossless transform instance.</TD>
|
||||||
|
</TR>
|
||||||
|
<TR BGCOLOR="white" CLASS="TableRowColor">
|
||||||
|
<TD><CODE><B><A HREF="../../../org/libjpegturbo/turbojpeg/TJTransform.html#TJTransform(int, int, int, int, int, int, org.libjpegturbo.turbojpeg.TJCustomFilter)">TJTransform</A></B>(int x,
|
||||||
|
int y,
|
||||||
|
int w,
|
||||||
|
int h,
|
||||||
|
int op,
|
||||||
|
int options,
|
||||||
|
<A HREF="../../../org/libjpegturbo/turbojpeg/TJCustomFilter.html" title="interface in org.libjpegturbo.turbojpeg">TJCustomFilter</A> cf)</CODE>
|
||||||
|
|
||||||
|
<BR>
|
||||||
|
Create a new lossless transform instance with the given parameters.</TD>
|
||||||
|
</TR>
|
||||||
|
<TR BGCOLOR="white" CLASS="TableRowColor">
|
||||||
|
<TD><CODE><B><A HREF="../../../org/libjpegturbo/turbojpeg/TJTransform.html#TJTransform(java.awt.Rectangle, int, int, org.libjpegturbo.turbojpeg.TJCustomFilter)">TJTransform</A></B>(java.awt.Rectangle r,
|
||||||
|
int op,
|
||||||
|
int options,
|
||||||
|
<A HREF="../../../org/libjpegturbo/turbojpeg/TJCustomFilter.html" title="interface in org.libjpegturbo.turbojpeg">TJCustomFilter</A> cf)</CODE>
|
||||||
|
|
||||||
|
<BR>
|
||||||
|
Create a new lossless transform instance with the given parameters.</TD>
|
||||||
|
</TR>
|
||||||
|
</TABLE>
|
||||||
|
|
||||||
|
<!-- ========== METHOD SUMMARY =========== -->
|
||||||
|
|
||||||
|
<A NAME="method_summary"><!-- --></A>
|
||||||
|
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
|
||||||
|
<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
|
||||||
|
<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
|
||||||
|
<B>Method Summary</B></FONT></TH>
|
||||||
|
</TR>
|
||||||
|
</TABLE>
|
||||||
|
<A NAME="methods_inherited_from_class_java.awt.Rectangle"><!-- --></A>
|
||||||
|
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
|
||||||
|
<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
|
||||||
|
<TH ALIGN="left"><B>Methods inherited from class java.awt.Rectangle</B></TH>
|
||||||
|
</TR>
|
||||||
|
<TR BGCOLOR="white" CLASS="TableRowColor">
|
||||||
|
<TD><CODE>add, add, add, contains, contains, contains, contains, createIntersection, createUnion, equals, getBounds, getBounds2D, getHeight, getLocation, getSize, getWidth, getX, getY, grow, inside, intersection, intersects, isEmpty, move, outcode, reshape, resize, setBounds, setBounds, setLocation, setLocation, setRect, setSize, setSize, toString, translate, union</CODE></TD>
|
||||||
|
</TR>
|
||||||
|
</TABLE>
|
||||||
|
<A NAME="methods_inherited_from_class_java.awt.geom.Rectangle2D"><!-- --></A>
|
||||||
|
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
|
||||||
|
<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
|
||||||
|
<TH ALIGN="left"><B>Methods inherited from class java.awt.geom.Rectangle2D</B></TH>
|
||||||
|
</TR>
|
||||||
|
<TR BGCOLOR="white" CLASS="TableRowColor">
|
||||||
|
<TD><CODE>add, add, add, contains, contains, getPathIterator, getPathIterator, hashCode, intersect, intersects, intersectsLine, intersectsLine, outcode, setFrame, setRect, union</CODE></TD>
|
||||||
|
</TR>
|
||||||
|
</TABLE>
|
||||||
|
<A NAME="methods_inherited_from_class_java.awt.geom.RectangularShape"><!-- --></A>
|
||||||
|
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
|
||||||
|
<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
|
||||||
|
<TH ALIGN="left"><B>Methods inherited from class java.awt.geom.RectangularShape</B></TH>
|
||||||
|
</TR>
|
||||||
|
<TR BGCOLOR="white" CLASS="TableRowColor">
|
||||||
|
<TD><CODE>clone, contains, contains, getCenterX, getCenterY, getFrame, getMaxX, getMaxY, getMinX, getMinY, intersects, setFrame, setFrame, setFrameFromCenter, setFrameFromCenter, setFrameFromDiagonal, setFrameFromDiagonal</CODE></TD>
|
||||||
|
</TR>
|
||||||
|
</TABLE>
|
||||||
|
<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
|
||||||
|
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
|
||||||
|
<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
|
||||||
|
<TH ALIGN="left"><B>Methods inherited from class java.lang.Object</B></TH>
|
||||||
|
</TR>
|
||||||
|
<TR BGCOLOR="white" CLASS="TableRowColor">
|
||||||
|
<TD><CODE>finalize, getClass, notify, notifyAll, wait, wait, wait</CODE></TD>
|
||||||
|
</TR>
|
||||||
|
</TABLE>
|
||||||
|
<A NAME="methods_inherited_from_class_java.awt.Shape"><!-- --></A>
|
||||||
|
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
|
||||||
|
<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
|
||||||
|
<TH ALIGN="left"><B>Methods inherited from interface java.awt.Shape</B></TH>
|
||||||
|
</TR>
|
||||||
|
<TR BGCOLOR="white" CLASS="TableRowColor">
|
||||||
|
<TD><CODE>contains, contains, contains, contains, getPathIterator, getPathIterator, intersects, intersects</CODE></TD>
|
||||||
|
</TR>
|
||||||
|
</TABLE>
|
||||||
|
|
||||||
|
<P>
|
||||||
|
|
||||||
|
<!-- ============ FIELD DETAIL =========== -->
|
||||||
|
|
||||||
|
<A NAME="field_detail"><!-- --></A>
|
||||||
|
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
|
||||||
|
<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
|
||||||
|
<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
|
||||||
|
<B>Field Detail</B></FONT></TH>
|
||||||
|
</TR>
|
||||||
|
</TABLE>
|
||||||
|
|
||||||
|
<A NAME="NUMOP"><!-- --></A><H3>
|
||||||
|
NUMOP</H3>
|
||||||
|
<PRE>
|
||||||
|
public static final int <B>NUMOP</B></PRE>
|
||||||
|
<DL>
|
||||||
|
<DD>The number of lossless transform operations
|
||||||
|
<P>
|
||||||
|
<DL>
|
||||||
|
<DT><B>See Also:</B><DD><A HREF="../../../constant-values.html#org.libjpegturbo.turbojpeg.TJTransform.NUMOP">Constant Field Values</A></DL>
|
||||||
|
</DL>
|
||||||
|
<HR>
|
||||||
|
|
||||||
|
<A NAME="OP_NONE"><!-- --></A><H3>
|
||||||
|
OP_NONE</H3>
|
||||||
|
<PRE>
|
||||||
|
public static final int <B>OP_NONE</B></PRE>
|
||||||
|
<DL>
|
||||||
|
<DD>Do not transform the position of the image pixels.
|
||||||
|
<P>
|
||||||
|
<DL>
|
||||||
|
<DT><B>See Also:</B><DD><A HREF="../../../constant-values.html#org.libjpegturbo.turbojpeg.TJTransform.OP_NONE">Constant Field Values</A></DL>
|
||||||
|
</DL>
|
||||||
|
<HR>
|
||||||
|
|
||||||
|
<A NAME="OP_HFLIP"><!-- --></A><H3>
|
||||||
|
OP_HFLIP</H3>
|
||||||
|
<PRE>
|
||||||
|
public static final int <B>OP_HFLIP</B></PRE>
|
||||||
|
<DL>
|
||||||
|
<DD>Flip (mirror) image horizontally. This transform is imperfect if there
|
||||||
|
are any partial MCU blocks on the right edge.
|
||||||
|
<P>
|
||||||
|
<DL>
|
||||||
|
<DT><B>See Also:</B><DD><A HREF="../../../org/libjpegturbo/turbojpeg/TJTransform.html#OPT_PERFECT"><CODE>OPT_PERFECT</CODE></A>,
|
||||||
|
<A HREF="../../../constant-values.html#org.libjpegturbo.turbojpeg.TJTransform.OP_HFLIP">Constant Field Values</A></DL>
|
||||||
|
</DL>
|
||||||
|
<HR>
|
||||||
|
|
||||||
|
<A NAME="OP_VFLIP"><!-- --></A><H3>
|
||||||
|
OP_VFLIP</H3>
|
||||||
|
<PRE>
|
||||||
|
public static final int <B>OP_VFLIP</B></PRE>
|
||||||
|
<DL>
|
||||||
|
<DD>Flip (mirror) image vertically. This transform is imperfect if there are
|
||||||
|
any partial MCU blocks on the bottom edge.
|
||||||
|
<P>
|
||||||
|
<DL>
|
||||||
|
<DT><B>See Also:</B><DD><A HREF="../../../org/libjpegturbo/turbojpeg/TJTransform.html#OPT_PERFECT"><CODE>OPT_PERFECT</CODE></A>,
|
||||||
|
<A HREF="../../../constant-values.html#org.libjpegturbo.turbojpeg.TJTransform.OP_VFLIP">Constant Field Values</A></DL>
|
||||||
|
</DL>
|
||||||
|
<HR>
|
||||||
|
|
||||||
|
<A NAME="OP_TRANSPOSE"><!-- --></A><H3>
|
||||||
|
OP_TRANSPOSE</H3>
|
||||||
|
<PRE>
|
||||||
|
public static final int <B>OP_TRANSPOSE</B></PRE>
|
||||||
|
<DL>
|
||||||
|
<DD>Transpose image (flip/mirror along upper left to lower right axis). This
|
||||||
|
transform is always perfect.
|
||||||
|
<P>
|
||||||
|
<DL>
|
||||||
|
<DT><B>See Also:</B><DD><A HREF="../../../org/libjpegturbo/turbojpeg/TJTransform.html#OPT_PERFECT"><CODE>OPT_PERFECT</CODE></A>,
|
||||||
|
<A HREF="../../../constant-values.html#org.libjpegturbo.turbojpeg.TJTransform.OP_TRANSPOSE">Constant Field Values</A></DL>
|
||||||
|
</DL>
|
||||||
|
<HR>
|
||||||
|
|
||||||
|
<A NAME="OP_TRANSVERSE"><!-- --></A><H3>
|
||||||
|
OP_TRANSVERSE</H3>
|
||||||
|
<PRE>
|
||||||
|
public static final int <B>OP_TRANSVERSE</B></PRE>
|
||||||
|
<DL>
|
||||||
|
<DD>Transverse transpose image (flip/mirror along upper right to lower left
|
||||||
|
axis). This transform is imperfect if there are any partial MCU blocks in
|
||||||
|
the image.
|
||||||
|
<P>
|
||||||
|
<DL>
|
||||||
|
<DT><B>See Also:</B><DD><A HREF="../../../org/libjpegturbo/turbojpeg/TJTransform.html#OPT_PERFECT"><CODE>OPT_PERFECT</CODE></A>,
|
||||||
|
<A HREF="../../../constant-values.html#org.libjpegturbo.turbojpeg.TJTransform.OP_TRANSVERSE">Constant Field Values</A></DL>
|
||||||
|
</DL>
|
||||||
|
<HR>
|
||||||
|
|
||||||
|
<A NAME="OP_ROT90"><!-- --></A><H3>
|
||||||
|
OP_ROT90</H3>
|
||||||
|
<PRE>
|
||||||
|
public static final int <B>OP_ROT90</B></PRE>
|
||||||
|
<DL>
|
||||||
|
<DD>Rotate image clockwise by 90 degrees. This transform is imperfect if
|
||||||
|
there are any partial MCU blocks on the bottom edge.
|
||||||
|
<P>
|
||||||
|
<DL>
|
||||||
|
<DT><B>See Also:</B><DD><A HREF="../../../org/libjpegturbo/turbojpeg/TJTransform.html#OPT_PERFECT"><CODE>OPT_PERFECT</CODE></A>,
|
||||||
|
<A HREF="../../../constant-values.html#org.libjpegturbo.turbojpeg.TJTransform.OP_ROT90">Constant Field Values</A></DL>
|
||||||
|
</DL>
|
||||||
|
<HR>
|
||||||
|
|
||||||
|
<A NAME="OP_ROT180"><!-- --></A><H3>
|
||||||
|
OP_ROT180</H3>
|
||||||
|
<PRE>
|
||||||
|
public static final int <B>OP_ROT180</B></PRE>
|
||||||
|
<DL>
|
||||||
|
<DD>Rotate image 180 degrees. This transform is imperfect if there are any
|
||||||
|
partial MCU blocks in the image.
|
||||||
|
<P>
|
||||||
|
<DL>
|
||||||
|
<DT><B>See Also:</B><DD><A HREF="../../../org/libjpegturbo/turbojpeg/TJTransform.html#OPT_PERFECT"><CODE>OPT_PERFECT</CODE></A>,
|
||||||
|
<A HREF="../../../constant-values.html#org.libjpegturbo.turbojpeg.TJTransform.OP_ROT180">Constant Field Values</A></DL>
|
||||||
|
</DL>
|
||||||
|
<HR>
|
||||||
|
|
||||||
|
<A NAME="OP_ROT270"><!-- --></A><H3>
|
||||||
|
OP_ROT270</H3>
|
||||||
|
<PRE>
|
||||||
|
public static final int <B>OP_ROT270</B></PRE>
|
||||||
|
<DL>
|
||||||
|
<DD>Rotate image counter-clockwise by 90 degrees. This transform is imperfect
|
||||||
|
if there are any partial MCU blocks on the right edge.
|
||||||
|
<P>
|
||||||
|
<DL>
|
||||||
|
<DT><B>See Also:</B><DD><A HREF="../../../org/libjpegturbo/turbojpeg/TJTransform.html#OPT_PERFECT"><CODE>OPT_PERFECT</CODE></A>,
|
||||||
|
<A HREF="../../../constant-values.html#org.libjpegturbo.turbojpeg.TJTransform.OP_ROT270">Constant Field Values</A></DL>
|
||||||
|
</DL>
|
||||||
|
<HR>
|
||||||
|
|
||||||
|
<A NAME="OPT_PERFECT"><!-- --></A><H3>
|
||||||
|
OPT_PERFECT</H3>
|
||||||
|
<PRE>
|
||||||
|
public static final int <B>OPT_PERFECT</B></PRE>
|
||||||
|
<DL>
|
||||||
|
<DD>This option will cause <A HREF="../../../org/libjpegturbo/turbojpeg/TJTransformer.html#transform(byte[][], org.libjpegturbo.turbojpeg.TJTransform[], int)"><CODE>TJTransformer.transform()</CODE></A> to throw an exception if the transform is not
|
||||||
|
perfect. Lossless transforms operate on MCU blocks, whose size depends on
|
||||||
|
the level of chrominance subsampling used. If the image's width or height
|
||||||
|
is not evenly divisible by the MCU block size (see <A HREF="../../../org/libjpegturbo/turbojpeg/TJ.html#getMCUWidth(int)"><CODE>TJ.getMCUWidth(int)</CODE></A>
|
||||||
|
and <A HREF="../../../org/libjpegturbo/turbojpeg/TJ.html#getMCUHeight(int)"><CODE>TJ.getMCUHeight(int)</CODE></A>), then there will be partial MCU blocks on the
|
||||||
|
right and/or bottom edges. It is not possible to move these partial MCU
|
||||||
|
blocks to the top or left of the image, so any transform that would
|
||||||
|
require that is "imperfect." If this option is not specified, then any
|
||||||
|
partial MCU blocks that cannot be transformed will be left in place, which
|
||||||
|
will create odd-looking strips on the right or bottom edge of the image.
|
||||||
|
<P>
|
||||||
|
<DL>
|
||||||
|
<DT><B>See Also:</B><DD><A HREF="../../../constant-values.html#org.libjpegturbo.turbojpeg.TJTransform.OPT_PERFECT">Constant Field Values</A></DL>
|
||||||
|
</DL>
|
||||||
|
<HR>
|
||||||
|
|
||||||
|
<A NAME="OPT_TRIM"><!-- --></A><H3>
|
||||||
|
OPT_TRIM</H3>
|
||||||
|
<PRE>
|
||||||
|
public static final int <B>OPT_TRIM</B></PRE>
|
||||||
|
<DL>
|
||||||
|
<DD>This option will discard any partial MCU blocks that cannot be
|
||||||
|
transformed.
|
||||||
|
<P>
|
||||||
|
<DL>
|
||||||
|
<DT><B>See Also:</B><DD><A HREF="../../../constant-values.html#org.libjpegturbo.turbojpeg.TJTransform.OPT_TRIM">Constant Field Values</A></DL>
|
||||||
|
</DL>
|
||||||
|
<HR>
|
||||||
|
|
||||||
|
<A NAME="OPT_CROP"><!-- --></A><H3>
|
||||||
|
OPT_CROP</H3>
|
||||||
|
<PRE>
|
||||||
|
public static final int <B>OPT_CROP</B></PRE>
|
||||||
|
<DL>
|
||||||
|
<DD>This option will enable lossless cropping.
|
||||||
|
<P>
|
||||||
|
<DL>
|
||||||
|
<DT><B>See Also:</B><DD><A HREF="../../../constant-values.html#org.libjpegturbo.turbojpeg.TJTransform.OPT_CROP">Constant Field Values</A></DL>
|
||||||
|
</DL>
|
||||||
|
<HR>
|
||||||
|
|
||||||
|
<A NAME="OPT_GRAY"><!-- --></A><H3>
|
||||||
|
OPT_GRAY</H3>
|
||||||
|
<PRE>
|
||||||
|
public static final int <B>OPT_GRAY</B></PRE>
|
||||||
|
<DL>
|
||||||
|
<DD>This option will discard the color data in the input image and produce
|
||||||
|
a grayscale output image.
|
||||||
|
<P>
|
||||||
|
<DL>
|
||||||
|
<DT><B>See Also:</B><DD><A HREF="../../../constant-values.html#org.libjpegturbo.turbojpeg.TJTransform.OPT_GRAY">Constant Field Values</A></DL>
|
||||||
|
</DL>
|
||||||
|
<HR>
|
||||||
|
|
||||||
|
<A NAME="OPT_NOOUTPUT"><!-- --></A><H3>
|
||||||
|
OPT_NOOUTPUT</H3>
|
||||||
|
<PRE>
|
||||||
|
public static final int <B>OPT_NOOUTPUT</B></PRE>
|
||||||
|
<DL>
|
||||||
|
<DD>This option will prevent <A HREF="../../../org/libjpegturbo/turbojpeg/TJTransformer.html#transform(byte[][], org.libjpegturbo.turbojpeg.TJTransform[], int)"><CODE>TJTransformer.transform()</CODE></A> from outputting a JPEG image for this
|
||||||
|
particular transform. This can be used in conjunction with a custom
|
||||||
|
filter to capture the transformed DCT coefficients without transcoding
|
||||||
|
them.
|
||||||
|
<P>
|
||||||
|
<DL>
|
||||||
|
<DT><B>See Also:</B><DD><A HREF="../../../constant-values.html#org.libjpegturbo.turbojpeg.TJTransform.OPT_NOOUTPUT">Constant Field Values</A></DL>
|
||||||
|
</DL>
|
||||||
|
<HR>
|
||||||
|
|
||||||
|
<A NAME="op"><!-- --></A><H3>
|
||||||
|
op</H3>
|
||||||
|
<PRE>
|
||||||
|
public int <B>op</B></PRE>
|
||||||
|
<DL>
|
||||||
|
<DD>Transform operation (one of <code>OP_*</code>)
|
||||||
|
<P>
|
||||||
|
<DL>
|
||||||
|
</DL>
|
||||||
|
</DL>
|
||||||
|
<HR>
|
||||||
|
|
||||||
|
<A NAME="options"><!-- --></A><H3>
|
||||||
|
options</H3>
|
||||||
|
<PRE>
|
||||||
|
public int <B>options</B></PRE>
|
||||||
|
<DL>
|
||||||
|
<DD>Transform options (bitwise OR of one or more of <code>OPT_*</code>)
|
||||||
|
<P>
|
||||||
|
<DL>
|
||||||
|
</DL>
|
||||||
|
</DL>
|
||||||
|
<HR>
|
||||||
|
|
||||||
|
<A NAME="cf"><!-- --></A><H3>
|
||||||
|
cf</H3>
|
||||||
|
<PRE>
|
||||||
|
public <A HREF="../../../org/libjpegturbo/turbojpeg/TJCustomFilter.html" title="interface in org.libjpegturbo.turbojpeg">TJCustomFilter</A> <B>cf</B></PRE>
|
||||||
|
<DL>
|
||||||
|
<DD>Custom filter instance
|
||||||
|
<P>
|
||||||
|
<DL>
|
||||||
|
</DL>
|
||||||
|
</DL>
|
||||||
|
|
||||||
|
<!-- ========= CONSTRUCTOR DETAIL ======== -->
|
||||||
|
|
||||||
|
<A NAME="constructor_detail"><!-- --></A>
|
||||||
|
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
|
||||||
|
<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
|
||||||
|
<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
|
||||||
|
<B>Constructor Detail</B></FONT></TH>
|
||||||
|
</TR>
|
||||||
|
</TABLE>
|
||||||
|
|
||||||
|
<A NAME="TJTransform()"><!-- --></A><H3>
|
||||||
|
TJTransform</H3>
|
||||||
|
<PRE>
|
||||||
|
public <B>TJTransform</B>()</PRE>
|
||||||
|
<DL>
|
||||||
|
<DD>Create a new lossless transform instance.
|
||||||
|
<P>
|
||||||
|
</DL>
|
||||||
|
<HR>
|
||||||
|
|
||||||
|
<A NAME="TJTransform(int, int, int, int, int, int, org.libjpegturbo.turbojpeg.TJCustomFilter)"><!-- --></A><H3>
|
||||||
|
TJTransform</H3>
|
||||||
|
<PRE>
|
||||||
|
public <B>TJTransform</B>(int x,
|
||||||
|
int y,
|
||||||
|
int w,
|
||||||
|
int h,
|
||||||
|
int op,
|
||||||
|
int options,
|
||||||
|
<A HREF="../../../org/libjpegturbo/turbojpeg/TJCustomFilter.html" title="interface in org.libjpegturbo.turbojpeg">TJCustomFilter</A> cf)
|
||||||
|
throws java.lang.Exception</PRE>
|
||||||
|
<DL>
|
||||||
|
<DD>Create a new lossless transform instance with the given parameters.
|
||||||
|
<P>
|
||||||
|
<DL>
|
||||||
|
<DT><B>Parameters:</B><DD><CODE>x</CODE> - the left boundary of the cropping region. This must be evenly
|
||||||
|
divisible by the MCU block width (see <A HREF="../../../org/libjpegturbo/turbojpeg/TJ.html#getMCUWidth(int)"><CODE>TJ.getMCUWidth(int)</CODE></A>)<DD><CODE>y</CODE> - the upper boundary of the cropping region. This must be evenly
|
||||||
|
divisible by the MCU block height (see <A HREF="../../../org/libjpegturbo/turbojpeg/TJ.html#getMCUHeight(int)"><CODE>TJ.getMCUHeight(int)</CODE></A>)<DD><CODE>w</CODE> - the width of the cropping region. Setting this to 0 is the
|
||||||
|
equivalent of setting it to the width of the source JPEG image - x.<DD><CODE>h</CODE> - the height of the cropping region. Setting this to 0 is the
|
||||||
|
equivalent of setting it to the height of the source JPEG image - y.<DD><CODE>op</CODE> - one of the transform operations (<code>OP_*</code>)<DD><CODE>options</CODE> - the bitwise OR of one or more of the transform options
|
||||||
|
(<code>OPT_*</code>)<DD><CODE>cf</CODE> - an instance of an object that implements the <A HREF="../../../org/libjpegturbo/turbojpeg/TJCustomFilter.html" title="interface in org.libjpegturbo.turbojpeg"><CODE>TJCustomFilter</CODE></A> interface, or null if no custom filter is needed
|
||||||
|
<DT><B>Throws:</B>
|
||||||
|
<DD><CODE>java.lang.Exception</CODE></DL>
|
||||||
|
</DL>
|
||||||
|
<HR>
|
||||||
|
|
||||||
|
<A NAME="TJTransform(java.awt.Rectangle, int, int, org.libjpegturbo.turbojpeg.TJCustomFilter)"><!-- --></A><H3>
|
||||||
|
TJTransform</H3>
|
||||||
|
<PRE>
|
||||||
|
public <B>TJTransform</B>(java.awt.Rectangle r,
|
||||||
|
int op,
|
||||||
|
int options,
|
||||||
|
<A HREF="../../../org/libjpegturbo/turbojpeg/TJCustomFilter.html" title="interface in org.libjpegturbo.turbojpeg">TJCustomFilter</A> cf)
|
||||||
|
throws java.lang.Exception</PRE>
|
||||||
|
<DL>
|
||||||
|
<DD>Create a new lossless transform instance with the given parameters.
|
||||||
|
<P>
|
||||||
|
<DL>
|
||||||
|
<DT><B>Parameters:</B><DD><CODE>r</CODE> - a <code>Rectangle</code> instance that specifies the cropping
|
||||||
|
region. See <A HREF="../../../org/libjpegturbo/turbojpeg/TJTransform.html#TJTransform(int, int, int, int, int, int, org.libjpegturbo.turbojpeg.TJCustomFilter)"><CODE>TJTransform(int, int, int, int, int, int, TJCustomFilter)</CODE></A> for more
|
||||||
|
detail.<DD><CODE>op</CODE> - one of the transform operations (<code>OP_*</code>)<DD><CODE>options</CODE> - the bitwise OR of one or more of the transform options
|
||||||
|
(<code>OPT_*</code>)<DD><CODE>cf</CODE> - an instance of an object that implements the <A HREF="../../../org/libjpegturbo/turbojpeg/TJCustomFilter.html" title="interface in org.libjpegturbo.turbojpeg"><CODE>TJCustomFilter</CODE></A> interface, or null if no custom filter is needed
|
||||||
|
<DT><B>Throws:</B>
|
||||||
|
<DD><CODE>java.lang.Exception</CODE></DL>
|
||||||
|
</DL>
|
||||||
|
<!-- ========= END OF CLASS DATA ========= -->
|
||||||
|
<HR>
|
||||||
|
|
||||||
|
|
||||||
|
<!-- ======= START OF BOTTOM NAVBAR ====== -->
|
||||||
|
<A NAME="navbar_bottom"><!-- --></A>
|
||||||
|
<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
|
||||||
|
<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
|
||||||
|
<TR>
|
||||||
|
<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
|
||||||
|
<A NAME="navbar_bottom_firstrow"><!-- --></A>
|
||||||
|
<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
|
||||||
|
<TR ALIGN="center" VALIGN="top">
|
||||||
|
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../org/libjpegturbo/turbojpeg/package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
|
||||||
|
<TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
|
||||||
|
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
|
||||||
|
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
|
||||||
|
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
|
||||||
|
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
|
||||||
|
</TR>
|
||||||
|
</TABLE>
|
||||||
|
</TD>
|
||||||
|
<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
|
||||||
|
</EM>
|
||||||
|
</TD>
|
||||||
|
</TR>
|
||||||
|
|
||||||
|
<TR>
|
||||||
|
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
|
||||||
|
<A HREF="../../../org/libjpegturbo/turbojpeg/TJScalingFactor.html" title="class in org.libjpegturbo.turbojpeg"><B>PREV CLASS</B></A>
|
||||||
|
<A HREF="../../../org/libjpegturbo/turbojpeg/TJTransformer.html" title="class in org.libjpegturbo.turbojpeg"><B>NEXT CLASS</B></A></FONT></TD>
|
||||||
|
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
|
||||||
|
<A HREF="../../../index.html?org/libjpegturbo/turbojpeg/TJTransform.html" target="_top"><B>FRAMES</B></A>
|
||||||
|
<A HREF="TJTransform.html" target="_top"><B>NO FRAMES</B></A>
|
||||||
|
<SCRIPT type="text/javascript">
|
||||||
|
<!--
|
||||||
|
if(window==top) {
|
||||||
|
document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');
|
||||||
|
}
|
||||||
|
//-->
|
||||||
|
</SCRIPT>
|
||||||
|
<NOSCRIPT>
|
||||||
|
<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>
|
||||||
|
</NOSCRIPT>
|
||||||
|
|
||||||
|
|
||||||
|
</FONT></TD>
|
||||||
|
</TR>
|
||||||
|
<TR>
|
||||||
|
<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
|
||||||
|
SUMMARY: <A HREF="#nested_classes_inherited_from_class_java.awt.geom.Rectangle2D">NESTED</A> | <A HREF="#field_summary">FIELD</A> | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#methods_inherited_from_class_java.awt.Rectangle">METHOD</A></FONT></TD>
|
||||||
|
<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
|
||||||
|
DETAIL: <A HREF="#field_detail">FIELD</A> | <A HREF="#constructor_detail">CONSTR</A> | METHOD</FONT></TD>
|
||||||
|
</TR>
|
||||||
|
</TABLE>
|
||||||
|
<A NAME="skip-navbar_bottom"></A>
|
||||||
|
<!-- ======== END OF BOTTOM NAVBAR ======= -->
|
||||||
|
|
||||||
|
<HR>
|
||||||
|
|
||||||
|
</BODY>
|
||||||
|
</HTML>
|
||||||
427
java/doc/org/libjpegturbo/turbojpeg/TJTransformer.html
Normal file
@@ -0,0 +1,427 @@
|
|||||||
|
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
|
||||||
|
<!--NewPage-->
|
||||||
|
<HTML>
|
||||||
|
<HEAD>
|
||||||
|
<!-- Generated by javadoc (build 1.6.0_33) on Fri Jun 29 14:29:13 CDT 2012 -->
|
||||||
|
<TITLE>
|
||||||
|
TJTransformer
|
||||||
|
</TITLE>
|
||||||
|
|
||||||
|
<META NAME="date" CONTENT="2012-06-29">
|
||||||
|
|
||||||
|
<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../stylesheet.css" TITLE="Style">
|
||||||
|
|
||||||
|
<SCRIPT type="text/javascript">
|
||||||
|
function windowTitle()
|
||||||
|
{
|
||||||
|
if (location.href.indexOf('is-external=true') == -1) {
|
||||||
|
parent.document.title="TJTransformer";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</SCRIPT>
|
||||||
|
<NOSCRIPT>
|
||||||
|
</NOSCRIPT>
|
||||||
|
|
||||||
|
</HEAD>
|
||||||
|
|
||||||
|
<BODY BGCOLOR="white" onload="windowTitle();">
|
||||||
|
<HR>
|
||||||
|
|
||||||
|
|
||||||
|
<!-- ========= START OF TOP NAVBAR ======= -->
|
||||||
|
<A NAME="navbar_top"><!-- --></A>
|
||||||
|
<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
|
||||||
|
<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
|
||||||
|
<TR>
|
||||||
|
<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
|
||||||
|
<A NAME="navbar_top_firstrow"><!-- --></A>
|
||||||
|
<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
|
||||||
|
<TR ALIGN="center" VALIGN="top">
|
||||||
|
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../org/libjpegturbo/turbojpeg/package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
|
||||||
|
<TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
|
||||||
|
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
|
||||||
|
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
|
||||||
|
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
|
||||||
|
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
|
||||||
|
</TR>
|
||||||
|
</TABLE>
|
||||||
|
</TD>
|
||||||
|
<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
|
||||||
|
</EM>
|
||||||
|
</TD>
|
||||||
|
</TR>
|
||||||
|
|
||||||
|
<TR>
|
||||||
|
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
|
||||||
|
<A HREF="../../../org/libjpegturbo/turbojpeg/TJTransform.html" title="class in org.libjpegturbo.turbojpeg"><B>PREV CLASS</B></A>
|
||||||
|
NEXT CLASS</FONT></TD>
|
||||||
|
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
|
||||||
|
<A HREF="../../../index.html?org/libjpegturbo/turbojpeg/TJTransformer.html" target="_top"><B>FRAMES</B></A>
|
||||||
|
<A HREF="TJTransformer.html" target="_top"><B>NO FRAMES</B></A>
|
||||||
|
<SCRIPT type="text/javascript">
|
||||||
|
<!--
|
||||||
|
if(window==top) {
|
||||||
|
document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');
|
||||||
|
}
|
||||||
|
//-->
|
||||||
|
</SCRIPT>
|
||||||
|
<NOSCRIPT>
|
||||||
|
<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>
|
||||||
|
</NOSCRIPT>
|
||||||
|
|
||||||
|
|
||||||
|
</FONT></TD>
|
||||||
|
</TR>
|
||||||
|
<TR>
|
||||||
|
<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
|
||||||
|
SUMMARY: NESTED | <A HREF="#fields_inherited_from_class_org.libjpegturbo.turbojpeg.TJDecompressor">FIELD</A> | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
|
||||||
|
<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
|
||||||
|
DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
|
||||||
|
</TR>
|
||||||
|
</TABLE>
|
||||||
|
<A NAME="skip-navbar_top"></A>
|
||||||
|
<!-- ========= END OF TOP NAVBAR ========= -->
|
||||||
|
|
||||||
|
<HR>
|
||||||
|
<!-- ======== START OF CLASS DATA ======== -->
|
||||||
|
<H2>
|
||||||
|
<FONT SIZE="-1">
|
||||||
|
org.libjpegturbo.turbojpeg</FONT>
|
||||||
|
<BR>
|
||||||
|
Class TJTransformer</H2>
|
||||||
|
<PRE>
|
||||||
|
java.lang.Object
|
||||||
|
<IMG SRC="../../../resources/inherit.gif" ALT="extended by "><A HREF="../../../org/libjpegturbo/turbojpeg/TJDecompressor.html" title="class in org.libjpegturbo.turbojpeg">org.libjpegturbo.turbojpeg.TJDecompressor</A>
|
||||||
|
<IMG SRC="../../../resources/inherit.gif" ALT="extended by "><B>org.libjpegturbo.turbojpeg.TJTransformer</B>
|
||||||
|
</PRE>
|
||||||
|
<HR>
|
||||||
|
<DL>
|
||||||
|
<DT><PRE>public class <B>TJTransformer</B><DT>extends <A HREF="../../../org/libjpegturbo/turbojpeg/TJDecompressor.html" title="class in org.libjpegturbo.turbojpeg">TJDecompressor</A></DL>
|
||||||
|
</PRE>
|
||||||
|
|
||||||
|
<P>
|
||||||
|
TurboJPEG lossless transformer
|
||||||
|
<P>
|
||||||
|
|
||||||
|
<P>
|
||||||
|
<HR>
|
||||||
|
|
||||||
|
<P>
|
||||||
|
<!-- =========== FIELD SUMMARY =========== -->
|
||||||
|
|
||||||
|
<A NAME="field_summary"><!-- --></A>
|
||||||
|
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
|
||||||
|
<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
|
||||||
|
<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
|
||||||
|
<B>Field Summary</B></FONT></TH>
|
||||||
|
</TR>
|
||||||
|
</TABLE>
|
||||||
|
<A NAME="fields_inherited_from_class_org.libjpegturbo.turbojpeg.TJDecompressor"><!-- --></A>
|
||||||
|
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
|
||||||
|
<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
|
||||||
|
<TH ALIGN="left"><B>Fields inherited from class org.libjpegturbo.turbojpeg.<A HREF="../../../org/libjpegturbo/turbojpeg/TJDecompressor.html" title="class in org.libjpegturbo.turbojpeg">TJDecompressor</A></B></TH>
|
||||||
|
</TR>
|
||||||
|
<TR BGCOLOR="white" CLASS="TableRowColor">
|
||||||
|
<TD><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#jpegHeight">jpegHeight</A>, <A HREF="../../../org/libjpegturbo/turbojpeg/TJDecompressor.html#jpegSubsamp">jpegSubsamp</A>, <A HREF="../../../org/libjpegturbo/turbojpeg/TJDecompressor.html#jpegWidth">jpegWidth</A></CODE></TD>
|
||||||
|
</TR>
|
||||||
|
</TABLE>
|
||||||
|
|
||||||
|
<!-- ======== CONSTRUCTOR SUMMARY ======== -->
|
||||||
|
|
||||||
|
<A NAME="constructor_summary"><!-- --></A>
|
||||||
|
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
|
||||||
|
<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
|
||||||
|
<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
|
||||||
|
<B>Constructor Summary</B></FONT></TH>
|
||||||
|
</TR>
|
||||||
|
<TR BGCOLOR="white" CLASS="TableRowColor">
|
||||||
|
<TD><CODE><B><A HREF="../../../org/libjpegturbo/turbojpeg/TJTransformer.html#TJTransformer()">TJTransformer</A></B>()</CODE>
|
||||||
|
|
||||||
|
<BR>
|
||||||
|
Create a TurboJPEG lossless transformer instance.</TD>
|
||||||
|
</TR>
|
||||||
|
<TR BGCOLOR="white" CLASS="TableRowColor">
|
||||||
|
<TD><CODE><B><A HREF="../../../org/libjpegturbo/turbojpeg/TJTransformer.html#TJTransformer(byte[])">TJTransformer</A></B>(byte[] jpegImage)</CODE>
|
||||||
|
|
||||||
|
<BR>
|
||||||
|
Create a TurboJPEG lossless transformer instance and associate the JPEG
|
||||||
|
image stored in <code>jpegImage</code> with the newly-created instance.</TD>
|
||||||
|
</TR>
|
||||||
|
<TR BGCOLOR="white" CLASS="TableRowColor">
|
||||||
|
<TD><CODE><B><A HREF="../../../org/libjpegturbo/turbojpeg/TJTransformer.html#TJTransformer(byte[], int)">TJTransformer</A></B>(byte[] jpegImage,
|
||||||
|
int imageSize)</CODE>
|
||||||
|
|
||||||
|
<BR>
|
||||||
|
Create a TurboJPEG lossless transformer instance and associate the JPEG
|
||||||
|
image of length <code>imageSize</code> bytes stored in
|
||||||
|
<code>jpegImage</code> with the newly-created instance.</TD>
|
||||||
|
</TR>
|
||||||
|
</TABLE>
|
||||||
|
|
||||||
|
<!-- ========== METHOD SUMMARY =========== -->
|
||||||
|
|
||||||
|
<A NAME="method_summary"><!-- --></A>
|
||||||
|
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
|
||||||
|
<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
|
||||||
|
<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
|
||||||
|
<B>Method Summary</B></FONT></TH>
|
||||||
|
</TR>
|
||||||
|
<TR BGCOLOR="white" CLASS="TableRowColor">
|
||||||
|
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
|
||||||
|
<CODE> int[]</CODE></FONT></TD>
|
||||||
|
<TD><CODE><B><A HREF="../../../org/libjpegturbo/turbojpeg/TJTransformer.html#getTransformedSizes()">getTransformedSizes</A></B>()</CODE>
|
||||||
|
|
||||||
|
<BR>
|
||||||
|
Returns an array containing the sizes of the transformed JPEG images from
|
||||||
|
the most recent call to <A HREF="../../../org/libjpegturbo/turbojpeg/TJTransformer.html#transform(byte[][], org.libjpegturbo.turbojpeg.TJTransform[], int)"><CODE>transform()</CODE></A>.</TD>
|
||||||
|
</TR>
|
||||||
|
<TR BGCOLOR="white" CLASS="TableRowColor">
|
||||||
|
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
|
||||||
|
<CODE> void</CODE></FONT></TD>
|
||||||
|
<TD><CODE><B><A HREF="../../../org/libjpegturbo/turbojpeg/TJTransformer.html#transform(byte[][], org.libjpegturbo.turbojpeg.TJTransform[], int)">transform</A></B>(byte[][] dstBufs,
|
||||||
|
<A HREF="../../../org/libjpegturbo/turbojpeg/TJTransform.html" title="class in org.libjpegturbo.turbojpeg">TJTransform</A>[] transforms,
|
||||||
|
int flags)</CODE>
|
||||||
|
|
||||||
|
<BR>
|
||||||
|
Losslessly transform the JPEG image associated with this transformer
|
||||||
|
instance into one or more JPEG images stored in the given destination
|
||||||
|
buffers.</TD>
|
||||||
|
</TR>
|
||||||
|
<TR BGCOLOR="white" CLASS="TableRowColor">
|
||||||
|
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
|
||||||
|
<CODE> <A HREF="../../../org/libjpegturbo/turbojpeg/TJDecompressor.html" title="class in org.libjpegturbo.turbojpeg">TJDecompressor</A>[]</CODE></FONT></TD>
|
||||||
|
<TD><CODE><B><A HREF="../../../org/libjpegturbo/turbojpeg/TJTransformer.html#transform(org.libjpegturbo.turbojpeg.TJTransform[], int)">transform</A></B>(<A HREF="../../../org/libjpegturbo/turbojpeg/TJTransform.html" title="class in org.libjpegturbo.turbojpeg">TJTransform</A>[] transforms,
|
||||||
|
int flags)</CODE>
|
||||||
|
|
||||||
|
<BR>
|
||||||
|
Losslessly transform the JPEG 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> instances, each of
|
||||||
|
which has a transformed JPEG image associated with it.</TD>
|
||||||
|
</TR>
|
||||||
|
</TABLE>
|
||||||
|
<A NAME="methods_inherited_from_class_org.libjpegturbo.turbojpeg.TJDecompressor"><!-- --></A>
|
||||||
|
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
|
||||||
|
<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
|
||||||
|
<TH ALIGN="left"><B>Methods inherited from class org.libjpegturbo.turbojpeg.<A HREF="../../../org/libjpegturbo/turbojpeg/TJDecompressor.html" title="class in org.libjpegturbo.turbojpeg">TJDecompressor</A></B></TH>
|
||||||
|
</TR>
|
||||||
|
<TR BGCOLOR="white" CLASS="TableRowColor">
|
||||||
|
<TD><CODE><A HREF="../../../org/libjpegturbo/turbojpeg/TJDecompressor.html#close()">close</A>, <A HREF="../../../org/libjpegturbo/turbojpeg/TJDecompressor.html#decompress(java.awt.image.BufferedImage, int)">decompress</A>, <A HREF="../../../org/libjpegturbo/turbojpeg/TJDecompressor.html#decompress(byte[], int, int, int, int, int)">decompress</A>, <A HREF="../../../org/libjpegturbo/turbojpeg/TJDecompressor.html#decompress(int, int, int, int)">decompress</A>, <A HREF="../../../org/libjpegturbo/turbojpeg/TJDecompressor.html#decompress(int, int, int, int, int)">decompress</A>, <A HREF="../../../org/libjpegturbo/turbojpeg/TJDecompressor.html#decompressToYUV(byte[], int)">decompressToYUV</A>, <A HREF="../../../org/libjpegturbo/turbojpeg/TJDecompressor.html#decompressToYUV(int)">decompressToYUV</A>, <A HREF="../../../org/libjpegturbo/turbojpeg/TJDecompressor.html#finalize()">finalize</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, int)">getScaledHeight</A>, <A HREF="../../../org/libjpegturbo/turbojpeg/TJDecompressor.html#getScaledWidth(int, int)">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[], int)">setJPEGImage</A></CODE></TD>
|
||||||
|
</TR>
|
||||||
|
</TABLE>
|
||||||
|
<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
|
||||||
|
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
|
||||||
|
<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
|
||||||
|
<TH ALIGN="left"><B>Methods inherited from class java.lang.Object</B></TH>
|
||||||
|
</TR>
|
||||||
|
<TR BGCOLOR="white" CLASS="TableRowColor">
|
||||||
|
<TD><CODE>clone, equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</CODE></TD>
|
||||||
|
</TR>
|
||||||
|
</TABLE>
|
||||||
|
|
||||||
|
<P>
|
||||||
|
|
||||||
|
<!-- ========= CONSTRUCTOR DETAIL ======== -->
|
||||||
|
|
||||||
|
<A NAME="constructor_detail"><!-- --></A>
|
||||||
|
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
|
||||||
|
<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
|
||||||
|
<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
|
||||||
|
<B>Constructor Detail</B></FONT></TH>
|
||||||
|
</TR>
|
||||||
|
</TABLE>
|
||||||
|
|
||||||
|
<A NAME="TJTransformer()"><!-- --></A><H3>
|
||||||
|
TJTransformer</H3>
|
||||||
|
<PRE>
|
||||||
|
public <B>TJTransformer</B>()
|
||||||
|
throws java.lang.Exception</PRE>
|
||||||
|
<DL>
|
||||||
|
<DD>Create a TurboJPEG lossless transformer instance.
|
||||||
|
<P>
|
||||||
|
<DL>
|
||||||
|
|
||||||
|
<DT><B>Throws:</B>
|
||||||
|
<DD><CODE>java.lang.Exception</CODE></DL>
|
||||||
|
</DL>
|
||||||
|
<HR>
|
||||||
|
|
||||||
|
<A NAME="TJTransformer(byte[])"><!-- --></A><H3>
|
||||||
|
TJTransformer</H3>
|
||||||
|
<PRE>
|
||||||
|
public <B>TJTransformer</B>(byte[] jpegImage)
|
||||||
|
throws java.lang.Exception</PRE>
|
||||||
|
<DL>
|
||||||
|
<DD>Create a TurboJPEG lossless transformer instance and associate the JPEG
|
||||||
|
image stored in <code>jpegImage</code> with the newly-created instance.
|
||||||
|
<P>
|
||||||
|
<DL>
|
||||||
|
<DT><B>Parameters:</B><DD><CODE>jpegImage</CODE> - JPEG image buffer (size of the JPEG image is assumed to
|
||||||
|
be the length of the array)
|
||||||
|
<DT><B>Throws:</B>
|
||||||
|
<DD><CODE>java.lang.Exception</CODE></DL>
|
||||||
|
</DL>
|
||||||
|
<HR>
|
||||||
|
|
||||||
|
<A NAME="TJTransformer(byte[], int)"><!-- --></A><H3>
|
||||||
|
TJTransformer</H3>
|
||||||
|
<PRE>
|
||||||
|
public <B>TJTransformer</B>(byte[] jpegImage,
|
||||||
|
int imageSize)
|
||||||
|
throws java.lang.Exception</PRE>
|
||||||
|
<DL>
|
||||||
|
<DD>Create a TurboJPEG lossless transformer instance and associate the JPEG
|
||||||
|
image of length <code>imageSize</code> bytes stored in
|
||||||
|
<code>jpegImage</code> with the newly-created instance.
|
||||||
|
<P>
|
||||||
|
<DL>
|
||||||
|
<DT><B>Parameters:</B><DD><CODE>jpegImage</CODE> - JPEG image buffer<DD><CODE>imageSize</CODE> - size of the JPEG image (in bytes)
|
||||||
|
<DT><B>Throws:</B>
|
||||||
|
<DD><CODE>java.lang.Exception</CODE></DL>
|
||||||
|
</DL>
|
||||||
|
|
||||||
|
<!-- ============ METHOD DETAIL ========== -->
|
||||||
|
|
||||||
|
<A NAME="method_detail"><!-- --></A>
|
||||||
|
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
|
||||||
|
<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
|
||||||
|
<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
|
||||||
|
<B>Method Detail</B></FONT></TH>
|
||||||
|
</TR>
|
||||||
|
</TABLE>
|
||||||
|
|
||||||
|
<A NAME="transform(byte[][], org.libjpegturbo.turbojpeg.TJTransform[], int)"><!-- --></A><H3>
|
||||||
|
transform</H3>
|
||||||
|
<PRE>
|
||||||
|
public void <B>transform</B>(byte[][] dstBufs,
|
||||||
|
<A HREF="../../../org/libjpegturbo/turbojpeg/TJTransform.html" title="class in org.libjpegturbo.turbojpeg">TJTransform</A>[] transforms,
|
||||||
|
int flags)
|
||||||
|
throws java.lang.Exception</PRE>
|
||||||
|
<DL>
|
||||||
|
<DD>Losslessly transform the JPEG image associated with this transformer
|
||||||
|
instance into one or more JPEG images stored in the given destination
|
||||||
|
buffers. Lossless transforms work by moving the raw coefficients from one
|
||||||
|
JPEG image structure to another without altering the values of the
|
||||||
|
coefficients. While this is typically faster than decompressing the
|
||||||
|
image, transforming it, and re-compressing it, lossless transforms are not
|
||||||
|
free. Each lossless transform requires reading and Huffman decoding all
|
||||||
|
of the coefficients in the source image, regardless of the size of the
|
||||||
|
destination image. Thus, this method provides a means of generating
|
||||||
|
multiple transformed images from the same source or of applying multiple
|
||||||
|
transformations simultaneously, in order to eliminate the need to read the
|
||||||
|
source coefficients multiple times.
|
||||||
|
<P>
|
||||||
|
<DD><DL>
|
||||||
|
<DT><B>Parameters:</B><DD><CODE>dstBufs</CODE> - an array of image buffers. <code>dstbufs[i]</code> will
|
||||||
|
receive a JPEG image that has been transformed using the parameters in
|
||||||
|
<code>transforms[i]</code>. Use <A HREF="../../../org/libjpegturbo/turbojpeg/TJ.html#bufSize(int, int, int)"><CODE>TJ.bufSize(int, int, int)</CODE></A> to determine the
|
||||||
|
maximum size for each buffer based on the cropped width and height.<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
|
||||||
|
which specifies the transform parameters and/or cropping region for the
|
||||||
|
corresponding transformed output image<DD><CODE>flags</CODE> - the bitwise OR of one or more of <A HREF="../../../org/libjpegturbo/turbojpeg/TJ.html" title="class in org.libjpegturbo.turbojpeg"><CODE>TJ.FLAG_*</CODE></A>
|
||||||
|
<DT><B>Throws:</B>
|
||||||
|
<DD><CODE>java.lang.Exception</CODE></DL>
|
||||||
|
</DD>
|
||||||
|
</DL>
|
||||||
|
<HR>
|
||||||
|
|
||||||
|
<A NAME="transform(org.libjpegturbo.turbojpeg.TJTransform[], int)"><!-- --></A><H3>
|
||||||
|
transform</H3>
|
||||||
|
<PRE>
|
||||||
|
public <A HREF="../../../org/libjpegturbo/turbojpeg/TJDecompressor.html" title="class in org.libjpegturbo.turbojpeg">TJDecompressor</A>[] <B>transform</B>(<A HREF="../../../org/libjpegturbo/turbojpeg/TJTransform.html" title="class in org.libjpegturbo.turbojpeg">TJTransform</A>[] transforms,
|
||||||
|
int flags)
|
||||||
|
throws java.lang.Exception</PRE>
|
||||||
|
<DL>
|
||||||
|
<DD>Losslessly transform the JPEG 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> instances, each of
|
||||||
|
which has a transformed JPEG image associated with it.
|
||||||
|
<P>
|
||||||
|
<DD><DL>
|
||||||
|
<DT><B>Parameters:</B><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
|
||||||
|
which specifies the transform parameters and/or cropping region for the
|
||||||
|
corresponding transformed output image<DD><CODE>flags</CODE> - the bitwise OR of one or more of <A HREF="../../../org/libjpegturbo/turbojpeg/TJ.html" title="class in org.libjpegturbo.turbojpeg"><CODE>TJ.FLAG_*</CODE></A>
|
||||||
|
<DT><B>Returns:</B><DD>an array of <A HREF="../../../org/libjpegturbo/turbojpeg/TJDecompressor.html" title="class in org.libjpegturbo.turbojpeg"><CODE>TJDecompressor</CODE></A> instances, each of
|
||||||
|
which has a transformed JPEG image associated with it
|
||||||
|
<DT><B>Throws:</B>
|
||||||
|
<DD><CODE>java.lang.Exception</CODE></DL>
|
||||||
|
</DD>
|
||||||
|
</DL>
|
||||||
|
<HR>
|
||||||
|
|
||||||
|
<A NAME="getTransformedSizes()"><!-- --></A><H3>
|
||||||
|
getTransformedSizes</H3>
|
||||||
|
<PRE>
|
||||||
|
public int[] <B>getTransformedSizes</B>()
|
||||||
|
throws java.lang.Exception</PRE>
|
||||||
|
<DL>
|
||||||
|
<DD>Returns an array containing the sizes of the transformed JPEG images from
|
||||||
|
the most recent call to <A HREF="../../../org/libjpegturbo/turbojpeg/TJTransformer.html#transform(byte[][], org.libjpegturbo.turbojpeg.TJTransform[], int)"><CODE>transform()</CODE></A>.
|
||||||
|
<P>
|
||||||
|
<DD><DL>
|
||||||
|
|
||||||
|
<DT><B>Returns:</B><DD>an array containing the sizes of the transformed JPEG images from
|
||||||
|
the most recent call to <A HREF="../../../org/libjpegturbo/turbojpeg/TJTransformer.html#transform(byte[][], org.libjpegturbo.turbojpeg.TJTransform[], int)"><CODE>transform()</CODE></A>
|
||||||
|
<DT><B>Throws:</B>
|
||||||
|
<DD><CODE>java.lang.Exception</CODE></DL>
|
||||||
|
</DD>
|
||||||
|
</DL>
|
||||||
|
<!-- ========= END OF CLASS DATA ========= -->
|
||||||
|
<HR>
|
||||||
|
|
||||||
|
|
||||||
|
<!-- ======= START OF BOTTOM NAVBAR ====== -->
|
||||||
|
<A NAME="navbar_bottom"><!-- --></A>
|
||||||
|
<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
|
||||||
|
<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
|
||||||
|
<TR>
|
||||||
|
<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
|
||||||
|
<A NAME="navbar_bottom_firstrow"><!-- --></A>
|
||||||
|
<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
|
||||||
|
<TR ALIGN="center" VALIGN="top">
|
||||||
|
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../org/libjpegturbo/turbojpeg/package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
|
||||||
|
<TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
|
||||||
|
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
|
||||||
|
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
|
||||||
|
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
|
||||||
|
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
|
||||||
|
</TR>
|
||||||
|
</TABLE>
|
||||||
|
</TD>
|
||||||
|
<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
|
||||||
|
</EM>
|
||||||
|
</TD>
|
||||||
|
</TR>
|
||||||
|
|
||||||
|
<TR>
|
||||||
|
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
|
||||||
|
<A HREF="../../../org/libjpegturbo/turbojpeg/TJTransform.html" title="class in org.libjpegturbo.turbojpeg"><B>PREV CLASS</B></A>
|
||||||
|
NEXT CLASS</FONT></TD>
|
||||||
|
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
|
||||||
|
<A HREF="../../../index.html?org/libjpegturbo/turbojpeg/TJTransformer.html" target="_top"><B>FRAMES</B></A>
|
||||||
|
<A HREF="TJTransformer.html" target="_top"><B>NO FRAMES</B></A>
|
||||||
|
<SCRIPT type="text/javascript">
|
||||||
|
<!--
|
||||||
|
if(window==top) {
|
||||||
|
document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');
|
||||||
|
}
|
||||||
|
//-->
|
||||||
|
</SCRIPT>
|
||||||
|
<NOSCRIPT>
|
||||||
|
<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>
|
||||||
|
</NOSCRIPT>
|
||||||
|
|
||||||
|
|
||||||
|
</FONT></TD>
|
||||||
|
</TR>
|
||||||
|
<TR>
|
||||||
|
<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
|
||||||
|
SUMMARY: NESTED | <A HREF="#fields_inherited_from_class_org.libjpegturbo.turbojpeg.TJDecompressor">FIELD</A> | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
|
||||||
|
<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
|
||||||
|
DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
|
||||||
|
</TR>
|
||||||
|
</TABLE>
|
||||||
|
<A NAME="skip-navbar_bottom"></A>
|
||||||
|
<!-- ======== END OF BOTTOM NAVBAR ======= -->
|
||||||
|
|
||||||
|
<HR>
|
||||||
|
|
||||||
|
</BODY>
|
||||||
|
</HTML>
|
||||||
53
java/doc/org/libjpegturbo/turbojpeg/package-frame.html
Normal file
@@ -0,0 +1,53 @@
|
|||||||
|
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
|
||||||
|
<!--NewPage-->
|
||||||
|
<HTML>
|
||||||
|
<HEAD>
|
||||||
|
<!-- Generated by javadoc (build 1.6.0_33) on Fri Jun 29 14:29:13 CDT 2012 -->
|
||||||
|
<TITLE>
|
||||||
|
org.libjpegturbo.turbojpeg
|
||||||
|
</TITLE>
|
||||||
|
|
||||||
|
<META NAME="date" CONTENT="2012-06-29">
|
||||||
|
|
||||||
|
<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../stylesheet.css" TITLE="Style">
|
||||||
|
|
||||||
|
|
||||||
|
</HEAD>
|
||||||
|
|
||||||
|
<BODY BGCOLOR="white">
|
||||||
|
<FONT size="+1" CLASS="FrameTitleFont">
|
||||||
|
<A HREF="../../../org/libjpegturbo/turbojpeg/package-summary.html" target="classFrame">org.libjpegturbo.turbojpeg</A></FONT>
|
||||||
|
<TABLE BORDER="0" WIDTH="100%" SUMMARY="">
|
||||||
|
<TR>
|
||||||
|
<TD NOWRAP><FONT size="+1" CLASS="FrameHeadingFont">
|
||||||
|
Interfaces</FONT>
|
||||||
|
<FONT CLASS="FrameItemFont">
|
||||||
|
<BR>
|
||||||
|
<A HREF="TJCustomFilter.html" title="interface in org.libjpegturbo.turbojpeg" target="classFrame"><I>TJCustomFilter</I></A></FONT></TD>
|
||||||
|
</TR>
|
||||||
|
</TABLE>
|
||||||
|
|
||||||
|
|
||||||
|
<TABLE BORDER="0" WIDTH="100%" SUMMARY="">
|
||||||
|
<TR>
|
||||||
|
<TD NOWRAP><FONT size="+1" CLASS="FrameHeadingFont">
|
||||||
|
Classes</FONT>
|
||||||
|
<FONT CLASS="FrameItemFont">
|
||||||
|
<BR>
|
||||||
|
<A HREF="TJ.html" title="class in org.libjpegturbo.turbojpeg" target="classFrame">TJ</A>
|
||||||
|
<BR>
|
||||||
|
<A HREF="TJCompressor.html" title="class in org.libjpegturbo.turbojpeg" target="classFrame">TJCompressor</A>
|
||||||
|
<BR>
|
||||||
|
<A HREF="TJDecompressor.html" title="class in org.libjpegturbo.turbojpeg" target="classFrame">TJDecompressor</A>
|
||||||
|
<BR>
|
||||||
|
<A HREF="TJScalingFactor.html" title="class in org.libjpegturbo.turbojpeg" target="classFrame">TJScalingFactor</A>
|
||||||
|
<BR>
|
||||||
|
<A HREF="TJTransform.html" title="class in org.libjpegturbo.turbojpeg" target="classFrame">TJTransform</A>
|
||||||
|
<BR>
|
||||||
|
<A HREF="TJTransformer.html" title="class in org.libjpegturbo.turbojpeg" target="classFrame">TJTransformer</A></FONT></TD>
|
||||||
|
</TR>
|
||||||
|
</TABLE>
|
||||||
|
|
||||||
|
|
||||||
|
</BODY>
|
||||||
|
</HTML>
|
||||||
187
java/doc/org/libjpegturbo/turbojpeg/package-summary.html
Normal file
@@ -0,0 +1,187 @@
|
|||||||
|
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
|
||||||
|
<!--NewPage-->
|
||||||
|
<HTML>
|
||||||
|
<HEAD>
|
||||||
|
<!-- Generated by javadoc (build 1.6.0_33) on Fri Jun 29 14:29:13 CDT 2012 -->
|
||||||
|
<TITLE>
|
||||||
|
org.libjpegturbo.turbojpeg
|
||||||
|
</TITLE>
|
||||||
|
|
||||||
|
<META NAME="date" CONTENT="2012-06-29">
|
||||||
|
|
||||||
|
<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../stylesheet.css" TITLE="Style">
|
||||||
|
|
||||||
|
<SCRIPT type="text/javascript">
|
||||||
|
function windowTitle()
|
||||||
|
{
|
||||||
|
if (location.href.indexOf('is-external=true') == -1) {
|
||||||
|
parent.document.title="org.libjpegturbo.turbojpeg";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</SCRIPT>
|
||||||
|
<NOSCRIPT>
|
||||||
|
</NOSCRIPT>
|
||||||
|
|
||||||
|
</HEAD>
|
||||||
|
|
||||||
|
<BODY BGCOLOR="white" onload="windowTitle();">
|
||||||
|
<HR>
|
||||||
|
|
||||||
|
|
||||||
|
<!-- ========= START OF TOP NAVBAR ======= -->
|
||||||
|
<A NAME="navbar_top"><!-- --></A>
|
||||||
|
<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
|
||||||
|
<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
|
||||||
|
<TR>
|
||||||
|
<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
|
||||||
|
<A NAME="navbar_top_firstrow"><!-- --></A>
|
||||||
|
<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
|
||||||
|
<TR ALIGN="center" VALIGN="top">
|
||||||
|
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../org/libjpegturbo/turbojpeg/package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
|
||||||
|
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <FONT CLASS="NavBarFont1">Class</FONT> </TD>
|
||||||
|
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
|
||||||
|
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
|
||||||
|
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
|
||||||
|
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
|
||||||
|
</TR>
|
||||||
|
</TABLE>
|
||||||
|
</TD>
|
||||||
|
<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
|
||||||
|
</EM>
|
||||||
|
</TD>
|
||||||
|
</TR>
|
||||||
|
|
||||||
|
<TR>
|
||||||
|
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
|
||||||
|
PREV PACKAGE
|
||||||
|
NEXT PACKAGE</FONT></TD>
|
||||||
|
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
|
||||||
|
<A HREF="../../../index.html?org/libjpegturbo/turbojpeg/package-summary.html" target="_top"><B>FRAMES</B></A>
|
||||||
|
<A HREF="package-summary.html" target="_top"><B>NO FRAMES</B></A>
|
||||||
|
<SCRIPT type="text/javascript">
|
||||||
|
<!--
|
||||||
|
if(window==top) {
|
||||||
|
document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');
|
||||||
|
}
|
||||||
|
//-->
|
||||||
|
</SCRIPT>
|
||||||
|
<NOSCRIPT>
|
||||||
|
<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>
|
||||||
|
</NOSCRIPT>
|
||||||
|
|
||||||
|
|
||||||
|
</FONT></TD>
|
||||||
|
</TR>
|
||||||
|
</TABLE>
|
||||||
|
<A NAME="skip-navbar_top"></A>
|
||||||
|
<!-- ========= END OF TOP NAVBAR ========= -->
|
||||||
|
|
||||||
|
<HR>
|
||||||
|
<H2>
|
||||||
|
Package org.libjpegturbo.turbojpeg
|
||||||
|
</H2>
|
||||||
|
|
||||||
|
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
|
||||||
|
<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
|
||||||
|
<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
|
||||||
|
<B>Interface Summary</B></FONT></TH>
|
||||||
|
</TR>
|
||||||
|
<TR BGCOLOR="white" CLASS="TableRowColor">
|
||||||
|
<TD WIDTH="15%"><B><A HREF="../../../org/libjpegturbo/turbojpeg/TJCustomFilter.html" title="interface in org.libjpegturbo.turbojpeg">TJCustomFilter</A></B></TD>
|
||||||
|
<TD>Custom filter callback interface</TD>
|
||||||
|
</TR>
|
||||||
|
</TABLE>
|
||||||
|
|
||||||
|
|
||||||
|
<P>
|
||||||
|
|
||||||
|
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
|
||||||
|
<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
|
||||||
|
<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
|
||||||
|
<B>Class Summary</B></FONT></TH>
|
||||||
|
</TR>
|
||||||
|
<TR BGCOLOR="white" CLASS="TableRowColor">
|
||||||
|
<TD WIDTH="15%"><B><A HREF="../../../org/libjpegturbo/turbojpeg/TJ.html" title="class in org.libjpegturbo.turbojpeg">TJ</A></B></TD>
|
||||||
|
<TD>TurboJPEG utility class (cannot be instantiated)</TD>
|
||||||
|
</TR>
|
||||||
|
<TR BGCOLOR="white" CLASS="TableRowColor">
|
||||||
|
<TD WIDTH="15%"><B><A HREF="../../../org/libjpegturbo/turbojpeg/TJCompressor.html" title="class in org.libjpegturbo.turbojpeg">TJCompressor</A></B></TD>
|
||||||
|
<TD>TurboJPEG compressor</TD>
|
||||||
|
</TR>
|
||||||
|
<TR BGCOLOR="white" CLASS="TableRowColor">
|
||||||
|
<TD WIDTH="15%"><B><A HREF="../../../org/libjpegturbo/turbojpeg/TJDecompressor.html" title="class in org.libjpegturbo.turbojpeg">TJDecompressor</A></B></TD>
|
||||||
|
<TD>TurboJPEG decompressor</TD>
|
||||||
|
</TR>
|
||||||
|
<TR BGCOLOR="white" CLASS="TableRowColor">
|
||||||
|
<TD WIDTH="15%"><B><A HREF="../../../org/libjpegturbo/turbojpeg/TJScalingFactor.html" title="class in org.libjpegturbo.turbojpeg">TJScalingFactor</A></B></TD>
|
||||||
|
<TD>Fractional scaling factor</TD>
|
||||||
|
</TR>
|
||||||
|
<TR BGCOLOR="white" CLASS="TableRowColor">
|
||||||
|
<TD WIDTH="15%"><B><A HREF="../../../org/libjpegturbo/turbojpeg/TJTransform.html" title="class in org.libjpegturbo.turbojpeg">TJTransform</A></B></TD>
|
||||||
|
<TD>Lossless transform parameters</TD>
|
||||||
|
</TR>
|
||||||
|
<TR BGCOLOR="white" CLASS="TableRowColor">
|
||||||
|
<TD WIDTH="15%"><B><A HREF="../../../org/libjpegturbo/turbojpeg/TJTransformer.html" title="class in org.libjpegturbo.turbojpeg">TJTransformer</A></B></TD>
|
||||||
|
<TD>TurboJPEG lossless transformer</TD>
|
||||||
|
</TR>
|
||||||
|
</TABLE>
|
||||||
|
|
||||||
|
|
||||||
|
<P>
|
||||||
|
<DL>
|
||||||
|
</DL>
|
||||||
|
<HR>
|
||||||
|
|
||||||
|
|
||||||
|
<!-- ======= START OF BOTTOM NAVBAR ====== -->
|
||||||
|
<A NAME="navbar_bottom"><!-- --></A>
|
||||||
|
<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
|
||||||
|
<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
|
||||||
|
<TR>
|
||||||
|
<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
|
||||||
|
<A NAME="navbar_bottom_firstrow"><!-- --></A>
|
||||||
|
<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
|
||||||
|
<TR ALIGN="center" VALIGN="top">
|
||||||
|
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../org/libjpegturbo/turbojpeg/package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
|
||||||
|
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <FONT CLASS="NavBarFont1">Class</FONT> </TD>
|
||||||
|
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
|
||||||
|
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
|
||||||
|
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
|
||||||
|
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
|
||||||
|
</TR>
|
||||||
|
</TABLE>
|
||||||
|
</TD>
|
||||||
|
<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
|
||||||
|
</EM>
|
||||||
|
</TD>
|
||||||
|
</TR>
|
||||||
|
|
||||||
|
<TR>
|
||||||
|
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
|
||||||
|
PREV PACKAGE
|
||||||
|
NEXT PACKAGE</FONT></TD>
|
||||||
|
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
|
||||||
|
<A HREF="../../../index.html?org/libjpegturbo/turbojpeg/package-summary.html" target="_top"><B>FRAMES</B></A>
|
||||||
|
<A HREF="package-summary.html" target="_top"><B>NO FRAMES</B></A>
|
||||||
|
<SCRIPT type="text/javascript">
|
||||||
|
<!--
|
||||||
|
if(window==top) {
|
||||||
|
document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');
|
||||||
|
}
|
||||||
|
//-->
|
||||||
|
</SCRIPT>
|
||||||
|
<NOSCRIPT>
|
||||||
|
<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>
|
||||||
|
</NOSCRIPT>
|
||||||
|
|
||||||
|
|
||||||
|
</FONT></TD>
|
||||||
|
</TR>
|
||||||
|
</TABLE>
|
||||||
|
<A NAME="skip-navbar_bottom"></A>
|
||||||
|
<!-- ======== END OF BOTTOM NAVBAR ======= -->
|
||||||
|
|
||||||
|
<HR>
|
||||||
|
|
||||||
|
</BODY>
|
||||||
|
</HTML>
|
||||||
161
java/doc/org/libjpegturbo/turbojpeg/package-tree.html
Normal file
@@ -0,0 +1,161 @@
|
|||||||
|
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
|
||||||
|
<!--NewPage-->
|
||||||
|
<HTML>
|
||||||
|
<HEAD>
|
||||||
|
<!-- Generated by javadoc (build 1.6.0_33) on Fri Jun 29 14:29:13 CDT 2012 -->
|
||||||
|
<TITLE>
|
||||||
|
org.libjpegturbo.turbojpeg Class Hierarchy
|
||||||
|
</TITLE>
|
||||||
|
|
||||||
|
<META NAME="date" CONTENT="2012-06-29">
|
||||||
|
|
||||||
|
<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../stylesheet.css" TITLE="Style">
|
||||||
|
|
||||||
|
<SCRIPT type="text/javascript">
|
||||||
|
function windowTitle()
|
||||||
|
{
|
||||||
|
if (location.href.indexOf('is-external=true') == -1) {
|
||||||
|
parent.document.title="org.libjpegturbo.turbojpeg Class Hierarchy";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</SCRIPT>
|
||||||
|
<NOSCRIPT>
|
||||||
|
</NOSCRIPT>
|
||||||
|
|
||||||
|
</HEAD>
|
||||||
|
|
||||||
|
<BODY BGCOLOR="white" onload="windowTitle();">
|
||||||
|
<HR>
|
||||||
|
|
||||||
|
|
||||||
|
<!-- ========= START OF TOP NAVBAR ======= -->
|
||||||
|
<A NAME="navbar_top"><!-- --></A>
|
||||||
|
<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
|
||||||
|
<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
|
||||||
|
<TR>
|
||||||
|
<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
|
||||||
|
<A NAME="navbar_top_firstrow"><!-- --></A>
|
||||||
|
<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
|
||||||
|
<TR ALIGN="center" VALIGN="top">
|
||||||
|
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../org/libjpegturbo/turbojpeg/package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
|
||||||
|
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <FONT CLASS="NavBarFont1">Class</FONT> </TD>
|
||||||
|
<TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Tree</B></FONT> </TD>
|
||||||
|
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
|
||||||
|
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
|
||||||
|
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
|
||||||
|
</TR>
|
||||||
|
</TABLE>
|
||||||
|
</TD>
|
||||||
|
<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
|
||||||
|
</EM>
|
||||||
|
</TD>
|
||||||
|
</TR>
|
||||||
|
|
||||||
|
<TR>
|
||||||
|
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
|
||||||
|
PREV
|
||||||
|
NEXT</FONT></TD>
|
||||||
|
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
|
||||||
|
<A HREF="../../../index.html?org/libjpegturbo/turbojpeg/package-tree.html" target="_top"><B>FRAMES</B></A>
|
||||||
|
<A HREF="package-tree.html" target="_top"><B>NO FRAMES</B></A>
|
||||||
|
<SCRIPT type="text/javascript">
|
||||||
|
<!--
|
||||||
|
if(window==top) {
|
||||||
|
document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');
|
||||||
|
}
|
||||||
|
//-->
|
||||||
|
</SCRIPT>
|
||||||
|
<NOSCRIPT>
|
||||||
|
<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>
|
||||||
|
</NOSCRIPT>
|
||||||
|
|
||||||
|
|
||||||
|
</FONT></TD>
|
||||||
|
</TR>
|
||||||
|
</TABLE>
|
||||||
|
<A NAME="skip-navbar_top"></A>
|
||||||
|
<!-- ========= END OF TOP NAVBAR ========= -->
|
||||||
|
|
||||||
|
<HR>
|
||||||
|
<CENTER>
|
||||||
|
<H2>
|
||||||
|
Hierarchy For Package org.libjpegturbo.turbojpeg
|
||||||
|
</H2>
|
||||||
|
</CENTER>
|
||||||
|
<H2>
|
||||||
|
Class Hierarchy
|
||||||
|
</H2>
|
||||||
|
<UL>
|
||||||
|
<LI TYPE="circle">java.lang.Object<UL>
|
||||||
|
<LI TYPE="circle">java.awt.geom.RectangularShape (implements java.lang.Cloneable, java.awt.Shape)
|
||||||
|
<UL>
|
||||||
|
<LI TYPE="circle">java.awt.geom.Rectangle2D<UL>
|
||||||
|
<LI TYPE="circle">java.awt.Rectangle (implements java.io.Serializable, java.awt.Shape)
|
||||||
|
<UL>
|
||||||
|
<LI TYPE="circle">org.libjpegturbo.turbojpeg.<A HREF="../../../org/libjpegturbo/turbojpeg/TJTransform.html" title="class in org.libjpegturbo.turbojpeg"><B>TJTransform</B></A></UL>
|
||||||
|
</UL>
|
||||||
|
</UL>
|
||||||
|
<LI TYPE="circle">org.libjpegturbo.turbojpeg.<A HREF="../../../org/libjpegturbo/turbojpeg/TJ.html" title="class in org.libjpegturbo.turbojpeg"><B>TJ</B></A><LI TYPE="circle">org.libjpegturbo.turbojpeg.<A HREF="../../../org/libjpegturbo/turbojpeg/TJCompressor.html" title="class in org.libjpegturbo.turbojpeg"><B>TJCompressor</B></A><LI TYPE="circle">org.libjpegturbo.turbojpeg.<A HREF="../../../org/libjpegturbo/turbojpeg/TJDecompressor.html" title="class in org.libjpegturbo.turbojpeg"><B>TJDecompressor</B></A><UL>
|
||||||
|
<LI TYPE="circle">org.libjpegturbo.turbojpeg.<A HREF="../../../org/libjpegturbo/turbojpeg/TJTransformer.html" title="class in org.libjpegturbo.turbojpeg"><B>TJTransformer</B></A></UL>
|
||||||
|
<LI TYPE="circle">org.libjpegturbo.turbojpeg.<A HREF="../../../org/libjpegturbo/turbojpeg/TJScalingFactor.html" title="class in org.libjpegturbo.turbojpeg"><B>TJScalingFactor</B></A></UL>
|
||||||
|
</UL>
|
||||||
|
<H2>
|
||||||
|
Interface Hierarchy
|
||||||
|
</H2>
|
||||||
|
<UL>
|
||||||
|
<LI TYPE="circle">org.libjpegturbo.turbojpeg.<A HREF="../../../org/libjpegturbo/turbojpeg/TJCustomFilter.html" title="interface in org.libjpegturbo.turbojpeg"><B>TJCustomFilter</B></A></UL>
|
||||||
|
<HR>
|
||||||
|
|
||||||
|
|
||||||
|
<!-- ======= START OF BOTTOM NAVBAR ====== -->
|
||||||
|
<A NAME="navbar_bottom"><!-- --></A>
|
||||||
|
<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
|
||||||
|
<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
|
||||||
|
<TR>
|
||||||
|
<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
|
||||||
|
<A NAME="navbar_bottom_firstrow"><!-- --></A>
|
||||||
|
<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
|
||||||
|
<TR ALIGN="center" VALIGN="top">
|
||||||
|
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../org/libjpegturbo/turbojpeg/package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
|
||||||
|
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <FONT CLASS="NavBarFont1">Class</FONT> </TD>
|
||||||
|
<TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Tree</B></FONT> </TD>
|
||||||
|
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
|
||||||
|
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
|
||||||
|
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
|
||||||
|
</TR>
|
||||||
|
</TABLE>
|
||||||
|
</TD>
|
||||||
|
<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
|
||||||
|
</EM>
|
||||||
|
</TD>
|
||||||
|
</TR>
|
||||||
|
|
||||||
|
<TR>
|
||||||
|
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
|
||||||
|
PREV
|
||||||
|
NEXT</FONT></TD>
|
||||||
|
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
|
||||||
|
<A HREF="../../../index.html?org/libjpegturbo/turbojpeg/package-tree.html" target="_top"><B>FRAMES</B></A>
|
||||||
|
<A HREF="package-tree.html" target="_top"><B>NO FRAMES</B></A>
|
||||||
|
<SCRIPT type="text/javascript">
|
||||||
|
<!--
|
||||||
|
if(window==top) {
|
||||||
|
document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');
|
||||||
|
}
|
||||||
|
//-->
|
||||||
|
</SCRIPT>
|
||||||
|
<NOSCRIPT>
|
||||||
|
<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>
|
||||||
|
</NOSCRIPT>
|
||||||
|
|
||||||
|
|
||||||
|
</FONT></TD>
|
||||||
|
</TR>
|
||||||
|
</TABLE>
|
||||||
|
<A NAME="skip-navbar_bottom"></A>
|
||||||
|
<!-- ======== END OF BOTTOM NAVBAR ======= -->
|
||||||
|
|
||||||
|
<HR>
|
||||||
|
|
||||||
|
</BODY>
|
||||||
|
</HTML>
|
||||||
163
java/doc/overview-tree.html
Normal file
@@ -0,0 +1,163 @@
|
|||||||
|
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
|
||||||
|
<!--NewPage-->
|
||||||
|
<HTML>
|
||||||
|
<HEAD>
|
||||||
|
<!-- Generated by javadoc (build 1.6.0_33) on Fri Jun 29 14:29:14 CDT 2012 -->
|
||||||
|
<TITLE>
|
||||||
|
Class Hierarchy
|
||||||
|
</TITLE>
|
||||||
|
|
||||||
|
<META NAME="date" CONTENT="2012-06-29">
|
||||||
|
|
||||||
|
<LINK REL ="stylesheet" TYPE="text/css" HREF="stylesheet.css" TITLE="Style">
|
||||||
|
|
||||||
|
<SCRIPT type="text/javascript">
|
||||||
|
function windowTitle()
|
||||||
|
{
|
||||||
|
if (location.href.indexOf('is-external=true') == -1) {
|
||||||
|
parent.document.title="Class Hierarchy";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</SCRIPT>
|
||||||
|
<NOSCRIPT>
|
||||||
|
</NOSCRIPT>
|
||||||
|
|
||||||
|
</HEAD>
|
||||||
|
|
||||||
|
<BODY BGCOLOR="white" onload="windowTitle();">
|
||||||
|
<HR>
|
||||||
|
|
||||||
|
|
||||||
|
<!-- ========= START OF TOP NAVBAR ======= -->
|
||||||
|
<A NAME="navbar_top"><!-- --></A>
|
||||||
|
<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
|
||||||
|
<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
|
||||||
|
<TR>
|
||||||
|
<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
|
||||||
|
<A NAME="navbar_top_firstrow"><!-- --></A>
|
||||||
|
<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
|
||||||
|
<TR ALIGN="center" VALIGN="top">
|
||||||
|
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="org/libjpegturbo/turbojpeg/package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
|
||||||
|
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <FONT CLASS="NavBarFont1">Class</FONT> </TD>
|
||||||
|
<TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Tree</B></FONT> </TD>
|
||||||
|
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
|
||||||
|
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
|
||||||
|
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
|
||||||
|
</TR>
|
||||||
|
</TABLE>
|
||||||
|
</TD>
|
||||||
|
<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
|
||||||
|
</EM>
|
||||||
|
</TD>
|
||||||
|
</TR>
|
||||||
|
|
||||||
|
<TR>
|
||||||
|
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
|
||||||
|
PREV
|
||||||
|
NEXT</FONT></TD>
|
||||||
|
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
|
||||||
|
<A HREF="index.html?overview-tree.html" target="_top"><B>FRAMES</B></A>
|
||||||
|
<A HREF="overview-tree.html" target="_top"><B>NO FRAMES</B></A>
|
||||||
|
<SCRIPT type="text/javascript">
|
||||||
|
<!--
|
||||||
|
if(window==top) {
|
||||||
|
document.writeln('<A HREF="allclasses-noframe.html"><B>All Classes</B></A>');
|
||||||
|
}
|
||||||
|
//-->
|
||||||
|
</SCRIPT>
|
||||||
|
<NOSCRIPT>
|
||||||
|
<A HREF="allclasses-noframe.html"><B>All Classes</B></A>
|
||||||
|
</NOSCRIPT>
|
||||||
|
|
||||||
|
|
||||||
|
</FONT></TD>
|
||||||
|
</TR>
|
||||||
|
</TABLE>
|
||||||
|
<A NAME="skip-navbar_top"></A>
|
||||||
|
<!-- ========= END OF TOP NAVBAR ========= -->
|
||||||
|
|
||||||
|
<HR>
|
||||||
|
<CENTER>
|
||||||
|
<H2>
|
||||||
|
Hierarchy For All Packages</H2>
|
||||||
|
</CENTER>
|
||||||
|
<DL>
|
||||||
|
<DT><B>Package Hierarchies:</B><DD><A HREF="org/libjpegturbo/turbojpeg/package-tree.html">org.libjpegturbo.turbojpeg</A></DL>
|
||||||
|
<HR>
|
||||||
|
<H2>
|
||||||
|
Class Hierarchy
|
||||||
|
</H2>
|
||||||
|
<UL>
|
||||||
|
<LI TYPE="circle">java.lang.Object<UL>
|
||||||
|
<LI TYPE="circle">java.awt.geom.RectangularShape (implements java.lang.Cloneable, java.awt.Shape)
|
||||||
|
<UL>
|
||||||
|
<LI TYPE="circle">java.awt.geom.Rectangle2D<UL>
|
||||||
|
<LI TYPE="circle">java.awt.Rectangle (implements java.io.Serializable, java.awt.Shape)
|
||||||
|
<UL>
|
||||||
|
<LI TYPE="circle">org.libjpegturbo.turbojpeg.<A HREF="org/libjpegturbo/turbojpeg/TJTransform.html" title="class in org.libjpegturbo.turbojpeg"><B>TJTransform</B></A></UL>
|
||||||
|
</UL>
|
||||||
|
</UL>
|
||||||
|
<LI TYPE="circle">org.libjpegturbo.turbojpeg.<A HREF="org/libjpegturbo/turbojpeg/TJ.html" title="class in org.libjpegturbo.turbojpeg"><B>TJ</B></A><LI TYPE="circle">org.libjpegturbo.turbojpeg.<A HREF="org/libjpegturbo/turbojpeg/TJCompressor.html" title="class in org.libjpegturbo.turbojpeg"><B>TJCompressor</B></A><LI TYPE="circle">org.libjpegturbo.turbojpeg.<A HREF="org/libjpegturbo/turbojpeg/TJDecompressor.html" title="class in org.libjpegturbo.turbojpeg"><B>TJDecompressor</B></A><UL>
|
||||||
|
<LI TYPE="circle">org.libjpegturbo.turbojpeg.<A HREF="org/libjpegturbo/turbojpeg/TJTransformer.html" title="class in org.libjpegturbo.turbojpeg"><B>TJTransformer</B></A></UL>
|
||||||
|
<LI TYPE="circle">org.libjpegturbo.turbojpeg.<A HREF="org/libjpegturbo/turbojpeg/TJScalingFactor.html" title="class in org.libjpegturbo.turbojpeg"><B>TJScalingFactor</B></A></UL>
|
||||||
|
</UL>
|
||||||
|
<H2>
|
||||||
|
Interface Hierarchy
|
||||||
|
</H2>
|
||||||
|
<UL>
|
||||||
|
<LI TYPE="circle">org.libjpegturbo.turbojpeg.<A HREF="org/libjpegturbo/turbojpeg/TJCustomFilter.html" title="interface in org.libjpegturbo.turbojpeg"><B>TJCustomFilter</B></A></UL>
|
||||||
|
<HR>
|
||||||
|
|
||||||
|
|
||||||
|
<!-- ======= START OF BOTTOM NAVBAR ====== -->
|
||||||
|
<A NAME="navbar_bottom"><!-- --></A>
|
||||||
|
<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
|
||||||
|
<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
|
||||||
|
<TR>
|
||||||
|
<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
|
||||||
|
<A NAME="navbar_bottom_firstrow"><!-- --></A>
|
||||||
|
<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
|
||||||
|
<TR ALIGN="center" VALIGN="top">
|
||||||
|
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="org/libjpegturbo/turbojpeg/package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
|
||||||
|
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <FONT CLASS="NavBarFont1">Class</FONT> </TD>
|
||||||
|
<TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Tree</B></FONT> </TD>
|
||||||
|
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
|
||||||
|
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
|
||||||
|
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
|
||||||
|
</TR>
|
||||||
|
</TABLE>
|
||||||
|
</TD>
|
||||||
|
<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
|
||||||
|
</EM>
|
||||||
|
</TD>
|
||||||
|
</TR>
|
||||||
|
|
||||||
|
<TR>
|
||||||
|
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
|
||||||
|
PREV
|
||||||
|
NEXT</FONT></TD>
|
||||||
|
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
|
||||||
|
<A HREF="index.html?overview-tree.html" target="_top"><B>FRAMES</B></A>
|
||||||
|
<A HREF="overview-tree.html" target="_top"><B>NO FRAMES</B></A>
|
||||||
|
<SCRIPT type="text/javascript">
|
||||||
|
<!--
|
||||||
|
if(window==top) {
|
||||||
|
document.writeln('<A HREF="allclasses-noframe.html"><B>All Classes</B></A>');
|
||||||
|
}
|
||||||
|
//-->
|
||||||
|
</SCRIPT>
|
||||||
|
<NOSCRIPT>
|
||||||
|
<A HREF="allclasses-noframe.html"><B>All Classes</B></A>
|
||||||
|
</NOSCRIPT>
|
||||||
|
|
||||||
|
|
||||||
|
</FONT></TD>
|
||||||
|
</TR>
|
||||||
|
</TABLE>
|
||||||
|
<A NAME="skip-navbar_bottom"></A>
|
||||||
|
<!-- ======== END OF BOTTOM NAVBAR ======= -->
|
||||||
|
|
||||||
|
<HR>
|
||||||
|
|
||||||
|
</BODY>
|
||||||
|
</HTML>
|
||||||
1
java/doc/package-list
Normal file
@@ -0,0 +1 @@
|
|||||||
|
org.libjpegturbo.turbojpeg
|
||||||
BIN
java/doc/resources/inherit.gif
Normal file
|
After Width: | Height: | Size: 57 B |
202
java/doc/serialized-form.html
Normal file
@@ -0,0 +1,202 @@
|
|||||||
|
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
|
||||||
|
<!--NewPage-->
|
||||||
|
<HTML>
|
||||||
|
<HEAD>
|
||||||
|
<!-- Generated by javadoc (build 1.6.0_33) on Fri Jun 29 14:29:14 CDT 2012 -->
|
||||||
|
<TITLE>
|
||||||
|
Serialized Form
|
||||||
|
</TITLE>
|
||||||
|
|
||||||
|
<META NAME="date" CONTENT="2012-06-29">
|
||||||
|
|
||||||
|
<LINK REL ="stylesheet" TYPE="text/css" HREF="stylesheet.css" TITLE="Style">
|
||||||
|
|
||||||
|
<SCRIPT type="text/javascript">
|
||||||
|
function windowTitle()
|
||||||
|
{
|
||||||
|
if (location.href.indexOf('is-external=true') == -1) {
|
||||||
|
parent.document.title="Serialized Form";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</SCRIPT>
|
||||||
|
<NOSCRIPT>
|
||||||
|
</NOSCRIPT>
|
||||||
|
|
||||||
|
</HEAD>
|
||||||
|
|
||||||
|
<BODY BGCOLOR="white" onload="windowTitle();">
|
||||||
|
<HR>
|
||||||
|
|
||||||
|
|
||||||
|
<!-- ========= START OF TOP NAVBAR ======= -->
|
||||||
|
<A NAME="navbar_top"><!-- --></A>
|
||||||
|
<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
|
||||||
|
<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
|
||||||
|
<TR>
|
||||||
|
<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
|
||||||
|
<A NAME="navbar_top_firstrow"><!-- --></A>
|
||||||
|
<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
|
||||||
|
<TR ALIGN="center" VALIGN="top">
|
||||||
|
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="org/libjpegturbo/turbojpeg/package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
|
||||||
|
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <FONT CLASS="NavBarFont1">Class</FONT> </TD>
|
||||||
|
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="org/libjpegturbo/turbojpeg/package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
|
||||||
|
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
|
||||||
|
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
|
||||||
|
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
|
||||||
|
</TR>
|
||||||
|
</TABLE>
|
||||||
|
</TD>
|
||||||
|
<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
|
||||||
|
</EM>
|
||||||
|
</TD>
|
||||||
|
</TR>
|
||||||
|
|
||||||
|
<TR>
|
||||||
|
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
|
||||||
|
PREV
|
||||||
|
NEXT</FONT></TD>
|
||||||
|
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
|
||||||
|
<A HREF="index.html?serialized-form.html" target="_top"><B>FRAMES</B></A>
|
||||||
|
<A HREF="serialized-form.html" target="_top"><B>NO FRAMES</B></A>
|
||||||
|
<SCRIPT type="text/javascript">
|
||||||
|
<!--
|
||||||
|
if(window==top) {
|
||||||
|
document.writeln('<A HREF="allclasses-noframe.html"><B>All Classes</B></A>');
|
||||||
|
}
|
||||||
|
//-->
|
||||||
|
</SCRIPT>
|
||||||
|
<NOSCRIPT>
|
||||||
|
<A HREF="allclasses-noframe.html"><B>All Classes</B></A>
|
||||||
|
</NOSCRIPT>
|
||||||
|
|
||||||
|
|
||||||
|
</FONT></TD>
|
||||||
|
</TR>
|
||||||
|
</TABLE>
|
||||||
|
<A NAME="skip-navbar_top"></A>
|
||||||
|
<!-- ========= END OF TOP NAVBAR ========= -->
|
||||||
|
|
||||||
|
<HR>
|
||||||
|
<CENTER>
|
||||||
|
<H1>
|
||||||
|
Serialized Form</H1>
|
||||||
|
</CENTER>
|
||||||
|
<HR SIZE="4" NOSHADE>
|
||||||
|
|
||||||
|
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
|
||||||
|
<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
|
||||||
|
<TH ALIGN="center"><FONT SIZE="+2">
|
||||||
|
<B>Package</B> <B>org.libjpegturbo.turbojpeg</B></FONT></TH>
|
||||||
|
</TR>
|
||||||
|
</TABLE>
|
||||||
|
|
||||||
|
<P>
|
||||||
|
<A NAME="org.libjpegturbo.turbojpeg.TJTransform"><!-- --></A>
|
||||||
|
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
|
||||||
|
<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
|
||||||
|
<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
|
||||||
|
<B>Class <A HREF="org/libjpegturbo/turbojpeg/TJTransform.html" title="class in org.libjpegturbo.turbojpeg">org.libjpegturbo.turbojpeg.TJTransform</A> extends java.awt.Rectangle implements Serializable</B></FONT></TH>
|
||||||
|
</TR>
|
||||||
|
</TABLE>
|
||||||
|
|
||||||
|
<P>
|
||||||
|
<B>serialVersionUID: </B>-127367705761430371L
|
||||||
|
|
||||||
|
<P>
|
||||||
|
<A NAME="serializedForm"><!-- --></A>
|
||||||
|
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
|
||||||
|
<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
|
||||||
|
<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
|
||||||
|
<B>Serialized Fields</B></FONT></TH>
|
||||||
|
</TR>
|
||||||
|
</TABLE>
|
||||||
|
|
||||||
|
<H3>
|
||||||
|
op</H3>
|
||||||
|
<PRE>
|
||||||
|
int <B>op</B></PRE>
|
||||||
|
<DL>
|
||||||
|
<DD>Transform operation (one of <code>OP_*</code>)
|
||||||
|
<P>
|
||||||
|
<DL>
|
||||||
|
</DL>
|
||||||
|
</DL>
|
||||||
|
<HR>
|
||||||
|
<H3>
|
||||||
|
options</H3>
|
||||||
|
<PRE>
|
||||||
|
int <B>options</B></PRE>
|
||||||
|
<DL>
|
||||||
|
<DD>Transform options (bitwise OR of one or more of <code>OPT_*</code>)
|
||||||
|
<P>
|
||||||
|
<DL>
|
||||||
|
</DL>
|
||||||
|
</DL>
|
||||||
|
<HR>
|
||||||
|
<H3>
|
||||||
|
cf</H3>
|
||||||
|
<PRE>
|
||||||
|
<A HREF="org/libjpegturbo/turbojpeg/TJCustomFilter.html" title="interface in org.libjpegturbo.turbojpeg">TJCustomFilter</A> <B>cf</B></PRE>
|
||||||
|
<DL>
|
||||||
|
<DD>Custom filter instance
|
||||||
|
<P>
|
||||||
|
<DL>
|
||||||
|
</DL>
|
||||||
|
</DL>
|
||||||
|
|
||||||
|
<P>
|
||||||
|
<HR>
|
||||||
|
|
||||||
|
|
||||||
|
<!-- ======= START OF BOTTOM NAVBAR ====== -->
|
||||||
|
<A NAME="navbar_bottom"><!-- --></A>
|
||||||
|
<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
|
||||||
|
<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
|
||||||
|
<TR>
|
||||||
|
<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
|
||||||
|
<A NAME="navbar_bottom_firstrow"><!-- --></A>
|
||||||
|
<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
|
||||||
|
<TR ALIGN="center" VALIGN="top">
|
||||||
|
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="org/libjpegturbo/turbojpeg/package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
|
||||||
|
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <FONT CLASS="NavBarFont1">Class</FONT> </TD>
|
||||||
|
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="org/libjpegturbo/turbojpeg/package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
|
||||||
|
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
|
||||||
|
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
|
||||||
|
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
|
||||||
|
</TR>
|
||||||
|
</TABLE>
|
||||||
|
</TD>
|
||||||
|
<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
|
||||||
|
</EM>
|
||||||
|
</TD>
|
||||||
|
</TR>
|
||||||
|
|
||||||
|
<TR>
|
||||||
|
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
|
||||||
|
PREV
|
||||||
|
NEXT</FONT></TD>
|
||||||
|
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
|
||||||
|
<A HREF="index.html?serialized-form.html" target="_top"><B>FRAMES</B></A>
|
||||||
|
<A HREF="serialized-form.html" target="_top"><B>NO FRAMES</B></A>
|
||||||
|
<SCRIPT type="text/javascript">
|
||||||
|
<!--
|
||||||
|
if(window==top) {
|
||||||
|
document.writeln('<A HREF="allclasses-noframe.html"><B>All Classes</B></A>');
|
||||||
|
}
|
||||||
|
//-->
|
||||||
|
</SCRIPT>
|
||||||
|
<NOSCRIPT>
|
||||||
|
<A HREF="allclasses-noframe.html"><B>All Classes</B></A>
|
||||||
|
</NOSCRIPT>
|
||||||
|
|
||||||
|
|
||||||
|
</FONT></TD>
|
||||||
|
</TR>
|
||||||
|
</TABLE>
|
||||||
|
<A NAME="skip-navbar_bottom"></A>
|
||||||
|
<!-- ======== END OF BOTTOM NAVBAR ======= -->
|
||||||
|
|
||||||
|
<HR>
|
||||||
|
|
||||||
|
</BODY>
|
||||||
|
</HTML>
|
||||||
29
java/doc/stylesheet.css
Normal file
@@ -0,0 +1,29 @@
|
|||||||
|
/* Javadoc style sheet */
|
||||||
|
|
||||||
|
/* Define colors, fonts and other style attributes here to override the defaults */
|
||||||
|
|
||||||
|
/* Page background color */
|
||||||
|
body { background-color: #FFFFFF; color:#000000 }
|
||||||
|
|
||||||
|
/* Headings */
|
||||||
|
h1 { font-size: 145% }
|
||||||
|
|
||||||
|
/* Table colors */
|
||||||
|
.TableHeadingColor { background: #CCCCFF; color:#000000 } /* Dark mauve */
|
||||||
|
.TableSubHeadingColor { background: #EEEEFF; color:#000000 } /* Light mauve */
|
||||||
|
.TableRowColor { background: #FFFFFF; color:#000000 } /* White */
|
||||||
|
|
||||||
|
/* Font used in left-hand frame lists */
|
||||||
|
.FrameTitleFont { font-size: 100%; font-family: Helvetica, Arial, sans-serif; color:#000000 }
|
||||||
|
.FrameHeadingFont { font-size: 90%; font-family: Helvetica, Arial, sans-serif; color:#000000 }
|
||||||
|
.FrameItemFont { font-size: 90%; font-family: Helvetica, Arial, sans-serif; color:#000000 }
|
||||||
|
|
||||||
|
/* Navigation bar fonts and colors */
|
||||||
|
.NavBarCell1 { background-color:#EEEEFF; color:#000000} /* Light mauve */
|
||||||
|
.NavBarCell1Rev { background-color:#00008B; color:#FFFFFF} /* Dark Blue */
|
||||||
|
.NavBarFont1 { font-family: Arial, Helvetica, sans-serif; color:#000000;color:#000000;}
|
||||||
|
.NavBarFont1Rev { font-family: Arial, Helvetica, sans-serif; color:#FFFFFF;color:#FFFFFF;}
|
||||||
|
|
||||||
|
.NavBarCell2 { font-family: Arial, Helvetica, sans-serif; background-color:#FFFFFF; color:#000000}
|
||||||
|
.NavBarCell3 { font-family: Arial, Helvetica, sans-serif; background-color:#FFFFFF; color:#000000}
|
||||||
|
|
||||||
372
java/org/libjpegturbo/turbojpeg/TJ.java
Normal file
@@ -0,0 +1,372 @@
|
|||||||
|
/*
|
||||||
|
* Copyright (C)2011-2012 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.
|
||||||
|
*/
|
||||||
|
|
||||||
|
package org.libjpegturbo.turbojpeg;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* TurboJPEG utility class (cannot be instantiated)
|
||||||
|
*/
|
||||||
|
final public class TJ {
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The number of chrominance subsampling options
|
||||||
|
*/
|
||||||
|
final public static int NUMSAMP = 5;
|
||||||
|
/**
|
||||||
|
* 4:4:4 chrominance subsampling (no chrominance subsampling). The JPEG
|
||||||
|
* or YUV image will contain one chrominance component for every pixel in the
|
||||||
|
* source image.
|
||||||
|
*/
|
||||||
|
final public static int SAMP_444 = 0;
|
||||||
|
/**
|
||||||
|
* 4:2:2 chrominance subsampling. The JPEG or YUV image will contain one
|
||||||
|
* chrominance component for every 2x1 block of pixels in the source image.
|
||||||
|
*/
|
||||||
|
final public static int SAMP_422 = 1;
|
||||||
|
/**
|
||||||
|
* 4:2:0 chrominance subsampling. The JPEG or YUV image will contain one
|
||||||
|
* chrominance component for every 2x2 block of pixels in the source image.
|
||||||
|
*/
|
||||||
|
final public static int SAMP_420 = 2;
|
||||||
|
/**
|
||||||
|
* Grayscale. The JPEG or YUV image will contain no chrominance components.
|
||||||
|
*/
|
||||||
|
final public static int SAMP_GRAY = 3;
|
||||||
|
/**
|
||||||
|
* 4:4:0 chrominance subsampling. The JPEG or YUV image will contain one
|
||||||
|
* chrominance component for every 1x2 block of pixels in the source image.
|
||||||
|
*/
|
||||||
|
final public static int SAMP_440 = 4;
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns the MCU block width for the given level of chrominance
|
||||||
|
* subsampling.
|
||||||
|
*
|
||||||
|
* @param subsamp the level of chrominance subsampling (one of
|
||||||
|
* <code>SAMP_*</code>)
|
||||||
|
*
|
||||||
|
* @return the MCU block width for the given level of chrominance subsampling
|
||||||
|
*/
|
||||||
|
public static int getMCUWidth(int subsamp) throws Exception {
|
||||||
|
if(subsamp < 0 || subsamp >= NUMSAMP)
|
||||||
|
throw new Exception("Invalid subsampling type");
|
||||||
|
return mcuWidth[subsamp];
|
||||||
|
}
|
||||||
|
|
||||||
|
final private static int mcuWidth[] = {
|
||||||
|
8, 16, 16, 8, 8
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns the MCU block height for the given level of chrominance
|
||||||
|
* subsampling.
|
||||||
|
*
|
||||||
|
* @param subsamp the level of chrominance subsampling (one of
|
||||||
|
* <code>SAMP_*</code>)
|
||||||
|
*
|
||||||
|
* @return the MCU block height for the given level of chrominance
|
||||||
|
* subsampling
|
||||||
|
*/
|
||||||
|
public static int getMCUHeight(int subsamp) throws Exception {
|
||||||
|
if(subsamp < 0 || subsamp >= NUMSAMP)
|
||||||
|
throw new Exception("Invalid subsampling type");
|
||||||
|
return mcuHeight[subsamp];
|
||||||
|
}
|
||||||
|
|
||||||
|
final private static int mcuHeight[] = {
|
||||||
|
8, 8, 16, 8, 16
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The number of pixel formats
|
||||||
|
*/
|
||||||
|
final public static int NUMPF = 11;
|
||||||
|
/**
|
||||||
|
* RGB pixel format. The red, green, and blue components in the image are
|
||||||
|
* stored in 3-byte pixels in the order R, G, B from lowest to highest byte
|
||||||
|
* address within each pixel.
|
||||||
|
*/
|
||||||
|
final public static int PF_RGB = 0;
|
||||||
|
/**
|
||||||
|
* BGR pixel format. The red, green, and blue components in the image are
|
||||||
|
* stored in 3-byte pixels in the order B, G, R from lowest to highest byte
|
||||||
|
* address within each pixel.
|
||||||
|
*/
|
||||||
|
final public static int PF_BGR = 1;
|
||||||
|
/**
|
||||||
|
* RGBX pixel format. The red, green, and blue components in the image are
|
||||||
|
* stored in 4-byte pixels in the order R, G, B from lowest to highest byte
|
||||||
|
* address within each pixel. The X component is ignored when compressing
|
||||||
|
* and undefined when decompressing.
|
||||||
|
*/
|
||||||
|
final public static int PF_RGBX = 2;
|
||||||
|
/**
|
||||||
|
* BGRX pixel format. The red, green, and blue components in the image are
|
||||||
|
* stored in 4-byte pixels in the order B, G, R from lowest to highest byte
|
||||||
|
* address within each pixel. The X component is ignored when compressing
|
||||||
|
* and undefined when decompressing.
|
||||||
|
*/
|
||||||
|
final public static int PF_BGRX = 3;
|
||||||
|
/**
|
||||||
|
* XBGR pixel format. The red, green, and blue components in the image are
|
||||||
|
* stored in 4-byte pixels in the order R, G, B from highest to lowest byte
|
||||||
|
* address within each pixel. The X component is ignored when compressing
|
||||||
|
* and undefined when decompressing.
|
||||||
|
*/
|
||||||
|
final public static int PF_XBGR = 4;
|
||||||
|
/**
|
||||||
|
* XRGB pixel format. The red, green, and blue components in the image are
|
||||||
|
* stored in 4-byte pixels in the order B, G, R from highest to lowest byte
|
||||||
|
* address within each pixel. The X component is ignored when compressing
|
||||||
|
* and undefined when decompressing.
|
||||||
|
*/
|
||||||
|
final public static int PF_XRGB = 5;
|
||||||
|
/**
|
||||||
|
* Grayscale pixel format. Each 1-byte pixel represents a luminance
|
||||||
|
* (brightness) level from 0 to 255.
|
||||||
|
*/
|
||||||
|
final public static int PF_GRAY = 6;
|
||||||
|
/**
|
||||||
|
* RGBA pixel format. This is the same as {@link #PF_RGBX}, except that when
|
||||||
|
* decompressing, the X byte is guaranteed to be 0xFF, which can be
|
||||||
|
* interpreted as an opaque alpha channel.
|
||||||
|
*/
|
||||||
|
final public static int PF_RGBA = 7;
|
||||||
|
/**
|
||||||
|
* BGRA pixel format. This is the same as {@link #PF_BGRX}, except that when
|
||||||
|
* decompressing, the X byte is guaranteed to be 0xFF, which can be
|
||||||
|
* interpreted as an opaque alpha channel.
|
||||||
|
*/
|
||||||
|
final public static int PF_BGRA = 8;
|
||||||
|
/**
|
||||||
|
* ABGR pixel format. This is the same as {@link #PF_XBGR}, except that when
|
||||||
|
* decompressing, the X byte is guaranteed to be 0xFF, which can be
|
||||||
|
* interpreted as an opaque alpha channel.
|
||||||
|
*/
|
||||||
|
final public static int PF_ABGR = 9;
|
||||||
|
/**
|
||||||
|
* ARGB pixel format. This is the same as {@link #PF_XRGB}, except that when
|
||||||
|
* decompressing, the X byte is guaranteed to be 0xFF, which can be
|
||||||
|
* interpreted as an opaque alpha channel.
|
||||||
|
*/
|
||||||
|
final public static int PF_ARGB = 10;
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns the pixel size (in bytes) of the given pixel format.
|
||||||
|
*
|
||||||
|
* @param pixelFormat the pixel format (one of <code>PF_*</code>)
|
||||||
|
*
|
||||||
|
* @return the pixel size (in bytes) of the given pixel format
|
||||||
|
*/
|
||||||
|
public static int getPixelSize(int pixelFormat) throws Exception {
|
||||||
|
if(pixelFormat < 0 || pixelFormat >= NUMPF)
|
||||||
|
throw new Exception("Invalid pixel format");
|
||||||
|
return pixelSize[pixelFormat];
|
||||||
|
}
|
||||||
|
|
||||||
|
final private static int pixelSize[] = {
|
||||||
|
3, 3, 4, 4, 4, 4, 1, 4, 4, 4, 4
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* For the given pixel format, returns the number of bytes that the red
|
||||||
|
* component is offset from the start of the pixel. For instance, if a pixel
|
||||||
|
* of format <code>TJ.PF_BGRX</code> is stored in <code>char pixel[]</code>,
|
||||||
|
* then the red component will be
|
||||||
|
* <code>pixel[TJ.getRedOffset(TJ.PF_BGRX)]</code>.
|
||||||
|
*
|
||||||
|
* @param pixelFormat the pixel format (one of <code>PF_*</code>)
|
||||||
|
*
|
||||||
|
* @return the red offset for the given pixel format
|
||||||
|
*/
|
||||||
|
public static int getRedOffset(int pixelFormat) throws Exception {
|
||||||
|
if(pixelFormat < 0 || pixelFormat >= NUMPF)
|
||||||
|
throw new Exception("Invalid pixel format");
|
||||||
|
return redOffset[pixelFormat];
|
||||||
|
}
|
||||||
|
|
||||||
|
final private static int redOffset[] = {
|
||||||
|
0, 2, 0, 2, 3, 1, 0, 0, 2, 3, 1
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* For the given pixel format, returns the number of bytes that the green
|
||||||
|
* component is offset from the start of the pixel. For instance, if a pixel
|
||||||
|
* of format <code>TJ.PF_BGRX</code> is stored in <code>char pixel[]</code>,
|
||||||
|
* then the green component will be
|
||||||
|
* <code>pixel[TJ.getGreenOffset(TJ.PF_BGRX)]</code>.
|
||||||
|
*
|
||||||
|
* @param pixelFormat the pixel format (one of <code>PF_*</code>)
|
||||||
|
*
|
||||||
|
* @return the green offset for the given pixel format
|
||||||
|
*/
|
||||||
|
public static int getGreenOffset(int pixelFormat) throws Exception {
|
||||||
|
if(pixelFormat < 0 || pixelFormat >= NUMPF)
|
||||||
|
throw new Exception("Invalid pixel format");
|
||||||
|
return greenOffset[pixelFormat];
|
||||||
|
}
|
||||||
|
|
||||||
|
final private static int greenOffset[] = {
|
||||||
|
1, 1, 1, 1, 2, 2, 0, 1, 1, 2, 2
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* For the given pixel format, returns the number of bytes that the blue
|
||||||
|
* component is offset from the start of the pixel. For instance, if a pixel
|
||||||
|
* of format <code>TJ.PF_BGRX</code> is stored in <code>char pixel[]</code>,
|
||||||
|
* then the blue component will be
|
||||||
|
* <code>pixel[TJ.getBlueOffset(TJ.PF_BGRX)]</code>.
|
||||||
|
*
|
||||||
|
* @param pixelFormat the pixel format (one of <code>PF_*</code>)
|
||||||
|
*
|
||||||
|
* @return the blue offset for the given pixel format
|
||||||
|
*/
|
||||||
|
public static int getBlueOffset(int pixelFormat) throws Exception {
|
||||||
|
if(pixelFormat < 0 || pixelFormat >= NUMPF)
|
||||||
|
throw new Exception("Invalid pixel format");
|
||||||
|
return blueOffset[pixelFormat];
|
||||||
|
}
|
||||||
|
|
||||||
|
final private static int blueOffset[] = {
|
||||||
|
2, 0, 2, 0, 1, 3, 0, 2, 0, 1, 3
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The uncompressed source/destination image is stored in bottom-up (Windows,
|
||||||
|
* OpenGL) order, not top-down (X11) order.
|
||||||
|
*/
|
||||||
|
final public static int FLAG_BOTTOMUP = 2;
|
||||||
|
/**
|
||||||
|
* Turn off CPU auto-detection and force TurboJPEG to use MMX code
|
||||||
|
* (if the underlying codec supports it.)
|
||||||
|
*/
|
||||||
|
final public static int FLAG_FORCEMMX = 8;
|
||||||
|
/**
|
||||||
|
* Turn off CPU auto-detection and force TurboJPEG to use SSE code
|
||||||
|
* (if the underlying codec supports it.)
|
||||||
|
*/
|
||||||
|
final public static int FLAG_FORCESSE = 16;
|
||||||
|
/**
|
||||||
|
* Turn off CPU auto-detection and force TurboJPEG to use SSE2 code
|
||||||
|
* (if the underlying codec supports it.)
|
||||||
|
*/
|
||||||
|
final public static int FLAG_FORCESSE2 = 32;
|
||||||
|
/**
|
||||||
|
* Turn off CPU auto-detection and force TurboJPEG to use SSE3 code
|
||||||
|
* (if the underlying codec supports it.)
|
||||||
|
*/
|
||||||
|
final public static int FLAG_FORCESSE3 = 128;
|
||||||
|
/**
|
||||||
|
* When decompressing, use the fastest chrominance upsampling algorithm
|
||||||
|
* available in the underlying codec. The default is to use smooth
|
||||||
|
* upsampling, which creates a smooth transition between neighboring
|
||||||
|
* chrominance components in order to reduce upsampling artifacts in the
|
||||||
|
* decompressed image.
|
||||||
|
*/
|
||||||
|
final public static int FLAG_FASTUPSAMPLE = 256;
|
||||||
|
/**
|
||||||
|
* Use the fastest DCT/IDCT algorithm available in the underlying codec. The
|
||||||
|
* default if this flag is not specified is implementation-specific. The
|
||||||
|
* libjpeg implementation, for example, uses the fast algorithm by default
|
||||||
|
* when compressing, because this has been shown to have only a very slight
|
||||||
|
* effect on accuracy, but it uses the accurate algorithm when decompressing,
|
||||||
|
* because this has been shown to have a larger effect.
|
||||||
|
*/
|
||||||
|
final public static int FLAG_FASTDCT = 2048;
|
||||||
|
/**
|
||||||
|
* Use the most accurate DCT/IDCT algorithm available in the underlying
|
||||||
|
* codec. The default if this flag is not specified is
|
||||||
|
* implementation-specific. The libjpeg implementation, for example, uses
|
||||||
|
* the fast algorithm by default when compressing, because this has been
|
||||||
|
* shown to have only a very slight effect on accuracy, but it uses the
|
||||||
|
* accurate algorithm when decompressing, because this has been shown to have
|
||||||
|
* a larger effect.
|
||||||
|
*/
|
||||||
|
final public static int FLAG_ACCURATEDCT = 4096;
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns the maximum size of the buffer (in bytes) required to hold a JPEG
|
||||||
|
* image with the given width and height, and level of chrominance
|
||||||
|
* subsampling.
|
||||||
|
*
|
||||||
|
* @param width the width (in pixels) of the JPEG image
|
||||||
|
*
|
||||||
|
* @param height the height (in pixels) of the JPEG image
|
||||||
|
*
|
||||||
|
* @param jpegSubsamp the level of chrominance subsampling to be used when
|
||||||
|
* generating the JPEG image (one of {@link TJ TJ.SAMP_*})
|
||||||
|
*
|
||||||
|
* @return the maximum size of the buffer (in bytes) required to hold a JPEG
|
||||||
|
* image with the given width and height, and level of chrominance
|
||||||
|
* subsampling
|
||||||
|
*/
|
||||||
|
public native static int bufSize(int width, int height, int jpegSubsamp)
|
||||||
|
throws Exception;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns the size of the buffer (in bytes) required to hold a YUV planar
|
||||||
|
* image with the given width, height, and level of chrominance subsampling.
|
||||||
|
*
|
||||||
|
* @param width the width (in pixels) of the YUV image
|
||||||
|
*
|
||||||
|
* @param height the height (in pixels) of the YUV image
|
||||||
|
*
|
||||||
|
* @param subsamp the level of chrominance subsampling used in the YUV
|
||||||
|
* image (one of {@link TJ TJ.SAMP_*})
|
||||||
|
*
|
||||||
|
* @return the size of the buffer (in bytes) required to hold a YUV planar
|
||||||
|
* image with the given width, height, and level of chrominance subsampling
|
||||||
|
*/
|
||||||
|
public native static int bufSizeYUV(int width, int height,
|
||||||
|
int subsamp)
|
||||||
|
throws Exception;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns a list of fractional scaling factors that the JPEG decompressor in
|
||||||
|
* this implementation of TurboJPEG supports.
|
||||||
|
*
|
||||||
|
* @return a list of fractional scaling factors that the JPEG decompressor in
|
||||||
|
* this implementation of TurboJPEG supports
|
||||||
|
*/
|
||||||
|
public native static TJScalingFactor[] getScalingFactors()
|
||||||
|
throws Exception;
|
||||||
|
|
||||||
|
static {
|
||||||
|
TJLoader.load();
|
||||||
|
}
|
||||||
|
};
|
||||||
470
java/org/libjpegturbo/turbojpeg/TJCompressor.java
Normal file
@@ -0,0 +1,470 @@
|
|||||||
|
/*
|
||||||
|
* Copyright (C)2011 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.
|
||||||
|
*/
|
||||||
|
|
||||||
|
package org.libjpegturbo.turbojpeg;
|
||||||
|
|
||||||
|
import java.awt.image.*;
|
||||||
|
import java.nio.*;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* TurboJPEG compressor
|
||||||
|
*/
|
||||||
|
public class TJCompressor {
|
||||||
|
|
||||||
|
private final static String NO_ASSOC_ERROR =
|
||||||
|
"No source image is associated with this instance";
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Create a TurboJPEG compressor instance.
|
||||||
|
*/
|
||||||
|
public TJCompressor() throws Exception {
|
||||||
|
init();
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Create a TurboJPEG compressor instance and associate the uncompressed
|
||||||
|
* source image stored in <code>srcImage</code> with the newly-created
|
||||||
|
* instance.
|
||||||
|
*
|
||||||
|
* @param srcImage see {@link #setSourceImage} for description
|
||||||
|
*
|
||||||
|
* @param width see {@link #setSourceImage} for description
|
||||||
|
*
|
||||||
|
* @param pitch see {@link #setSourceImage} for description
|
||||||
|
*
|
||||||
|
* @param height see {@link #setSourceImage} for description
|
||||||
|
*
|
||||||
|
* @param pixelFormat see {@link #setSourceImage} for description
|
||||||
|
*/
|
||||||
|
public TJCompressor(byte[] srcImage, int width, int pitch, int height,
|
||||||
|
int pixelFormat) throws Exception {
|
||||||
|
setSourceImage(srcImage, width, pitch, height, pixelFormat);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Associate an uncompressed source image with this compressor instance.
|
||||||
|
*
|
||||||
|
* @param srcImage image buffer containing RGB or grayscale pixels to be
|
||||||
|
* compressed
|
||||||
|
*
|
||||||
|
* @param width width (in pixels) of the source image
|
||||||
|
*
|
||||||
|
* @param pitch bytes per line of the source image. Normally, this should be
|
||||||
|
* <code>width * TJ.pixelSize(pixelFormat)</code> if the source image is
|
||||||
|
* unpadded, but you can use this parameter to, for instance, specify that
|
||||||
|
* the scanlines in the source image are padded to 4-byte boundaries, as is
|
||||||
|
* the case for Windows bitmaps. You can also be clever and use this
|
||||||
|
* parameter to skip lines, etc. Setting this parameter to 0 is the
|
||||||
|
* equivalent of setting it to <code>width *
|
||||||
|
* TJ.pixelSize(pixelFormat)</code>.
|
||||||
|
*
|
||||||
|
* @param height height (in pixels) of the source image
|
||||||
|
*
|
||||||
|
* @param pixelFormat pixel format of the source image (one of
|
||||||
|
* {@link TJ TJ.PF_*})
|
||||||
|
*/
|
||||||
|
public void setSourceImage(byte[] srcImage, int width, int pitch,
|
||||||
|
int height, int pixelFormat) throws Exception {
|
||||||
|
if(handle == 0) init();
|
||||||
|
if(srcImage == null || width < 1 || height < 1 || pitch < 0
|
||||||
|
|| pixelFormat < 0 || pixelFormat >= TJ.NUMPF)
|
||||||
|
throw new Exception("Invalid argument in setSourceImage()");
|
||||||
|
srcBuf = srcImage;
|
||||||
|
srcWidth = width;
|
||||||
|
if(pitch == 0) srcPitch = width * TJ.getPixelSize(pixelFormat);
|
||||||
|
else srcPitch = pitch;
|
||||||
|
srcHeight = height;
|
||||||
|
srcPixelFormat = pixelFormat;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Set the level of chrominance subsampling for subsequent compress/encode
|
||||||
|
* operations.
|
||||||
|
*
|
||||||
|
* @param newSubsamp the new level of chrominance subsampling (one of
|
||||||
|
* {@link TJ TJ.SAMP_*})
|
||||||
|
*/
|
||||||
|
public void setSubsamp(int newSubsamp) throws Exception {
|
||||||
|
if(newSubsamp < 0 || newSubsamp >= TJ.NUMSAMP)
|
||||||
|
throw new Exception("Invalid argument in setSubsamp()");
|
||||||
|
subsamp = newSubsamp;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Set the JPEG image quality level for subsequent compress operations.
|
||||||
|
*
|
||||||
|
* @param quality the new JPEG image quality level (1 to 100, 1 = worst,
|
||||||
|
* 100 = best)
|
||||||
|
*/
|
||||||
|
public void setJPEGQuality(int quality) throws Exception {
|
||||||
|
if(quality < 1 || quality > 100)
|
||||||
|
throw new Exception("Invalid argument in setJPEGQuality()");
|
||||||
|
jpegQuality = quality;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Compress the uncompressed source image associated with this compressor
|
||||||
|
* instance and output a JPEG image to the given destination buffer.
|
||||||
|
*
|
||||||
|
* @param dstBuf buffer that will receive the JPEG image. Use
|
||||||
|
* {@link TJ#bufSize} to determine the maximum size for this buffer based on
|
||||||
|
* the image width and height.
|
||||||
|
*
|
||||||
|
* @param flags the bitwise OR of one or more of {@link TJ TJ.FLAG_*}
|
||||||
|
*/
|
||||||
|
public void compress(byte[] dstBuf, int flags) throws Exception {
|
||||||
|
if(dstBuf == null || flags < 0)
|
||||||
|
throw new Exception("Invalid argument in compress()");
|
||||||
|
if(srcBuf == null) throw new Exception(NO_ASSOC_ERROR);
|
||||||
|
if(jpegQuality < 0) throw new Exception("JPEG Quality not set");
|
||||||
|
if(subsamp < 0) throw new Exception("Subsampling level not set");
|
||||||
|
compressedSize = compress(srcBuf, srcWidth, srcPitch,
|
||||||
|
srcHeight, srcPixelFormat, dstBuf, subsamp, jpegQuality, flags);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Compress the uncompressed source image associated with this compressor
|
||||||
|
* instance and return a buffer containing a JPEG image.
|
||||||
|
*
|
||||||
|
* @param flags the bitwise OR of one or more of {@link TJ TJ.FLAG_*}
|
||||||
|
*
|
||||||
|
* @return a buffer containing a JPEG image. The length of this buffer will
|
||||||
|
* not be equal to the size of the JPEG image. Use {@link
|
||||||
|
* #getCompressedSize} to obtain the size of the JPEG image.
|
||||||
|
*/
|
||||||
|
public byte[] compress(int flags) throws Exception {
|
||||||
|
if(srcWidth < 1 || srcHeight < 1)
|
||||||
|
throw new Exception(NO_ASSOC_ERROR);
|
||||||
|
byte[] buf = new byte[TJ.bufSize(srcWidth, srcHeight, subsamp)];
|
||||||
|
compress(buf, flags);
|
||||||
|
return buf;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Compress the uncompressed source image stored in <code>srcImage</code>
|
||||||
|
* and output a JPEG image to the given destination buffer.
|
||||||
|
*
|
||||||
|
* @param srcImage a <code>BufferedImage</code> instance containing RGB or
|
||||||
|
* grayscale pixels to be compressed
|
||||||
|
*
|
||||||
|
* @param dstBuf buffer that will receive the JPEG image. Use
|
||||||
|
* {@link TJ#bufSize} to determine the maximum size for this buffer based on
|
||||||
|
* the image width and height.
|
||||||
|
*
|
||||||
|
* @param flags the bitwise OR of one or more of {@link TJ TJ.FLAG_*}
|
||||||
|
*/
|
||||||
|
public void compress(BufferedImage srcImage, byte[] dstBuf, int flags)
|
||||||
|
throws Exception {
|
||||||
|
if(srcImage == null || dstBuf == null || flags < 0)
|
||||||
|
throw new Exception("Invalid argument in compress()");
|
||||||
|
int width = srcImage.getWidth();
|
||||||
|
int height = srcImage.getHeight();
|
||||||
|
int pixelFormat; boolean intPixels = false;
|
||||||
|
if(byteOrder == null)
|
||||||
|
byteOrder = ByteOrder.nativeOrder();
|
||||||
|
switch(srcImage.getType()) {
|
||||||
|
case BufferedImage.TYPE_3BYTE_BGR:
|
||||||
|
pixelFormat = TJ.PF_BGR; break;
|
||||||
|
case BufferedImage.TYPE_4BYTE_ABGR:
|
||||||
|
case BufferedImage.TYPE_4BYTE_ABGR_PRE:
|
||||||
|
pixelFormat = TJ.PF_XBGR; break;
|
||||||
|
case BufferedImage.TYPE_BYTE_GRAY:
|
||||||
|
pixelFormat = TJ.PF_GRAY; break;
|
||||||
|
case BufferedImage.TYPE_INT_BGR:
|
||||||
|
if(byteOrder == ByteOrder.BIG_ENDIAN)
|
||||||
|
pixelFormat = TJ.PF_XBGR;
|
||||||
|
else
|
||||||
|
pixelFormat = TJ.PF_RGBX;
|
||||||
|
intPixels = true; break;
|
||||||
|
case BufferedImage.TYPE_INT_RGB:
|
||||||
|
case BufferedImage.TYPE_INT_ARGB:
|
||||||
|
case BufferedImage.TYPE_INT_ARGB_PRE:
|
||||||
|
if(byteOrder == ByteOrder.BIG_ENDIAN)
|
||||||
|
pixelFormat = TJ.PF_XRGB;
|
||||||
|
else
|
||||||
|
pixelFormat = TJ.PF_BGRX;
|
||||||
|
intPixels = true; break;
|
||||||
|
default:
|
||||||
|
throw new Exception("Unsupported BufferedImage format");
|
||||||
|
}
|
||||||
|
WritableRaster wr = srcImage.getRaster();
|
||||||
|
if(jpegQuality < 0) throw new Exception("JPEG Quality not set");
|
||||||
|
if(subsamp < 0) throw new Exception("Subsampling level not set");
|
||||||
|
if(intPixels) {
|
||||||
|
SinglePixelPackedSampleModel sm =
|
||||||
|
(SinglePixelPackedSampleModel)srcImage.getSampleModel();
|
||||||
|
int pitch = sm.getScanlineStride();
|
||||||
|
DataBufferInt db = (DataBufferInt)wr.getDataBuffer();
|
||||||
|
int[] buf = db.getData();
|
||||||
|
compressedSize = compress(buf, width, pitch, height, pixelFormat, dstBuf,
|
||||||
|
subsamp, jpegQuality, flags);
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
ComponentSampleModel sm =
|
||||||
|
(ComponentSampleModel)srcImage.getSampleModel();
|
||||||
|
int pixelSize = sm.getPixelStride();
|
||||||
|
if(pixelSize != TJ.getPixelSize(pixelFormat))
|
||||||
|
throw new Exception("Inconsistency between pixel format and pixel size in BufferedImage");
|
||||||
|
int pitch = sm.getScanlineStride();
|
||||||
|
DataBufferByte db = (DataBufferByte)wr.getDataBuffer();
|
||||||
|
byte[] buf = db.getData();
|
||||||
|
compressedSize = compress(buf, width, pitch, height, pixelFormat, dstBuf,
|
||||||
|
subsamp, jpegQuality, flags);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Compress the uncompressed source image stored in <code>srcImage</code>
|
||||||
|
* and return a buffer containing a JPEG image.
|
||||||
|
*
|
||||||
|
* @param srcImage a <code>BufferedImage</code> instance containing RGB or
|
||||||
|
* grayscale pixels to be compressed
|
||||||
|
*
|
||||||
|
* @param flags the bitwise OR of one or more of {@link TJ TJ.FLAG_*}
|
||||||
|
*
|
||||||
|
* @return a buffer containing a JPEG image. The length of this buffer will
|
||||||
|
* not be equal to the size of the JPEG image. Use {@link
|
||||||
|
* #getCompressedSize} to obtain the size of the JPEG image.
|
||||||
|
*/
|
||||||
|
public byte[] compress(BufferedImage srcImage, int flags) throws Exception {
|
||||||
|
int width = srcImage.getWidth();
|
||||||
|
int height = srcImage.getHeight();
|
||||||
|
byte[] buf = new byte[TJ.bufSize(width, height, subsamp)];
|
||||||
|
compress(srcImage, buf, flags);
|
||||||
|
return buf;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Encode the uncompressed source image associated with this compressor
|
||||||
|
* instance and output a YUV planar image to the given destination buffer.
|
||||||
|
* This method uses the accelerated color conversion routines in
|
||||||
|
* TurboJPEG's underlying codec to produce a planar YUV image that is
|
||||||
|
* suitable for direct video display. Specifically, if the chrominance
|
||||||
|
* components are subsampled along the horizontal dimension, then the width
|
||||||
|
* of the luminance plane is padded to 2 in the output image (same goes for
|
||||||
|
* the height of the luminance plane, if the chrominance components are
|
||||||
|
* subsampled along the vertical dimension.) Also, each line of each plane
|
||||||
|
* in the output image is padded to 4 bytes. Although this will work with
|
||||||
|
* any subsampling option, it is really only useful in combination with
|
||||||
|
* {@link TJ#SAMP_420}, which produces an image compatible with the I420 (AKA
|
||||||
|
* "YUV420P") format.
|
||||||
|
*
|
||||||
|
* @param dstBuf buffer that will receive the YUV planar image. Use
|
||||||
|
* {@link TJ#bufSizeYUV} to determine the appropriate size for this buffer
|
||||||
|
* based on the image width, height, and level of chrominance subsampling.
|
||||||
|
*
|
||||||
|
* @param flags the bitwise OR of one or more of {@link TJ TJ.FLAG_*}
|
||||||
|
*/
|
||||||
|
public void encodeYUV(byte[] dstBuf, int flags) throws Exception {
|
||||||
|
if(dstBuf == null || flags < 0)
|
||||||
|
throw new Exception("Invalid argument in compress()");
|
||||||
|
if(srcBuf == null) throw new Exception(NO_ASSOC_ERROR);
|
||||||
|
if(subsamp < 0) throw new Exception("Subsampling level not set");
|
||||||
|
encodeYUV(srcBuf, srcWidth, srcPitch, srcHeight,
|
||||||
|
srcPixelFormat, dstBuf, subsamp, flags);
|
||||||
|
compressedSize = TJ.bufSizeYUV(srcWidth, srcHeight, subsamp);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Encode the uncompressed source image associated with this compressor
|
||||||
|
* instance and return a buffer containing a YUV planar image. See
|
||||||
|
* {@link #encodeYUV(byte[], int)} for more detail.
|
||||||
|
*
|
||||||
|
* @param flags the bitwise OR of one or more of {@link TJ TJ.FLAG_*}
|
||||||
|
*
|
||||||
|
* @return a buffer containing a YUV planar image
|
||||||
|
*/
|
||||||
|
public byte[] encodeYUV(int flags) throws Exception {
|
||||||
|
if(srcWidth < 1 || srcHeight < 1)
|
||||||
|
throw new Exception(NO_ASSOC_ERROR);
|
||||||
|
if(subsamp < 0) throw new Exception("Subsampling level not set");
|
||||||
|
byte[] buf = new byte[TJ.bufSizeYUV(srcWidth, srcHeight, subsamp)];
|
||||||
|
encodeYUV(buf, flags);
|
||||||
|
return buf;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Encode the uncompressed source image stored in <code>srcImage</code>
|
||||||
|
* and output a YUV planar image to the given destination buffer. See
|
||||||
|
* {@link #encodeYUV(byte[], int)} for more detail.
|
||||||
|
*
|
||||||
|
* @param srcImage a <code>BufferedImage</code> instance containing RGB or
|
||||||
|
* grayscale pixels to be encoded
|
||||||
|
*
|
||||||
|
* @param dstBuf buffer that will receive the YUV planar image. Use
|
||||||
|
* {@link TJ#bufSizeYUV} to determine the appropriate size for this buffer
|
||||||
|
* based on the image width, height, and level of chrominance subsampling.
|
||||||
|
*
|
||||||
|
* @param flags the bitwise OR of one or more of {@link TJ TJ.FLAG_*}
|
||||||
|
*/
|
||||||
|
public void encodeYUV(BufferedImage srcImage, byte[] dstBuf, int flags)
|
||||||
|
throws Exception {
|
||||||
|
if(srcImage == null || dstBuf == null || flags < 0)
|
||||||
|
throw new Exception("Invalid argument in encodeYUV()");
|
||||||
|
int width = srcImage.getWidth();
|
||||||
|
int height = srcImage.getHeight();
|
||||||
|
int pixelFormat; boolean intPixels = false;
|
||||||
|
if(byteOrder == null)
|
||||||
|
byteOrder = ByteOrder.nativeOrder();
|
||||||
|
switch(srcImage.getType()) {
|
||||||
|
case BufferedImage.TYPE_3BYTE_BGR:
|
||||||
|
pixelFormat = TJ.PF_BGR; break;
|
||||||
|
case BufferedImage.TYPE_4BYTE_ABGR:
|
||||||
|
case BufferedImage.TYPE_4BYTE_ABGR_PRE:
|
||||||
|
pixelFormat = TJ.PF_XBGR; break;
|
||||||
|
case BufferedImage.TYPE_BYTE_GRAY:
|
||||||
|
pixelFormat = TJ.PF_GRAY; break;
|
||||||
|
case BufferedImage.TYPE_INT_BGR:
|
||||||
|
if(byteOrder == ByteOrder.BIG_ENDIAN)
|
||||||
|
pixelFormat = TJ.PF_XBGR;
|
||||||
|
else
|
||||||
|
pixelFormat = TJ.PF_RGBX;
|
||||||
|
intPixels = true; break;
|
||||||
|
case BufferedImage.TYPE_INT_RGB:
|
||||||
|
case BufferedImage.TYPE_INT_ARGB:
|
||||||
|
case BufferedImage.TYPE_INT_ARGB_PRE:
|
||||||
|
if(byteOrder == ByteOrder.BIG_ENDIAN)
|
||||||
|
pixelFormat = TJ.PF_XRGB;
|
||||||
|
else
|
||||||
|
pixelFormat = TJ.PF_BGRX;
|
||||||
|
intPixels = true; break;
|
||||||
|
default:
|
||||||
|
throw new Exception("Unsupported BufferedImage format");
|
||||||
|
}
|
||||||
|
WritableRaster wr = srcImage.getRaster();
|
||||||
|
if(subsamp < 0) throw new Exception("Subsampling level not set");
|
||||||
|
if(intPixels) {
|
||||||
|
SinglePixelPackedSampleModel sm =
|
||||||
|
(SinglePixelPackedSampleModel)srcImage.getSampleModel();
|
||||||
|
int pitch = sm.getScanlineStride();
|
||||||
|
DataBufferInt db = (DataBufferInt)wr.getDataBuffer();
|
||||||
|
int[] buf = db.getData();
|
||||||
|
encodeYUV(buf, width, pitch, height, pixelFormat, dstBuf, subsamp,
|
||||||
|
flags);
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
ComponentSampleModel sm =
|
||||||
|
(ComponentSampleModel)srcImage.getSampleModel();
|
||||||
|
int pixelSize = sm.getPixelStride();
|
||||||
|
if(pixelSize != TJ.getPixelSize(pixelFormat))
|
||||||
|
throw new Exception("Inconsistency between pixel format and pixel size in BufferedImage");
|
||||||
|
int pitch = sm.getScanlineStride();
|
||||||
|
DataBufferByte db = (DataBufferByte)wr.getDataBuffer();
|
||||||
|
byte[] buf = db.getData();
|
||||||
|
encodeYUV(buf, width, pitch, height, pixelFormat, dstBuf, subsamp,
|
||||||
|
flags);
|
||||||
|
}
|
||||||
|
compressedSize = TJ.bufSizeYUV(width, height, subsamp);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Encode the uncompressed source image stored in <code>srcImage</code>
|
||||||
|
* and return a buffer containing a YUV planar image. See
|
||||||
|
* {@link #encodeYUV(byte[], int)} for more detail.
|
||||||
|
*
|
||||||
|
* @param srcImage a <code>BufferedImage</code> instance containing RGB or
|
||||||
|
* grayscale pixels to be encoded
|
||||||
|
*
|
||||||
|
* @param flags the bitwise OR of one or more of {@link TJ TJ.FLAG_*}
|
||||||
|
*
|
||||||
|
* @return a buffer containing a YUV planar image
|
||||||
|
*/
|
||||||
|
public byte[] encodeYUV(BufferedImage srcImage, int flags)
|
||||||
|
throws Exception {
|
||||||
|
if(subsamp < 0) throw new Exception("Subsampling level not set");
|
||||||
|
int width = srcImage.getWidth();
|
||||||
|
int height = srcImage.getHeight();
|
||||||
|
byte[] buf = new byte[TJ.bufSizeYUV(width, height, subsamp)];
|
||||||
|
encodeYUV(srcImage, buf, flags);
|
||||||
|
return buf;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns the size of the image (in bytes) generated by the most recent
|
||||||
|
* compress/encode operation.
|
||||||
|
*
|
||||||
|
* @return the size of the image (in bytes) generated by the most recent
|
||||||
|
* compress/encode operation
|
||||||
|
*/
|
||||||
|
public int getCompressedSize() {
|
||||||
|
return compressedSize;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Free the native structures associated with this compressor instance.
|
||||||
|
*/
|
||||||
|
public void close() throws Exception {
|
||||||
|
destroy();
|
||||||
|
}
|
||||||
|
|
||||||
|
protected void finalize() throws Throwable {
|
||||||
|
try {
|
||||||
|
close();
|
||||||
|
}
|
||||||
|
catch(Exception e) {}
|
||||||
|
finally {
|
||||||
|
super.finalize();
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
private native void init() throws Exception;
|
||||||
|
|
||||||
|
private native void destroy() throws Exception;
|
||||||
|
|
||||||
|
// JPEG size in bytes is returned
|
||||||
|
private native int compress(byte[] srcBuf, int width, int pitch,
|
||||||
|
int height, int pixelFormat, byte[] dstbuf, int jpegSubsamp, int jpegQual,
|
||||||
|
int flags) throws Exception;
|
||||||
|
|
||||||
|
private native int compress(int[] srcBuf, int width, int pitch,
|
||||||
|
int height, int pixelFormat, byte[] dstbuf, int jpegSubsamp, int jpegQual,
|
||||||
|
int flags) throws Exception;
|
||||||
|
|
||||||
|
private native void encodeYUV(byte[] srcBuf, int width, int pitch,
|
||||||
|
int height, int pixelFormat, byte[] dstbuf, int subsamp, int flags)
|
||||||
|
throws Exception;
|
||||||
|
|
||||||
|
private native void encodeYUV(int[] srcBuf, int width, int pitch,
|
||||||
|
int height, int pixelFormat, byte[] dstbuf, int subsamp, int flags)
|
||||||
|
throws Exception;
|
||||||
|
|
||||||
|
static {
|
||||||
|
TJLoader.load();
|
||||||
|
}
|
||||||
|
|
||||||
|
private long handle = 0;
|
||||||
|
private byte[] srcBuf = null;
|
||||||
|
private int srcWidth = 0;
|
||||||
|
private int srcHeight = 0;
|
||||||
|
private int srcPitch = 0;
|
||||||
|
private int srcPixelFormat = -1;
|
||||||
|
private int subsamp = -1;
|
||||||
|
private int jpegQuality = -1;
|
||||||
|
private int compressedSize = 0;
|
||||||
|
private ByteOrder byteOrder = null;
|
||||||
|
};
|
||||||