我有一个程序将图像从前端(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();
}
答案 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 - 缩放图像的高度。 提示 - 用于指示用于图像重采样的算法类型的标志。 返回:图像的缩放版本。