diff --git a/screening/source/java/ch/systemsx/cisd/openbis/dss/etl/PlateStorageProcessor.java b/screening/source/java/ch/systemsx/cisd/openbis/dss/etl/PlateStorageProcessor.java index 8229588f587c603b9dff3a6466612fb02ff6bb45..9b384f3742acee09b4c5fc870ed611909c3e8334 100644 --- a/screening/source/java/ch/systemsx/cisd/openbis/dss/etl/PlateStorageProcessor.java +++ b/screening/source/java/ch/systemsx/cisd/openbis/dss/etl/PlateStorageProcessor.java @@ -209,12 +209,14 @@ public final class PlateStorageProcessor extends AbstractImageStorageProcessor Integer width = null; Integer height = null; boolean original = true; + Integer colorDepth = null; if (originalDataset instanceof ImageDataSetInformation) { ImageDataSetInformation imageDataSet = (ImageDataSetInformation) originalDataset; width = nullifyIfZero(imageDataSet.getMaximumImageWidth()); height = nullifyIfZero(imageDataSet.getMaximumImageHeight()); original = imageDataSet.getRegisterAsOverviewImageDataSet() == false; + colorDepth = imageDataSet.getColorDepth(); } if (original) @@ -222,7 +224,7 @@ public final class PlateStorageProcessor extends AbstractImageStorageProcessor @SuppressWarnings("unchecked") ImageZoomLevel originalZoomLevel = new ImageZoomLevel(originalDataset.getDataSetCode(), original, - StringUtils.EMPTY_STRING, width, height, null, null, + StringUtils.EMPTY_STRING, width, height, colorDepth, null, Collections.EMPTY_MAP); zoomLevels.add(originalZoomLevel); } @@ -246,9 +248,8 @@ public final class PlateStorageProcessor extends AbstractImageStorageProcessor } String rootPath = thumbnailsInfosOrNull.getRootPath(permId); - // TODO add color depth ImageZoomLevel thumbnailZoomLevel = - new ImageZoomLevel(permId, false, rootPath, width, height, null, + new ImageZoomLevel(permId, false, rootPath, width, height, colorDepth, fileTypeString, thumbnailsInfosOrNull.getTransformations(permId)); zoomLevels.add(thumbnailZoomLevel); diff --git a/screening/source/java/ch/systemsx/cisd/openbis/dss/etl/dto/api/SimpleImageDataConfig.java b/screening/source/java/ch/systemsx/cisd/openbis/dss/etl/dto/api/SimpleImageDataConfig.java index e39c0e858bfbc83ae9afcda6fe847de4ee66522c..acdabb8f08a64458c6afa841099b99d075fb7849 100644 --- a/screening/source/java/ch/systemsx/cisd/openbis/dss/etl/dto/api/SimpleImageDataConfig.java +++ b/screening/source/java/ch/systemsx/cisd/openbis/dss/etl/dto/api/SimpleImageDataConfig.java @@ -250,6 +250,8 @@ abstract public class SimpleImageDataConfig private List<ChannelColorComponent> channelColorComponentsOrNull; + private Integer colorDepth; + // --- getters & setters ---------------------------------------------- public ImageStorageConfiguraton getImageStorageConfiguration() @@ -985,4 +987,15 @@ abstract public class SimpleImageDataConfig { return this.thumbnailsFileFormat; } + + public Integer getColorDepth() + { + return colorDepth; + } + + public void setColorDepth(Integer colorDepth) + { + this.colorDepth = colorDepth; + } + } diff --git a/screening/source/java/ch/systemsx/cisd/openbis/dss/etl/dto/api/impl/ImageDataSetInformation.java b/screening/source/java/ch/systemsx/cisd/openbis/dss/etl/dto/api/impl/ImageDataSetInformation.java index 8c5d0b842526be8702980bb36c32eabfe2d83789..639dfdce61a1d9b7bd9d1a2d13faf3c0e5c3d700 100644 --- a/screening/source/java/ch/systemsx/cisd/openbis/dss/etl/dto/api/impl/ImageDataSetInformation.java +++ b/screening/source/java/ch/systemsx/cisd/openbis/dss/etl/dto/api/impl/ImageDataSetInformation.java @@ -55,6 +55,8 @@ public class ImageDataSetInformation extends BasicDataSetInformation private int maximumImageHeight; + private Integer colorDepth; + public File getIncomingDirectory() { return incomingDirectory; @@ -162,6 +164,16 @@ public class ImageDataSetInformation extends BasicDataSetInformation generateOverviewImagesFromRegisteredImages; } + public Integer getColorDepth() + { + return colorDepth; + } + + public void setColorDepth(Integer colorDepth) + { + this.colorDepth = colorDepth; + } + @Override public String toString() { @@ -174,6 +186,10 @@ public class ImageDataSetInformation extends BasicDataSetInformation appendNameAndObject(buffer, "bounding box", maximumImageWidth + "x" + maximumImageHeight); } + if (getColorDepth() != null) + { + appendNameAndObject(buffer, "color depth", this.getColorDepth()); + } if (getThumbnailsInfos() != null) { appendNameAndObject(buffer, "thumbnail", getThumbnailsInfos()); diff --git a/screening/source/java/ch/systemsx/cisd/openbis/dss/etl/jython/v1/SimpleImageDataSetRegistrator.java b/screening/source/java/ch/systemsx/cisd/openbis/dss/etl/jython/v1/SimpleImageDataSetRegistrator.java index 766a48c7533e8a5208bf90c8cae748779d673735..79406de96f338c006d87f5c24cc769750b87f6a8 100644 --- a/screening/source/java/ch/systemsx/cisd/openbis/dss/etl/jython/v1/SimpleImageDataSetRegistrator.java +++ b/screening/source/java/ch/systemsx/cisd/openbis/dss/etl/jython/v1/SimpleImageDataSetRegistrator.java @@ -201,6 +201,8 @@ public class SimpleImageDataSetRegistrator } } + imageDataset.setColorDepth(simpleImageConfig.getColorDepth()); + setRegistrationDetails(registrationDetails, imageDataset); return registrationDetails; } diff --git a/screening/sourceTest/core-plugins/TransformedImageRepresentationsTest/1/dss/drop-boxes/TransformedImageRepresentationsTest-drop-box/data-set-handler.py b/screening/sourceTest/core-plugins/TransformedImageRepresentationsTest/1/dss/drop-boxes/TransformedImageRepresentationsTest-drop-box/data-set-handler.py index 2785367e3bdd5ae9548bfd84caa58ecd5c49ac43..e6d978e6909e91481a4685637d74902e70d52f41 100644 --- a/screening/sourceTest/core-plugins/TransformedImageRepresentationsTest/1/dss/drop-boxes/TransformedImageRepresentationsTest-drop-box/data-set-handler.py +++ b/screening/sourceTest/core-plugins/TransformedImageRepresentationsTest/1/dss/drop-boxes/TransformedImageRepresentationsTest-drop-box/data-set-handler.py @@ -130,6 +130,7 @@ if incoming.isDirectory(): imageDataset = ImageDataSetFlexible() imageDataset.setRawImageDatasetType() imageDataset.setPlate("TEST", 'TRANSFORMED-THUMB-PLATE') + imageDataset.setColorDepth(8) transforms = getAvailableChannelTransformations() # We want thumbnails generarted for the following resolutions, and they should be JPEG and have the # Radial Blur transform applied diff --git a/screening/sourceTest/core-plugins/TransformedImageRepresentationsV2Test/1/dss/drop-boxes/TransformedImageRepresentationsV2Test-drop-box/data-set-handler.py b/screening/sourceTest/core-plugins/TransformedImageRepresentationsV2Test/1/dss/drop-boxes/TransformedImageRepresentationsV2Test-drop-box/data-set-handler.py index 2a26deec724dabc7793b28de62019679b9bde88a..47d50b82a2b662525d622e20a8bc6dbd269fa25b 100644 --- a/screening/sourceTest/core-plugins/TransformedImageRepresentationsV2Test/1/dss/drop-boxes/TransformedImageRepresentationsV2Test-drop-box/data-set-handler.py +++ b/screening/sourceTest/core-plugins/TransformedImageRepresentationsV2Test/1/dss/drop-boxes/TransformedImageRepresentationsV2Test-drop-box/data-set-handler.py @@ -129,6 +129,7 @@ def process(transaction): imageDataset = ImageDataSetFlexible() imageDataset.setRawImageDatasetType() imageDataset.setPlate("TEST", 'TRANSFORMED-THUMB-PLATE') + imageDataset.setColorDepth(8) transforms = getAvailableChannelTransformations() # We want thumbnails generarted for the following resolutions, and they should be JPEG and have the # Radial Blur transform applied diff --git a/screening/sourceTest/java/ch/systemsx/cisd/openbis/screening/systemtests/TransformedImageRepresentationsTest.java b/screening/sourceTest/java/ch/systemsx/cisd/openbis/screening/systemtests/TransformedImageRepresentationsTest.java index 4a0bb982600a510b616ee07345917404b6826b73..7b8a13e0a2e539fbf050e91d209778be34bea495 100644 --- a/screening/sourceTest/java/ch/systemsx/cisd/openbis/screening/systemtests/TransformedImageRepresentationsTest.java +++ b/screening/sourceTest/java/ch/systemsx/cisd/openbis/screening/systemtests/TransformedImageRepresentationsTest.java @@ -114,6 +114,7 @@ public class TransformedImageRepresentationsTest extends AbstractScreeningSystem new Dimension(256, 256), new Dimension(512, 512))); for (ImageRepresentationFormat format : formats) { + assertEquals(Integer.valueOf(8), format.getColorDepth()); Dimension resolution = new Dimension(format.getWidth(), format.getHeight()); // Make sure the resolution we specified was found assertTrue("" + resolution + " was not expected",