【问题标题】:Save temporary .jpg file to computer将临时 .jpg 文件保存到计算机
【发布时间】:2016-11-09 20:05:35
【问题描述】:

java 中有一个名为.createTempFile 的方法,我将其用于生成图片并返回文件的方法。这是代码的一部分:

File jpgFile = File.createTempFile("tmp, ".jpg");
//fill the file with information ...
return jpgFile;

当我访问主方法中的方法时,我得到一个文件。现在我的问题是:我怎样才能保存这个文件?我尝试这样做:

File f = generateJPG(); // (the method that is explained above)
File out = new File("C:/fileJPG.jpg");

FileInputStream fis = new FileInputStream(f);
BufferedReader in = new BufferedReader(new InputStreamReader(fis));

FileWriter fstream = new FileWriter(out, true);
BufferedWriter outw = new BufferedWriter(fstream);

String aLine = null;
while ((aLine = in.readLine()) != null) {
    outw.write(aLine);
    outw.newLine();
}

in.close();
outw.close();

但这不起作用,只会给我一个充满随机像素的非常混乱的图片。那么如何将这个临时文件保存到我的计算机上呢?

【问题讨论】:

  • 使用ImageIOBufferedImage
  • 你能在任何时间点看到图像吗?您创建的图像数据很可能不正确并创建垃圾文件。
  • @RobertLongson 很好,第一个代码只是解释了如果有人忘记/不知道 TempFiles 是如何创建的。它应该解释我有一个方法可以将图像生成为 TempFile 并且我想在下一段代码中访问它(将其保存到我的计算机)
  • @PaulSwetz 我可以看到一张图片,它看起来很奇怪(绿色/白色/红色部分),我认为它的生成方式没有错误。我的程序是这样做的:生成一个 .svg 文件,将其转码为 .jpg 并返回。我已经通过生成 .svg 文件并使用转码器将 .jpg 直接写入我的桌面对其进行了测试。现在我只是将信息写入一个 TempFile,所以我不知道会出现什么问题。
  • @JordiCastilla 这很有效,非常感谢。 (我的答案中的代码)

标签: java file svg jpeg


【解决方案1】:

我刚刚找到了解决方案。我使用了ImageIOBufferedImage,就像@JordiCastilla 所说的那样,效果很好。代码如下:

File f = generateJPG();

BufferedImage image = ImageIO.read(f);

File out = new File("C:/fileJPG.jpg");

ImageIO.write(image, "jpg", out);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-02-06
    • 1970-01-01
    • 2015-09-18
    • 2017-03-15
    • 2023-04-09
    • 2015-06-25
    • 2013-11-25
    相关资源
    最近更新 更多