有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

在JavaEclipse中读取Tiff格式

如何使用Java IMAGEIO库读取TIFF图像??(我正在使用Eclipse Luna)。。下载插件(JAR文件)后,如何给出类路径,以便它可以读取我输入的TIFF图像文件


共 (2) 个答案

  1. # 1 楼答案

    下面是一个将TIFF图像转换为PNG图像的快速示例

    // quick conversion example
    File inputFile = new File("image.tiff");
    File outputFile = new File("output.png");
    BufferedImage image = ImageIO.read(inputFile);
    ImageIO.write(image, "png", outputFile);
    

    打印JAI ImageIO库支持的所有格式的列表

    import javax.imageio.ImageIO;
    ...
    for (String format : ImageIO.getWriterFormatNames()) {
        System.out.println("format = " + format);
    }
    

    注意要转换没有内置支持的图像格式,必须在类路径中提供支持库。要查找支持的格式,请检查https://docs.oracle.com/javase/tutorial/2d/images/loadimage.html或上面的代码段

    例如,对于TIFF,可以使用jai_imageio-1.1.jar(或newer

    javac -cp jai_imageio-1.1.jar:. Main.java
    java -cp jai_imageio-1.1.jar:. Main
    

    如果类路径中没有支持TIFF格式的库,则上述转换代码段将以java.lang.IllegalArgumentException: image == null!失败

    以下格式具有内置支持(Java 8)

    BMP
    GIF
    JPEG
    PNG
    WBMP
    

    jai_imageio-1.1.jar增加了对

    JPEG2000
    PNM
    RAW
    TIFF
    

    编辑随着时间的推移,Java 9发布了一个小的更新,因为Java 9现在支持现成的TIFF

    使用Java 9编译并运行,无需额外的库

    import java.awt.image.BufferedImage;
    import java.io.File;
    import javax.imageio.ImageIO;
    class TiffToPng {
        public static void main(String[] args) throws Exception {
            File inputFile = new File("image.tiff");
            File outputFile = new File("output.png");
            BufferedImage image = ImageIO.read(inputFile);
            ImageIO.write(image, "png", outputFile);
        }
    }
    

    要查找受支持的ImageReader/ImageWriter格式,请分别。MIME类型您可以使用以下代码段

    for (String format : ImageIO.getReaderFormatNames()) {
        System.out.println("format = " + format);
    }
    ...
    for (String format : ImageIO.getReaderMIMETypes()) {
        System.out.println("format = " + format);
    }
    
    
    for (String format : ImageIO.getWriterFormatNames()) {
        System.out.println("format = " + format);
    }
    ...
    for (String format : ImageIO.getWriterMIMETypes()) {
        System.out.println("format = " + format);
    }
    
  2. # 2 楼答案

    如果出现错误:

    java.lang.IllegalArgumentException: image == null!
    

    只需把下面的罐子放进去:-

    • 如果您使用的是eclipse,只需将其添加到引用库中即可
    • 如果您只使用简单的java文件并通过控制台运行它,只需将这个jar粘贴到类路径中

    jai_imageio-1.1.jar | http://www.java2s.com/Code/JarDownload/jai/jai_imageio-1.1.jar.zip

    并导入以下内容:

    import com.sun.media.imageio.plugins.tiff.*;