代码之家  ›  专栏  ›  技术社区  ›  Jay

如何将JPEG图像转换为TIFF图像?

  •  3
  • Jay  · 技术社区  · 8 年前

    我正在开发一个图像处理应用程序,我需要将JPEG文件转换为TIFF文件。

    我已经尝试了下面的代码片段进行转换。但是,它正在生成损坏的tiff文件。

    下面是代码:

    package javaapplication2;
    
    import java.awt.Color;
    import java.awt.image.BufferedImage;
    import java.io.File;
    import java.io.IOException;
    import javax.imageio.ImageIO;
    import com.idrsolutions.image.tiff.TiffEncoder;
    import java.io.FileOutputStream;
    import java.io.OutputStream;
    
    public class JavaApplication2
    {
        public static void main(String[] args)
        {
            BufferedImage bufferedImage;
            try 
            {
                bufferedImage = ImageIO.read(new File("C:\\Users\\Jay Tanna\\Desktop\\image1.jpg"));
    
    
                BufferedImage newBufferedImage = new BufferedImage(bufferedImage.getWidth(),
                bufferedImage.getHeight(), BufferedImage.TYPE_INT_RGB);
    
                newBufferedImage.createGraphics().drawImage(bufferedImage, 0, 0, Color.WHITE, null);
    
                OutputStream   out      =   new FileOutputStream("C:\\Users\\Jay Tanna\\Desktop\\myNew_File.tiff");
                TiffEncoder tiffEncoder =   new TiffEncoder();
                tiffEncoder.setCompressed(true);
                tiffEncoder.write(newBufferedImage, out);
    
                System.out.println("Done");
    
        } 
            catch (IOException e) 
            {
    
                e.printStackTrace();
    
        }
    
       }
    
    }
    

    请帮助我解决这个问题。

    2 回复  |  直到 8 年前
        1
  •  1
  •   Roberto Attias    8 年前

    不熟悉 com.idrsolutions.image.tiff.TiffEncoder ,但你肯定错过了 out.close() 如果没有它,一些数据可能会保持缓冲,而不会进入磁盘。

        2
  •  -1
  •   DaFois Jeet Patel    8 年前

    要更改文件的扩展名,请尝试以下操作:

    OutputStream   out = new FileOutputStream("C:\\Users\\Jay Tanna\\Desktop\\myNew_File.tiff");
    

    为此:

    OutputStream   out = new FileOutputStream("C:\\Users\\Jay Tanna\\Desktop\\myNew_File.TIF");