图像从PNG转换为TIFF后无法删除图像文件

时间:2013-07-03 05:34:47

标签: java bufferedimage tiff

我正在使用BufferedImage创建.PNG文件并进行一些测试。现在创建图像后,我试图将.PNG图像转换为.TIF,这工作正常。现在,一旦我创建了TIF图像,我想删除PNG图像。但由于某种原因,我无法做到这一点。这没有任何例外。

这是我的代码

File pngFile = null;
FileOutputStream fOut = null;
try {
    pngFile = new File("C:\\Test.PNG");
    fOut = new FileOutputStream ("C:\\Test.TIF");
    RenderedOp src = JAI.create("fileload", "C:\\Test.PNG");
    TIFFImageEncoder encoder = new TIFFImageEncoder (fOut, null);
    encoder.encode (src);
}catch(Exception e) {
}finally {
    fOut.close();
    System.out.println(pngFile.delete());
}

3 个答案:

答案 0 :(得分:0)

因为你的catch块是空的,所以肯定没有异常。

有些东西可能仍然保留文件的句柄,不允许删除它。 我会检查JAI.create,RenderedOp和TiffEncoder。

答案 1 :(得分:0)

您可以提供输入流,最后先关闭输入流,然后删除文件,而不是将文件路径作为字符串提供。这可能有效。

答案 2 :(得分:0)

我之前曾遇到过同样的问题。最好的方法是首先使用创建的图像对象处理资源,如下所示-

var image = Image.FromFile(pngTarget); // here pngTarget is my PNG file's name along with complete path. 

// your code to convert png to tiff

.
.
.

该方法的结尾,您可以在下面编写-

image.Dispose(); // the image object I have created above
File.Delete(pngTarget); // delete the file 

此外,请不要忘记刷新/关闭内存流(如果使用的话)。

谢谢。