如何使用java改变给定新高度和宽度的图像大小?

时间:2014-06-18 12:06:46

标签: java javascript jsp image-uploading image-resizing

这是我的demo.jsp页面,我有两个字段给出新的高度和宽度,以便用新的更改上传的图像大小。有人告诉我该怎么做吗?

<html>
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <title>ImageSizeModification</title>
    <script>
        function ImageResizer() {
            console.log('called');
            var srcImg = document.getElementById("imgID").value;
            var newImg = new Image();
            newImg.src = srcImg;
            var height = newImg.height;
            var width = newImg.width;
            var newWidth = document.getElementById("widthID").value;
            var newHeight = document.getElementById("HeightID").value;
            console.log(newImg, srcImg, newWidth, newHeight, height, width);
        }
    </script>
</head>
<body>
    <%
        out.println("<table>");
        out.println("<tr><td><input type='file' id='imgID'></td></tr>");
        out.println("<tr><td>Enter new Width:</td><td><input type='text' id='widthID'></td></tr>");
        out.println("<tr><td>Enter new Height:</td><td><input type='text' id='HeightID'></td></tr>");
        out.println("<tr><td><input type='button' value='Submit' onclick='ImageResizer()'></td></tr>");
        out.println("</table>");
    %>
</body>

3 个答案:

答案 0 :(得分:0)

如果我理解正确,您要做的是在浏览器中调整图像大小,以便将较小的文件发送到您的服务器。如果是这样,这不是Java / JSP问题,而是Javascript问题。

This post讨论了如何使用javascript库做到这一点,我认为可能会解决您的问题。

答案 1 :(得分:0)

document.getElementById("imgID").style.height =  parseInt(newWidth) ;
document.getElementById("imgID").style.width =  parseInt(newHeight) ;

在控制台日志之前添加以上两行。

或使用Jquery

$('#imgID').width(700); 
$('#imgID').height(700);

答案 2 :(得分:0)

你不能单独用jsp做你需要创建一个servlet通过Inputstream获取图像通过任何图像处理api操纵它并将其写入响应。 Imgscalr是一个易于使用的API。您可以参考此link示例和说明