public class LogLuvConversion
extends java.lang.Object
This implementation is based on the file tif_luv.c
which
is part of the TIFF library libtiff.
The original implementation was written by Greg W. Larson.
Learn more about the color type and its encoding on Greg's page LogLuv Encoding for TIFF Images.
Modifier and Type | Field and Description |
---|---|
private static double |
M_LN2 |
private static short[] |
NCUM |
private static double |
U_NEU |
private static double[] |
USTART |
private static int |
UV_NDIVS |
private static int |
UV_NVS |
private static float |
UV_SQSIZ |
private static float |
UV_VSTART |
private static double |
UVSCALE |
private static double |
V_NEU |
Modifier | Constructor and Description |
---|---|
private |
LogLuvConversion() |
Modifier and Type | Method and Description |
---|---|
private static byte |
convertDoubleToByte(double d) |
static double |
convertLogL10toY(int p10)
Converts an unsigned 10 bit value (the argument must lie in the
interval 0 to 1023) to a
double luminance
(brightness) value between 0.0 and 1.0 . |
static void |
convertLogL16toGray8(byte[] logl,
byte[] gray,
int num)
Converts a number of 16 bit LogL samples to 8 bit grayscale samples.
|
static double |
convertLogL16toY(int p16)
Converts a signed 16 bit value (the argument must lie in the
interval -32768 to 32767) to a
double luminance
(brightness) value between 0.0 and 1.0 . |
static void |
convertLogLuv24InterleavedtoRGB24Planar(byte[] logluv,
byte[] red,
byte[] green,
byte[] blue,
int num)
Converts a number of 24 bit LogLuv pixels to 24 bit RGB pixels.
|
static void |
convertLogLuv32InterleavedtoRGB24Planar(byte[] logluv,
byte[] red,
byte[] green,
byte[] blue,
int num)
Converts a number of 32 bit LogLuv pixels to 24 bit RGB pixels.
|
private static final double M_LN2
private static final double UVSCALE
private static final float UV_SQSIZ
private static final int UV_NDIVS
private static final float UV_VSTART
private static final int UV_NVS
private static final double U_NEU
private static final double V_NEU
private static final double[] USTART
private static final short[] NCUM
public static double convertLogL10toY(int p10)
double
luminance
(brightness) value between 0.0
and 1.0
.
This conversion is needed by both LogLuv to XYZ and LogL to grayscale.p10
- input LogL valuepublic static double convertLogL16toY(int p16)
double
luminance
(brightness) value between 0.0
and 1.0
.
This conversion is needed by both LogLuv to XYZ and LogL to grayscale.p16
- input LogL valueprivate static byte convertDoubleToByte(double d)
public static void convertLogLuv24InterleavedtoRGB24Planar(byte[] logluv, byte[] red, byte[] green, byte[] blue, int num)
logluv
byte array.
The first byte and the top two bits of the second are the LogL value, the remaining
14 bits are an index that encodes u and v.logluv
- byte array with LogLuv data, must be at least num * 3 bytes largered
- the byte samples for the red channel will be written to this arraygreen
- the byte samples for the green channel will be written to this arrayblue
- the byte samples for the blue channel will be written to this arraynum
- number of pixels to be convertedpublic static void convertLogLuv32InterleavedtoRGB24Planar(byte[] logluv, byte[] red, byte[] green, byte[] blue, int num)
logluv
byte array.
The first two bytes represent the LogL value (most significant bytefirst), followed
by the u value and then the v value.logluv
- byte array with LogLuv data, must be at least num * 4 bytes largered
- the byte samples for the red channel will be written to this arraygreen
- the byte samples for the green channel will be written to this arrayblue
- the byte samples for the blue channel will be written to this arraynum
- number of pixels to be convertedpublic static void convertLogL16toGray8(byte[] logl, byte[] gray, int num)
logl
- byte array with LogL samples, each 16 bit sample is stored as
two consecutive bytes in order most-significant-byte least-significant-byte (network byte order);
the array must be at least num * 2 entries largegray
- the byte array to which the converted samples will be writtennum
- the number of samples to be converted