Apart from not being able to make the accept on file upload work...
anonymous wrote :
| (accept ? a comma-separated list of content types to accept, may not be supported
| by the browser. E.g. "images/png,images/jpg", "images/*".)
|
I use this to create a thumbnail for uploded images... (yo can only set one restriction
per project for upload file size and elsewhere I want to upload video!)
Anyhow... using this:
| /* (non-Javadoc)
| * @see
nz.co.selwynequestriancentre.action.user.UserDetailsController#processAvatarUpload()
| */
| @TransactionAttribute(TransactionAttributeType.NOT_SUPPORTED)
| public String processAvatarUpload() {
| // Seam does all the work for us...
| if (user.getPicture().getName() != null &&
!user.getPicture().getName().equals("")) {
| log.info("Avatar was supplied so adding the Thumbnail for it");
| ImageIcon icon = new ImageIcon(user.getPicture().getImage());
|
user.getPicture().setThumbnail(getRescaledImageAsBytes(user.getPicture().getType(), 70,
icon));
| }
| return "null";
| }
|
| @TransactionAttribute(TransactionAttributeType.NOT_SUPPORTED)
| private byte[] getRescaledImageAsBytes(String contentType , int width, ImageIcon
icon) {
| double ratio = (double) width / icon.getIconWidth();
| int height = (int) (icon.getIconHeight() * ratio);
|
| int imageType = "image/png".equals(contentType) ?
BufferedImage.TYPE_INT_ARGB
| : BufferedImage.TYPE_INT_RGB;
| BufferedImage bImg = new BufferedImage(width, height, imageType);
| Graphics2D g2d = bImg.createGraphics();
| g2d.setRenderingHint(RenderingHints.KEY_INTERPOLATION,
| RenderingHints.VALUE_INTERPOLATION_BICUBIC);
| g2d.drawImage(icon.getImage(), 0, 0, width, height, null);
| g2d.dispose();
|
| String formatName = "";
| if ("image/png".equalsIgnoreCase(contentType))
| formatName = "png";
| else if ("image/jpeg".equalsIgnoreCase(contentType))
| formatName = "jpeg";
| else if ("image/jpg".equalsIgnoreCase(contentType))
| formatName = "jpg";
| else if ("image/gif".equalsIgnoreCase(contentType))
| formatName = "gif";
|
| ByteArrayOutputStream baos = null;
| OutputStream out = null;
| try {
| baos = new ByteArrayOutputStream();
| out = new BufferedOutputStream(baos);
| try {
| ImageIO.write(bImg, formatName, out);
| } catch (IOException e) {
| e.printStackTrace();
| }
| } finally { // Try to release any resources.
| try {
| if (baos != null) {
| baos.close();
| }
| } catch (IOException ignored) {}
| try {
| if (out != null) {
| out.close();
| }
| } catch (IOException ignored) {}
| }
| return baos.toByteArray();
| }
|
I get a problem...
1. Images with a transparent background come out with background as black :(
Does anyone have a piece of code I can crib?
View the original post :
http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4075632#...
Reply to the post :
http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&a...