From 829a7871b055bdc659a5aa0dce4cc845d1b7481b Mon Sep 17 00:00:00 2001 From: Theophyl Hoguet Date: Sat, 11 Mar 2023 18:34:12 +0100 Subject: [PATCH] add mediaType, width, height, and nbcolors to Image object --- backend/src/main/java/pdl/backend/Image.java | 50 ++++++++++++++++++-- 1 file changed, 47 insertions(+), 3 deletions(-) diff --git a/backend/src/main/java/pdl/backend/Image.java b/backend/src/main/java/pdl/backend/Image.java index b5ea8ba..870933e 100644 --- a/backend/src/main/java/pdl/backend/Image.java +++ b/backend/src/main/java/pdl/backend/Image.java @@ -1,15 +1,39 @@ package pdl.backend; +import java.awt.image.BufferedImage; +import java.io.ByteArrayInputStream; +import java.io.IOException; +import java.net.URLConnection; + +import javax.imageio.ImageIO; + +import org.springframework.http.MediaType; +import org.springframework.util.MimeType; + public class Image { private static Long count = Long.valueOf(0); - private Long id; + private final Long id; private String name; - private byte[] data; + private final byte[] data; + private final MediaType mediaType; + private final int width; + private final int height; + private final int nbColors; - public Image(final String name, final byte[] data) { + public Image(final String name, final byte[] data) throws IOException { id = count++; this.name = name; this.data = data; + this.mediaType = MediaType.valueOf(URLConnection.guessContentTypeFromName(name)); + BufferedImage bufImg = ImageIO.read(new ByteArrayInputStream(data)); + this.width = bufImg.getWidth(); + this.height = bufImg.getHeight(); + this.nbColors = bufImg.getColorModel().getNumComponents(); + + } + + public MediaType getMediaType() { + return mediaType; } public long getId() { @@ -27,4 +51,24 @@ public class Image { public byte[] getData() { return data; } + + public static Long getCount() { + return count; + } + + public int getWidth() { + return width; + } + + public int getHeight() { + return height; + } + + public int getNbColors() { + return nbColors; + } + + public String getSize() { + return this.getWidth() + "*" + this.getHeight() + "*" + this.getNbColors(); + } }