Skip to content
Snippets Groups Projects
Commit b13f357d authored by tpylak's avatar tpylak
Browse files

LMS-2502 image transformations: server side + client URLs

SVN: 22923
parent a9f2cd96
No related branches found
No related tags found
No related merge requests found
...@@ -35,22 +35,6 @@ public class ReadParams implements IReadParams ...@@ -35,22 +35,6 @@ public class ReadParams implements IReadParams
*/ */
private Integer intensityRescalingChannel; private Integer intensityRescalingChannel;
/**
* only supported from JAI readers.
*/
private boolean allow16BitGrayscaleModel;
public boolean isAllow16BitGrayscaleModel()
{
return allow16BitGrayscaleModel;
}
public void setAllow16BitGrayscaleModel(boolean allow16BitGrayscaleModel)
{
this.allow16BitGrayscaleModel = allow16BitGrayscaleModel;
}
public Integer getIntensityRescalingChannel() public Integer getIntensityRescalingChannel()
{ {
return intensityRescalingChannel; return intensityRescalingChannel;
......
...@@ -31,7 +31,6 @@ import ch.systemsx.cisd.base.io.IRandomAccessFile; ...@@ -31,7 +31,6 @@ import ch.systemsx.cisd.base.io.IRandomAccessFile;
import ch.systemsx.cisd.imagereaders.IImageReader; import ch.systemsx.cisd.imagereaders.IImageReader;
import ch.systemsx.cisd.imagereaders.IReadParams; import ch.systemsx.cisd.imagereaders.IReadParams;
import ch.systemsx.cisd.imagereaders.ImageID; import ch.systemsx.cisd.imagereaders.ImageID;
import ch.systemsx.cisd.imagereaders.ReadParams;
/** /**
* JAI {@link IImageReader} for TIFF files. * JAI {@link IImageReader} for TIFF files.
...@@ -46,24 +45,16 @@ class TiffImageReader extends DefaultImageReader ...@@ -46,24 +45,16 @@ class TiffImageReader extends DefaultImageReader
super(libraryName, readerName); super(libraryName, readerName);
} }
@Override @Override
public BufferedImage readImage(IRandomAccessFile handle, ImageID imageID, IReadParams params) public BufferedImage readImage(IRandomAccessFile handle, ImageID imageID, IReadParams params)
throws IOExceptionUnchecked throws IOExceptionUnchecked
{ {
boolean allow16BitGrayscaleModel = false;
ReadParams readParams = (ReadParams) params;
if (readParams != null)
{
allow16BitGrayscaleModel = readParams.isAllow16BitGrayscaleModel();
}
try try
{ {
InputStream input = new AdapterIInputStreamToInputStream(handle); InputStream input = new AdapterIInputStreamToInputStream(handle);
ImageDecoder decoder = ImageCodec.createImageDecoder(getName(), input, null); ImageDecoder decoder = ImageCodec.createImageDecoder(getName(), input, null);
Raster raster = decoder.decodeAsRaster(imageID.getTimeSeriesIndex()); Raster raster = decoder.decodeAsRaster(imageID.getTimeSeriesIndex());
int bufferType = findBestImageBufferType(raster, allow16BitGrayscaleModel); int bufferType = findBestImageBufferType(raster);
BufferedImage image = BufferedImage image =
new BufferedImage(raster.getWidth(), raster.getHeight(), bufferType); new BufferedImage(raster.getWidth(), raster.getHeight(), bufferType);
image.setData(raster); image.setData(raster);
...@@ -74,12 +65,23 @@ class TiffImageReader extends DefaultImageReader ...@@ -74,12 +65,23 @@ class TiffImageReader extends DefaultImageReader
} }
} }
private int findBestImageBufferType(Raster raster, boolean allow16BitGrayscaleModel) private int findBestImageBufferType(Raster raster)
{ {
boolean is16BitGrayscale = boolean isGrayscale = raster.getNumBands() == 1;
raster.getNumBands() == 1 && raster.getSampleModel().getSampleSize()[0] == 16; int numberOfBits = raster.getSampleModel().getSampleSize()[0];
return is16BitGrayscale && allow16BitGrayscaleModel ? BufferedImage.TYPE_USHORT_GRAY if (isGrayscale)
: BufferedImage.TYPE_INT_RGB; {
if (numberOfBits <= 8)
{
return BufferedImage.TYPE_BYTE_GRAY;
} else
{
return BufferedImage.TYPE_USHORT_GRAY;
}
} else
{
return BufferedImage.TYPE_INT_RGB;
}
} }
} }
\ No newline at end of file
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment