From 0c008482e9faf8c3e80d02619cf1e4d91c6e282f Mon Sep 17 00:00:00 2001 From: jakubs <jakubs> Date: Wed, 23 Jan 2013 15:46:58 +0000 Subject: [PATCH] SP-452 BIS-297 allow setting color depth in a dropbox SVN: 28167 --- .../openbis/dss/etl/PlateStorageProcessor.java | 7 ++++--- .../dss/etl/dto/api/SimpleImageDataConfig.java | 13 +++++++++++++ .../dto/api/impl/ImageDataSetInformation.java | 16 ++++++++++++++++ .../jython/v1/SimpleImageDataSetRegistrator.java | 2 ++ .../data-set-handler.py | 1 + .../data-set-handler.py | 1 + .../TransformedImageRepresentationsTest.java | 1 + 7 files changed, 38 insertions(+), 3 deletions(-) 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 8229588f587..9b384f3742a 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 e39c0e858bf..acdabb8f08a 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 8c5d0b84252..639dfdce61a 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 766a48c7533..79406de96f3 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 2785367e3bd..e6d978e6909 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 2a26deec724..47d50b82a2b 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 4a0bb982600..7b8a13e0a2e 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", -- GitLab