zoukankan      html  css  js  c++  java
  • 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方法进行输出图片,会报错,
    最后自己想既然不能直接生成就用来图片的放大缩小,成功了!!

    也不知道上面用的对不对,希望有人指出错误!!!
  • 相关阅读:
    三步完成自适应网页设计
    EasyUI DataGrid 修改每页显示数量的最大值&&导出Grid到Excel
    EasyUI DataGrid 实用例子(2015-05-22)
    C# 如何将List拆分成多个子集合
    EasyUI Tabs绑定右键
    微信支付-扫码支付备忘
    微信支付:模板消息实现过程备忘
    4、http协议之二
    1、套按字及http基础知识之一
    3、Web server 之httpd2.2 配置说明
  • 原文地址:https://www.cnblogs.com/tongchuanxing/p/java_tiff_gif_jpg.html
Copyright © 2011-2022 走看看