primefaces cropper,图像大小

时间:2014-03-17 15:08:10

标签: image primefaces crop

我有一个表单,用户可以上传图像并裁剪它。

上传后,图像将用于裁剪的裁剪器组件

我希望以固定的尺寸显示它(如果用户的图像太大)并且我没有设法做到这一点。

上传裁剪器组件后,以原始大小显示图像(如果宽度为1200px,则填充所有屏幕)

我无法使用css,因为div大小是由primefaces脚本生成的,我无法使用脚本,因为它在图片上传之前加载

1 个答案:

答案 0 :(得分:4)

上传时只需调整图片大小

public String handleImageFileUpload(FileUploadEvent event){

    File file = new File("PATH_TO_UPLOAD_DIR");
    file.mkdirs();
    file = new File("PATH_TO_UPLOAD_FILE");

    try( InputStream is = event.getFile().getInputstream();
             OutputStream out = new FileOutputStream(file)  ) {

            BufferedImage img = ImageIO.read(is);
            BufferedImage scaledImg;
            if(img.getWidth() >= img.getHeight())
                scaledImg = Scalr.resize(img, Scalr.Method.ULTRA_QUALITY, Scalr.Mode.FIT_TO_HEIGHT, 300, 400);
            else
                scaledImg = Scalr.resize(img, Scalr.Method.ULTRA_QUALITY, Scalr.Mode.FIT_TO_WIDTH, 400, 300);
            ImageIO.write(scaledImg, "jpg", out);

        } catch (IOException e) {
            e.printStackTrace();
        }
}