浏览器中的 Java 输出图像质量差

标签 java

我正在尝试将输入流图像写入 OutputStream 以在浏览器中显示图像这是代码:

try
{
    InputStream input = Filer.readImage("images/test.jpg");
    byte[] buffer = new byte[1024];
    int bytesRead;
    while ((bytesRead = input.read(buffer)) != -1)
    {
        responseBody.write(buffer, 0, bytesRead);
    }
}
catch(IOException e)
{
    System.out.println(e);
}

读取图像:

public static InputStream readImage(String file) throws IOException {
    InputStream input = new FileInputStream(file);

    return input;

}

这是原始图像:

http://i.stack.imgur.com/zQzVG.jpg

这是上述过程后的输出:

http://i.stack.imgur.com/WgaKF.jpg

我的代码有什么问题?

最佳答案

您需要关闭输出流:

InputStream input = Filer.readImage("images/test.jpg");
byte[] buffer = new byte[1024];
int bytesRead;
while ((bytesRead = input.read(buffer)) != -1) {
    responseBody.write(buffer, 0, bytesRead);
}
responseBody.close(); // <-----------

关于浏览器中的 Java 输出图像质量差,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20642032/

相关文章:

java - 如何在聊天室程序中实现不断更新的用户列表?

java - 对象反射的安全风险是什么?

java - JAVA中的Zigbee地址

java - 为什么它不存储所有键值而是存储最后更新的值?

java - 使用@Suite Junit 时将忽略 CucumberOptions 标签

java - 如何通过textview在屏幕上显示android中发生的生命周期事件

Java扩展类类型

java - 在 Java 中,如何将大数存储在数组中?

java - 将 genio 与数组结合使用

java - 集合和 StringBuilder 的奇怪行为