• Como Cambiar el Tama

    En lo que voy de mi proyecto, uno de los requerimientos es subir todo tipo de imagenes a la web y guardarlas en la base de datos. Obviamente si el usuario sube una imagen de 1MB yo no voy a guardar 1MB en un capo BLOB, aqui la implementacion de la solucion.

    Basicamente la idea es reducir la imagen a un formato generico y asi poder guardarla en la base de datos (my proyecto asi lo requiere) o en cualquier lugar en el file system. Para reducir una imagen en Java el codigo seria…

    public void resize(InputStream input, OutputStream output, int width, int height) throws Exception {
        BufferedImage src = ImageIO.read(input);
        BufferedImage dest = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB);
        Graphics2D g = dest.createGraphics();
        AffineTransform at = AffineTransform.getScaleInstance((double)width / src.getWidth(), (double)height / src.getHeight());
        g.drawRenderedImage(src, at);
        ImageIO.write(dest, "JPG", output);
        output.close();
    }

    Basicamente este metodo recibe 1 outputstream (donde vamos a escribir el output de esta operacion) y un inputstream que es el source de nuestro archivo de imagen. El resto es bastante interpretable.

Leave a comment