public final class ColorSpaceTransform extends Object
Rational
values in row-major order.
This matrix maps a transform from one color space to another. For the particular color space source and target, see the appropriate camera metadata documentation for the key that provides this value.
CameraMetadata
Constructor and Description |
---|
ColorSpaceTransform(int[] elements)
Create a new immutable
ColorSpaceTransform instance from an int array. |
ColorSpaceTransform(Rational[] elements)
Create a new immutable
ColorSpaceTransform instance from a Rational array. |
Modifier and Type | Method and Description |
---|---|
void |
copyElements(int[] destination,
int offset)
Copy the
Rational elements in row-major order from this matrix into the destination. |
void |
copyElements(Rational[] destination,
int offset)
Copy the
Rational elements in row-major order from this matrix into the destination. |
boolean |
equals(Object obj)
Check if this
ColorSpaceTransform is equal to another ColorSpaceTransform . |
Rational |
getElement(int column,
int row)
Get an element of this matrix by its row and column.
|
int |
hashCode()
Returns a hash code value for the object.
|
String |
toString()
Return the color space transform as a string representation.
|
public ColorSpaceTransform(Rational[] elements)
ColorSpaceTransform
instance from a Rational
array.
The elements must be stored in a row-major order.
elements
- An array of 9
elementsIllegalArgumentException
- if the count of elements
is not 9
NullPointerException
- if elements
or any sub-element is null
public ColorSpaceTransform(int[] elements)
ColorSpaceTransform
instance from an int
array.
The elements must be stored in a row-major order. Each rational is stored
contiguously as a (numerator, denominator)
pair.
In particular:
int[] elements = new int[
N11, D11, N12, D12, N13, D13,
N21, D21, N22, D22, N23, D23,
N31, D31, N32, D32, N33, D33
];
new ColorSpaceTransform(elements)
where Nij
and Dij
is the numerator and denominator for row i
and
column j
.elements
- An array of 18
elementsIllegalArgumentException
- if the count of elements
is not 18
NullPointerException
- if elements
is null
public Rational getElement(int column, int row)
The rows must be within the range [0, 3), and the column must be within the range [0, 3).
null
)IllegalArgumentException
- if column or row was out of rangepublic void copyElements(Rational[] destination, int offset)
Rational
elements in row-major order from this matrix into the destination.destination
- an array big enough to hold at least 9
elements after the
offset
offset
- a non-negative offset into the arrayNullPointerException
- If destination
was null
ArrayIndexOutOfBoundsException
- If there's not enough room to write the elements at the specified destination and
offset.public void copyElements(int[] destination, int offset)
Rational
elements in row-major order from this matrix into the destination.
Each element is stored as a contiguous rational packed as a
(numerator, denominator)
pair of ints, identical to the
constructor
.
destination
- an array big enough to hold at least 18
elements after the
offset
offset
- a non-negative offset into the arrayNullPointerException
- If destination
was null
ArrayIndexOutOfBoundsException
- If there's not enough room to write the elements at the specified destination and
offset.ColorSpaceTransform(int[])
public boolean equals(Object obj)
ColorSpaceTransform
is equal to another ColorSpaceTransform
.
Two color space transforms are equal if and only if all of their elements are
equal
.
equals
in class Object
obj
- the reference object with which to compare.true
if the objects were equal, false
otherwiseObject.hashCode()
,
HashMap
public int hashCode()
HashMap
.
The general contract of hashCode
is:
hashCode
method
must consistently return the same integer, provided no information
used in equals
comparisons on the object is modified.
This integer need not remain consistent from one execution of an
application to another execution of the same application.
equals(Object)
method, then calling the hashCode
method on each of
the two objects must produce the same integer result.
Object.equals(java.lang.Object)
method, then calling the hashCode
method on each of the
two objects must produce distinct integer results. However, the
programmer should be aware that producing distinct integer results
for unequal objects may improve the performance of hash tables.
As much as is reasonably practical, the hashCode method defined by
class Object
does return distinct integers for distinct
objects. (This is typically implemented by converting the internal
address of the object into an integer, but this implementation
technique is not required by the
JavaTM programming language.)
hashCode
in class Object
Object.equals(java.lang.Object)
,
System.identityHashCode(java.lang.Object)
public String toString()
Example:
"ColorSpaceTransform([1/1, 0/1, 0/1], [0/1, 1/1, 0/1], [0/1, 0/1, 1/1])"
is an
identity transform. Elements are printed in row major order.