【发布时间】:2014-08-18 14:15:01
【问题描述】:
我有这段代码,我在其中得到一个InputStream 并创建一个图像:
Part file;
// more code
try {
InputStream is = file.getInputStream();
File f = new File("C:\\ImagenesAlmacen\\QR\\olaKeAse.jpg");
OutputStream os = new FileOutputStream(f);
byte[] buf = new byte[1024];
int len;
while ((len = is.read(buf)) > 0) {
os.write(buf, 0, len);
}
os.close();
is.close();
} catch (IOException e) {
System.out.println("Error");
}
问题是我必须在从InputStream 创建之前调整该图像的大小
那么如何调整我从InputStream 获得的内容,然后创建调整后的图像。我想将图像的最大一侧设置为 180 像素,并按照该比例调整另一侧的大小。
示例:
图片 = 289px * 206px
调整大小的图像 = 180px* 128px
【问题讨论】:
-
你永远不会刷新
OutputStream。至于你问题的另一部分,你大概可以在这里找到答案:stackoverflow.com/questions/244164 -
@blgt 好的,请帮助我完成冲洗部分。我尝试了另一个问题所说的。现在我有一个 BufferedImage,如何在“C:\\ImagenesAlmacen\\QR\\olaKeAse.jpg”将其保存为 jpg 图像?
-
完全按照上面的操作,只需在
os.close();之前添加os.flush(); -
@blgt 关闭意味着刷新。那里没问题。
-
@Durandal Huh。你说得对;查了一下,
flush在这种情况下实际上是一个空方法,write自己进行本机调用
标签: java image file resize inputstream