我有一个程序,可以将图像从前端(angularjs)发送到java Controller 。在 Controller 中我得到一个字节数组。我可以保存此图像,但我想在保存之前调整此图像的大小。问题是我想设置图片的固定高度,宽度的变化应该与高度成比例。这个过程应该是通用的,以便它可以适用于不同的照片。
下面是我的代码:
@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();
}
最佳答案
由于您已经有了图像,因此可以使用 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 - 图像缩放到的高度。 提示 - 指示用于图像重采样的算法类型的标志。 返回:图像的缩放版本。
关于java - 从高度调整图像大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28913531/