如何利用JAI读取多页TIFF文件并保存 怎么利用JAI包实现多页TIF文件的读取和保存,主要是保存,最好还是压缩后保存.在网上找了很多资料,都没有说到多页TIF文件的保存.如果不是利用JAI的也可以,最好有例子. 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 public class Tiff2JPEG { public static int DISPLAY_WIDTH = 640; public static boolean doTiff2JPEG (String filename, String imageDir) { File file = new File(imageDir + filename); SeekableStream s = null; TIFFDecodeParam param = null; RenderedImage op = null; String simplefilename = filename.substring(0,filename.lastIndexOf(".")); RenderedOp image = null; try { s = new FileSeekableStream(file); ImageDecoder dec = ImageCodec.createImageDecoder("tiff", s, param); int numofpages = dec.getNumPages(); for (int i=0; i< numofpages; i++) { op = new NullOpImage (dec.decodeAsRenderedImage(i),null,null,OpImage.OP_COMPUTE_BOUND); image = JAI.create("stream", op); int width = op.getWidth(); int height = op.getHeight(); double conversionFactor = (double)DISPLAY_WIDTH / (double)width; float conversionFactor_ = DISPLAY_WIDTH / width; int thumbHeight = (int)((double)height * conversionFactor); int thumbWidth = (int)((double)width * conversionFactor); Dimension dim = new Dimension(thumbHeight, thumbWidth); JAI.setDefaultRenderingSize(dim); JAI.setDefaultTileSize(dim); JAI.create("filestore", image, imageDir + simplefilename + "." + i + ".png", "png"); } } catch (IOException e) { System.out.println(e.getLocalizedMessage()); return false; } return true; }} 不是要保存到其它格式还是要保存为多页的TIF格式的 java 如何在jPanel中画图 在线求救大侠们,如何给容器设置背景图片? [紧急求救!!!]怎样让swing只运行一个实例??????? 有什么网站能够提供JAVA实例编程的一些原代码. 有什么java api 是和矢量图相关的吗? 请大家提供图形包的信息! 简单问题 为什么用java开发出的桌面程序感觉外观比较奇怪? 关于布局管理器的问题 文件传输 有关textField获得聚焦的问题 去除乱码的问题
public static int DISPLAY_WIDTH = 640;
public static boolean doTiff2JPEG (String filename, String imageDir) {
File file = new File(imageDir + filename);
SeekableStream s = null;
TIFFDecodeParam param = null;
RenderedImage op = null;
String simplefilename = filename.substring(0,filename.lastIndexOf("."));
RenderedOp image = null;
try {
s = new FileSeekableStream(file);
ImageDecoder dec = ImageCodec.createImageDecoder("tiff", s, param);
int numofpages = dec.getNumPages();
for (int i=0; i< numofpages; i++) {
op = new NullOpImage
(dec.decodeAsRenderedImage(i),null,null,OpImage.OP_COMPUTE_BOUND);
image = JAI.create("stream", op);
int width = op.getWidth();
int height = op.getHeight();
double conversionFactor = (double)DISPLAY_WIDTH / (double)width;
float conversionFactor_ = DISPLAY_WIDTH / width;
int thumbHeight = (int)((double)height * conversionFactor);
int thumbWidth = (int)((double)width * conversionFactor);
Dimension dim = new Dimension(thumbHeight, thumbWidth);
JAI.setDefaultRenderingSize(dim);
JAI.setDefaultTileSize(dim);
JAI.create("filestore",
image, imageDir + simplefilename + "." + i + ".png", "png");
}
} catch (IOException e) {
System.out.println(e.getLocalizedMessage());
return false;
}
return true;
}
}
还是要保存为多页的TIF格式的