Commit 027c6243 by Tuukka Kivilahti

kuva on voitto ja resize

1 parent d0e3a491
package fi.codecrew.moya.beans;
import java.awt.Graphics2D;
import java.awt.RenderingHints;
import java.awt.geom.AffineTransform;
import java.awt.image.AffineTransformOp;
import java.awt.image.BufferedImage;
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
......@@ -225,11 +229,59 @@ public class UserBean implements UserBeanLocal {
throw new EJBAccessException("No permission to upload image as another user");
}
ByteArrayInputStream imagestream = new ByteArrayInputStream(image);
BufferedImage bimage;
try {
bimage = ImageIO.read(imagestream);
} catch (IOException e) {
throw new RuntimeException(e);
}
int maxImageWidth = 1000;
int maxImageHeight = 1000;
if(bimage.getWidth() > maxImageWidth || bimage.getHeight() > maxImageHeight) {
int w = bimage.getWidth();
int h = bimage.getHeight();
if(w > h) {
h = (int) (((double) h/ (double) w)* (double) maxImageWidth);
w = maxImageWidth;
} else {
w = (int) (((double) w/ (double) h)* (double) maxImageHeight);
h = maxImageHeight;
}
logger.info("scaling image to {} x {}", w, h);
BufferedImage resized = new BufferedImage(w, h, bimage.getType());
Graphics2D g = resized.createGraphics();
g.setRenderingHint(RenderingHints.KEY_INTERPOLATION, RenderingHints.VALUE_INTERPOLATION_BILINEAR);
g.drawImage(bimage, 0, 0, w, h, 0, 0, bimage.getWidth(), bimage.getHeight(), null);
g.dispose();
bimage = resized;
}
ByteArrayOutputStream naamaout = new ByteArrayOutputStream();
try {
ImageIO.write(bimage, "png", naamaout);
} catch (IOException e) {
throw new RuntimeException(e);
}
UserImage userimage = null;
userimage = new UserImage(user.getUser());
userimage.setMimeType(contentType);
userimage.setImageData(image);
userimage.setImageData(naamaout.toByteArray());
userimage.setName(filename);
userimage.setDescription(description);
......
......@@ -47,6 +47,9 @@
<h2>#{i18n['user.thisIsCurrentImage']}</h2>
<h:outputText rendered="#{empty userView.user.currentImage}" value="#{i18n['user.noCurrentImage']}" />
<img width="300" rendered="#{!empty userView.user.currentImage}" src="#{request.contextPath}/dydata/userimage/#{userView.user.currentImage.id}.jpg" alt="image" />
<!-- <ui:fragment rendered="#{!empty userView.user.currentImage}">
<img width="300" src="#{request.contextPath}/dydata/userimage/#{userView.user.currentImage.id}.img" alt="image" />
<div>
......
Markdown is supported
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!