From 75014b9c34e29bb27a18bb2900657d69eae66586 Mon Sep 17 00:00:00 2001 From: Ralf Eichinger Date: Thu, 14 May 2020 15:44:23 +0200 Subject: [PATCH] Add check methods for alpha channel and transparency (inactive by default and without further transformation consequences, yet) --- .gitignore | 3 +- .../image/business/ImageServiceImpl.java | 72 +++++++++++++++++- .../image/business/ImageServiceImplTest.java | 46 +++++++++++ .../resources/test-alpha-transparency-no.png | Bin 0 -> 50284 bytes .../resources/test-alpha-transparency-yes.png | Bin 0 -> 4790 bytes 5 files changed, 116 insertions(+), 5 deletions(-) create mode 100644 src/test/java/de/digitalcollections/iiif/hymir/image/business/ImageServiceImplTest.java create mode 100644 src/test/resources/test-alpha-transparency-no.png create mode 100644 src/test/resources/test-alpha-transparency-yes.png diff --git a/.gitignore b/.gitignore index 69d4f1d3..f8468377 100644 --- a/.gitignore +++ b/.gitignore @@ -15,4 +15,5 @@ libjpeg-turbo/config.sub libjpeg-turbo/configure libjpeg-turbo/java/Makefile.in libjpeg-turbo/ltmain.sh -/nb-configuration.xml \ No newline at end of file +/nb-configuration.xml +/nbproject/ \ No newline at end of file diff --git a/src/main/java/de/digitalcollections/iiif/hymir/image/business/ImageServiceImpl.java b/src/main/java/de/digitalcollections/iiif/hymir/image/business/ImageServiceImpl.java index 1756648c..5a989a92 100644 --- a/src/main/java/de/digitalcollections/iiif/hymir/image/business/ImageServiceImpl.java +++ b/src/main/java/de/digitalcollections/iiif/hymir/image/business/ImageServiceImpl.java @@ -35,12 +35,15 @@ import javax.imageio.stream.ImageInputStream; import javax.imageio.stream.ImageOutputStream; import org.imgscalr.Scalr; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Service; @Service public class ImageServiceImpl implements ImageService { + private static final Logger LOGGER = LoggerFactory.getLogger(ImageServiceImpl.class); private final ImageSecurityService imageSecurityService; private final ResolvedFileResourceServiceImpl fileResourceService; @@ -60,6 +63,12 @@ public class ImageServiceImpl implements ImageService { @Value("${custom.iiif.image.maxHeight:65500}") private int maxHeight; + @Value("${custom.iiif.image.checkAlphaChannel:false}") + private boolean checkAlphaChannel; + + @Value("${custom.iiif.image.checkTransparency:false}") + private boolean checkTransparency; + private static class DecodedImage { /** Decoded image * */ @@ -372,12 +381,27 @@ public void processImage( String identifier, ImageApiSelector selector, ImageApiProfile profile, OutputStream os) throws InvalidParametersException, UnsupportedOperationException, UnsupportedFormatException, ResourceNotFoundException, IOException { - DecodedImage img = readImage(identifier, selector, profile); + DecodedImage decodedImage = readImage(identifier, selector, profile); + + boolean containsAlphaChannel = false; + if (checkAlphaChannel) { + containsAlphaChannel = containsAlphaChannel(decodedImage.img); + LOGGER.debug("image contains alpha channel: " + containsAlphaChannel); + // no further consequences in handling image with alpha channel implemented, yet + } + + boolean containsTransparency = false; + if (checkTransparency) { + containsTransparency = containsTransparency(decodedImage.img); + LOGGER.debug("image contains transparency: " + containsTransparency); + // no further consequences in handling image with transparency implemented, yet + } + BufferedImage outImg = transformImage( - img.img, - img.targetSize, - img.rotation, + decodedImage.img, + decodedImage.targetSize, + decodedImage.rotation, selector.getRotation().isMirror(), selector.getQuality()); @@ -407,6 +431,46 @@ public Instant getImageModificationDate(String identifier) throws ResourceNotFou } } + /** + * @param image buffered image to check for alpha channel + * @return true, if image contains alpha channel + * @see Javadoc + * ColorModel + */ + public boolean containsAlphaChannel(BufferedImage image) { + return image.getColorModel().hasAlpha(); + } + + /** + * @param image buffered image to check for transparent pixels + * @return true, if image contains transparent pixels + */ + public boolean containsTransparency(BufferedImage image) { + for (int i = 0; i < image.getHeight(); i++) { + for (int j = 0; j < image.getWidth(); j++) { + if (isTransparent(image, j, i)) { + return true; + } + } + } + return false; + } + + /** + * @param image buffered image to check for transparent pixels + * @param x x coordinate of pixel to check + * @param y y coordinate of pixel to check + * @return + * @see Javadoc + * BufferedImage + */ + public boolean isTransparent(BufferedImage image, int x, int y) { + int pixel = image.getRGB(x, y); + return (pixel >> 24) == 0x00; + } + public String getLogoUrl() { return logoUrl; } diff --git a/src/test/java/de/digitalcollections/iiif/hymir/image/business/ImageServiceImplTest.java b/src/test/java/de/digitalcollections/iiif/hymir/image/business/ImageServiceImplTest.java new file mode 100644 index 00000000..3cd3e28c --- /dev/null +++ b/src/test/java/de/digitalcollections/iiif/hymir/image/business/ImageServiceImplTest.java @@ -0,0 +1,46 @@ +package de.digitalcollections.iiif.hymir.image.business; + +import static org.junit.jupiter.api.Assertions.*; + +import java.awt.image.BufferedImage; +import java.io.File; +import java.io.FileNotFoundException; +import java.io.IOException; +import javax.imageio.ImageIO; +import org.junit.jupiter.api.Test; +import org.springframework.util.ResourceUtils; + +public class ImageServiceImplTest { + + ImageServiceImpl instance = new ImageServiceImpl(null, null); + + @Test + public void testContainsAlphaChannel() throws FileNotFoundException, IOException { + File file = ResourceUtils.getFile("classpath:test-alpha-transparency-yes.png"); + BufferedImage image = ImageIO.read(file); + boolean expResult = true; + boolean result = instance.containsAlphaChannel(image); + assertEquals(expResult, result); + + file = ResourceUtils.getFile("classpath:test-alpha-transparency-no.png"); + image = ImageIO.read(file); + expResult = false; + result = instance.containsAlphaChannel(image); + assertEquals(expResult, result); + } + + @Test + public void testContainsTransparency() throws FileNotFoundException, IOException { + File file = ResourceUtils.getFile("classpath:test-alpha-transparency-yes.png"); + BufferedImage image = ImageIO.read(file); + boolean expResult = true; + boolean result = instance.containsTransparency(image); + assertEquals(expResult, result); + + file = ResourceUtils.getFile("classpath:test-alpha-transparency-no.png"); + image = ImageIO.read(file); + expResult = false; + result = instance.containsTransparency(image); + assertEquals(expResult, result); + } +} diff --git a/src/test/resources/test-alpha-transparency-no.png b/src/test/resources/test-alpha-transparency-no.png new file mode 100644 index 0000000000000000000000000000000000000000..aa0e14055f638e6294dec8cf76c2c8f83c62a6da GIT binary patch literal 50284 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∋|iWh*bmdH&vDWgw)xRpqk-aO&uq z5JpAS+7Z~NK3-DQofXR1kMyfH6w(9k(pl&5oguQ%R{FD6O_}_lGf!gav(fV&jID6& zF+jvckWH>KWs8wIOb%<)rn_XjVRiN-FXTmM&~8TWj`tEj&l+byPhK2Raaj9LCOz&K zSgB^|XNV%}mFLtPW#4+c-44_Welo(NlXGMhvoz*O!Nk-~5Cv+I1r4Og;Q_Zlf_${h zTy?r$MyeT4VE+!+uFjL)1~9m=MdJnat%zrBq&GKMZt?#mze{ek)cAU;bc9?_n^{k? zWywnZU^!?!|3jc6847y03th&x2^q%1!BcEw<4f3=UT0mFd7Qs*lI`l_K07TJ!%kaA zfLJy~pmYIC1GN1A8w4x$OIC~=jmJ?>y~r*l6chFkE3bK<)Wb5Pad|~TCc60&rKbDz z}pq+E|%5tbdZMkC;Rw@hr1h+lxJ6;-XT9(Oaa(lP7U z>xoR14=EeKWTq+|r_vL`#g9$DHRnIa%Ll+g-1G!crE)zt%b~ggDv_~zc!HK_PVl(% zi+5Zdr#rH3j4EO<2$f*&WB)JckvNYM`?#PQ=#C(-i zGly?c)K@Jdwoj3=EBoS6=jA0=sOvSOi&MD_6Y^}uo8HS>8f!qdK=PRfw9w5hP(V#I zfB^D_E|-$qurC{f=xuf1We@ktz%C{B&JfA3uo7(v+S!1CvHRZGHg_X4Y^t{zpwFy4 z!YqpYen-?aU$Urn>s2{tP`Z71MLgHkxV)nQ{QGw0sPpu-GN&l#YnA)%i_+L60bb8a z^zNO|k;b7G8m}uC+|YR@be;>&xpL`47^*Sbztcn}zX0oTo4supF#|Q+b6V1c606QE z6%ql{)D>=ioUe(86gMuGYmOSU|d$yD#y-HRD51b?3!-FZ;W45t5>q zr~UrW;4i@8GP*%&YJxqXWBG1YGJ%hibtdO?PcmcusAMFrN7Rg8l0LEuZ}qk_HKazW z7E+hmSym*V`%)%1i@^-)bMz9oSg68QZ-9PQ*v~q~52)2j3raOSvy1fE(;<7oEf^wa zNx6Nlb3xtc$Ph`4^Zsx`+A?Q9bcRRQb8V#+ZZ;)&!(wr{HbO_Wn5ZtD+IOf2RoDM7 ZzyOeLZ$}9b=%oMv002ovPDHLkV1m1#(&YdE literal 0 HcmV?d00001 diff --git a/src/test/resources/test-alpha-transparency-yes.png b/src/test/resources/test-alpha-transparency-yes.png new file mode 100644 index 0000000000000000000000000000000000000000..f6e83575201ab1eee39004447289188ec2dff0d5 GIT binary patch literal 4790 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 QjsO4v07*qoM6N<$g0ctgJOBUy literal 0 HcmV?d00001