从高处调整图像大小

时间:2015-03-07 09:51:28

标签: java image

我有一个程序将图像从前端(angularjs)发送到java控制器。在控制器中我正在设置一个字节数组。我可以保存此图像,但我想在保存之前调整此图像的大小。问题是我想设置图片的固定高度,宽度的变化应该与高度成比例。此程序应具有通用性,以便适用于不同的照片。

以下是我的代码:

@RequestMapping(value = "/rest/bookImage", method = RequestMethod.POST)
    public @ResponseBody MessageDTO UploadFile(
            MultipartHttpServletRequest request, HttpServletResponse response) {

        Iterator<String> itr = request.getFileNames();
        MultipartFile file = request.getFile(itr.next());
        FileOutputStream fos;
        fos = new FileOutputStream(urlImage);
        fos.write(file.getBytes());
            fos.close();
}

1 个答案:

答案 0 :(得分:1)

由于您已有图像,因此可以使用getScaledInstance函数:

yourImage.getScaledInstance(newWidth, newHeight, Image.SCALE_DEFAULT);

你说你希望宽度与高度成比例,选择你想要它是双倍还是其他(只需分别设置合适的高度和宽度!)

在此处查看更多信息:http://docs.oracle.com/javase/7/docs/api/java/awt/Image.html

public Image getScaledInstance(int width,
                      int height,
                      int hints)

创建此图像的缩放版本。将返回一个新的Image对象,默认情况下将以指定的宽度和高度呈现图像。 如果宽度或高度是负数,则替换值以保持原始图像尺寸的纵横比。如果宽度和高度均为负值,则使用原始图像尺寸。

参数: width - 缩放图像的宽度。 height - 缩放图像的高度。 提示 - 用于指示用于图像重采样的算法类型的标志。 返回:图像的缩放版本。