• java转换tiff图片格式成gif和jpg


    从网上找了好久都没用找到用java转换tiff格式的图片,突然看到tiff转换成psd格式的,想能转成psd肯定能转成jpg和gif,先看了一下,原先需要其他的jar包,

    我是从:http://www.java2s.com/ 网上下载的,

    其中有:jai_codec-1.1.3.jar
    jai_core.jar
    jai_imageio-1.1.jar
    iText-5.0.2.jar
    下载完后添加到自己的Java项目中

    代码 

    需要引用

     1 import java.awt.Color;
     2 import java.awt.Graphics;
     3 
     4 import java.awt.Image;
     5 import java.awt.image.BufferedImage;
     6 import java.io.File;
     7 import java.io.FileNotFoundException;
     8 import java.io.IOException;
     9 
    10 
    11 
    12 import javax.imageio.ImageIO;
    13 import javax.imageio.ImageReader;
    14 import javax.imageio.stream.FileImageInputStream;
    15 import javax.imageio.stream.ImageInputStream;
    16 import javax.imageio.spi.IIORegistry;
    17 import javax.imageio.spi.ImageReaderSpi;

    然后就是方法了

    放到Main中

     1 String tifPath="C:/1.tiff";
     2 int pages=0;
     3         BufferedImage[] bi=null;
     4         File tiffFile = new File(tifPath);
     5         ImageReader tiffReader = null;
     6         ImageInputStream input = null;
     7         try {
     8             input = new FileImageInputStream(tiffFile);
     9         } catch (FileNotFoundException e) {
    10             // TODO Auto-generated catch block
    11             e.printStackTrace();
    12         } catch (IOException e) {
    13             // TODO Auto-generated catch block
    14             e.printStackTrace();
    15         }
    16         IIORegistry iioreg = IIORegistry.getDefaultInstance();
    17         iioreg.registerApplicationClasspathSpis();
    18         ImageReaderSpi irs = new com.sun.media.imageioimpl.plugins.tiff.TIFFImageReaderSpi();
    19         try {
    20             tiffReader = irs.createReaderInstance();
    21         } catch (IOException e) {
    22             // TODO Auto-generated catch block
    23             e.printStackTrace();
    24         }
    25         tiffReader.setInput(input);
    26         
    27         try {
    28             pages = tiffReader.getNumImages(true);
    29         } catch (IOException e) {
    30             // TODO Auto-generated catch block
    31             e.printStackTrace();
    32         }
    33         
    34         if(pages>0){
    35             bi=new BufferedImage[pages];
    36             for (int i = 0; i < pages; i++) {
    37                 System.out.println(i);
    38                 try {
    39                     bi[i]=tiffReader.read(i);
    40                 } catch (IOException e) {
    41                     // TODO Auto-generated catch block
    42                     e.printStackTrace();
    43                 }
    44                 Image image = bi[i].getScaledInstance(bi[i].getWidth(), bi[i].getHeight(), Image.SCALE_DEFAULT);
    45                 BufferedImage tag = new BufferedImage(bi[i].getWidth(), bi[i].getHeight(), BufferedImage.TYPE_INT_BGR);
    46                 Graphics g = tag.getGraphics();
    47                 g.drawImage(image, 0, 0, null);
    48                 g.dispose();
    49                 try {
    50                     ImageIO.write(tag, "GIF", new File("C:/"+i+"11.gif"));
    51                     ImageIO.write(tag, "JPG", new File("C:/"+i+"11.JPG"));
    52                 } catch (IOException e) {
    53                     // TODO Auto-generated catch block
    54                     e.printStackTrace();
    55                 }
    56             }
    57         }

    这里要说明的是读出的图片流不能直接用
    ImageIO.write方法进行输出图片,会报错,
    最后自己想既然不能直接生成就用来图片的放大缩小,成功了!!

    也不知道上面用的对不对,希望有人指出错误!!!
  • 相关阅读:
    qqzoneQQ空间漏洞扫描器的设计attilax总结
    Atitit.attilax重要案例 项目与解决方案与成果 v6 qa15
    Atitit atiuse软件系列
    Atitit 微信支付 支付结果通用通知
    Atitit 团队建设的知识管理
    Atitti  css   transition Animation differ区别
    Atitit 基于dom的游戏引擎
    Atitit 异常的实现原理 与用户业务异常
    Atitit dsl实现(1)------异常的库模式实现  异常的ast结构
    Atitit.uke 团队建设的组织与运营之道attilax总结
  • 原文地址:https://www.cnblogs.com/tongchuanxing/p/java_tiff_gif_jpg.html
Copyright © 2020-2023  润新知