mirror of
https://github.com/haraldk/TwelveMonkeys.git
synced 2025-08-04 20:15:28 -04:00
Disable clamping when reading raw tiff data
This commit is contained in:
parent
9c2d3058fd
commit
1226375ba6
@ -930,6 +930,10 @@ public final class TIFFImageReader extends ImageReaderBase {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public BufferedImage read(int imageIndex, ImageReadParam param) throws IOException {
|
public BufferedImage read(int imageIndex, ImageReadParam param) throws IOException {
|
||||||
|
return read(imageIndex, param, true);
|
||||||
|
}
|
||||||
|
|
||||||
|
private BufferedImage read(int imageIndex, ImageReadParam param, boolean clamped) throws IOException {
|
||||||
readIFD(imageIndex);
|
readIFD(imageIndex);
|
||||||
|
|
||||||
int width = getWidth(imageIndex);
|
int width = getWidth(imageIndex);
|
||||||
@ -1144,7 +1148,7 @@ public final class TIFFImageReader extends ImageReaderBase {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Read a full strip/tile
|
// Read a full strip/tile
|
||||||
readStripTileData(clippedRow, srcRegion, xSub, ySub, b, samplesInTile, interpretation, destRaster, col, srcRow, colsInTile, rowsInTile, input);
|
readStripTileData(clippedRow, srcRegion, xSub, ySub, b, samplesInTile, interpretation, destRaster, col, srcRow, colsInTile, rowsInTile, input, clamped);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1920,7 +1924,7 @@ public final class TIFFImageReader extends ImageReaderBase {
|
|||||||
private void readStripTileData(final Raster tileRowRaster, final Rectangle srcRegion, final int xSub, final int ySub,
|
private void readStripTileData(final Raster tileRowRaster, final Rectangle srcRegion, final int xSub, final int ySub,
|
||||||
final int band, final int numBands, final int interpretation,
|
final int band, final int numBands, final int interpretation,
|
||||||
final WritableRaster raster, final int startCol, final int startRow,
|
final WritableRaster raster, final int startCol, final int startRow,
|
||||||
final int colsInTile, final int rowsInTile, final ImageInputStream input)
|
final int colsInTile, final int rowsInTile, final ImageInputStream input, final boolean clamped)
|
||||||
throws IOException {
|
throws IOException {
|
||||||
|
|
||||||
DataBuffer dataBuffer = tileRowRaster.getDataBuffer();
|
DataBuffer dataBuffer = tileRowRaster.getDataBuffer();
|
||||||
@ -2043,7 +2047,7 @@ public final class TIFFImageReader extends ImageReaderBase {
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (row >= srcRegion.y) {
|
if (row >= srcRegion.y) {
|
||||||
normalizeColor(interpretation, numBands, rowDataFloat);
|
normalizeColor(interpretation, numBands, rowDataFloat, clamped);
|
||||||
|
|
||||||
// Subsample horizontal
|
// Subsample horizontal
|
||||||
if (xSub != 1) {
|
if (xSub != 1) {
|
||||||
@ -2353,9 +2357,11 @@ public final class TIFFImageReader extends ImageReaderBase {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private void normalizeColor(int photometricInterpretation, @SuppressWarnings("unused") int numBands, float[] data) {
|
private void normalizeColor(int photometricInterpretation, @SuppressWarnings("unused") int numBands, float[] data, boolean clamped) {
|
||||||
// TODO: Allow param to decide tone mapping strategy, like in the HDRImageReader
|
// TODO: Allow param to decide tone mapping strategy, like in the HDRImageReader
|
||||||
|
if (clamped) {
|
||||||
clamp(data);
|
clamp(data);
|
||||||
|
}
|
||||||
|
|
||||||
switch (photometricInterpretation) {
|
switch (photometricInterpretation) {
|
||||||
case TIFFBaseline.PHOTOMETRIC_WHITE_IS_ZERO:
|
case TIFFBaseline.PHOTOMETRIC_WHITE_IS_ZERO:
|
||||||
@ -2605,7 +2611,7 @@ public final class TIFFImageReader extends ImageReaderBase {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Raster readRaster(int imageIndex, ImageReadParam param) throws IOException {
|
public Raster readRaster(int imageIndex, ImageReadParam param) throws IOException {
|
||||||
return read(imageIndex, param).getData();
|
return read(imageIndex, param, false).getData();
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Tiling support
|
/// Tiling support
|
||||||
|
Loading…
x
Reference in New Issue
Block a user