(转)http://wangminger.iteye.com/blog/1134106
package org.tif; import java.awt.image.RenderedImage; import java.awt.image.renderable.ParameterBlock; import java.io.File; import java.io.IOException; import javax.media.jai.JAI; import com.sun.media.jai.codec.FileSeekableStream; import com.sun.media.jai.codec.ImageCodec; import com.sun.media.jai.codec.ImageDecoder; import com.sun.media.jai.codec.JPEGEncodeParam; import com.sun.media.jai.codec.TIFFDecodeParam; import com.sun.media.jai.codec.TIFFEncodeParam; /** * 读取tif图片的一张.tif有几页 * */ public class ReadTifPage { private static final String path = System.getProperty("user.dir") + "\\src\\org\\tif\\tif_images.tif"; public static void main(String[] args) throws Exception { //readTifPage(); readTifImages(); } /** * 单纯读tif文件的页数 */ private static void readTifPage() { File file = null; Long tifPage; file = new File(path); if (file.isFile()) { FileSeekableStream fs = null; TIFFDecodeParam tifParam = new TIFFDecodeParam(); try { fs = new FileSeekableStream(file); ImageDecoder dec = ImageCodec.createImageDecoder("tiff", fs, tifParam); tifPage = new Long(dec.getNumPages()); System.out.println("这张图片有多少页码: " + tifPage); } catch (IOException e) { e.printStackTrace(); } } } /** * 分页读取 * * @throws IOException */ private static void readTifImages() throws IOException { FileSeekableStream ss = new FileSeekableStream(path); TIFFDecodeParam param0 = null; TIFFEncodeParam param = new TIFFEncodeParam(); JPEGEncodeParam param1 = new JPEGEncodeParam(); ImageDecoder dec = ImageCodec.createImageDecoder("tiff", ss, param0); int count = dec.getNumPages(); param.setCompression(TIFFEncodeParam.COMPRESSION_GROUP4); param.setLittleEndian(false); // Intel System.out.println("这个Tif文件 有" + count + "十张图片"); for (int i = 0; i <count; i++) { RenderedImage page = dec.decodeAsRenderedImage(i); File f = new File("./img_" + i + ".jpg"); System.out.println("Saving " + f.getCanonicalPath()); ParameterBlock pb = new ParameterBlock(); pb.addSource(page); pb.add(f.toString()); pb.add("JPEG"); pb.add(param1); JAI.create("filestore", pb); //JAI.create("filestore", page, "./Img_new" + i +".jpg", "JPEG", param1); } } }
相关推荐
1. **添加文件**:用户可以选择单个或多个JPG文件,甚至整个文件夹进行导入。 2. **设置参数**:根据需求,用户可能需要调整输出PDF的分辨率、质量、页面大小等参数。 3. **开始转换**:点击转换按钮,软件会快速将...
它不仅支持单个JPG文件的转换,更出色的是,它可以处理多层级文件夹中的JPG图片,这意味着用户无需逐一手动操作,大大提高了工作效率。 使用步骤如下: 1. **选择源文件夹**:首先,你需要指定包含JPG图片的源...
标题中的“批量图片转双层PDF工具”是指一种软件或应用程序,它的主要功能是将大量的图像文件(如TIF、JPG格式)转换为双层PDF文档。在PDF领域,"双层"通常指的是包含可搜索和可选择的文本层以及原始图像层的PDF文件...
3. PDF生成:根据用户设置创建PDF文件,可以是单个图像一页或多个图像合为一页。 4. 质量优化:在保证视觉效果的前提下,可能进行有损或无损压缩,减少文件大小。 5. 安全性:确保转换过程中不会破坏原始数据,并...
至于压缩包中的文件 "pdg2bmp&jpg&tif&pdf&txt",这可能是一套转换工具,包含了将PDG转换为多种格式(如BMP、JPG、TIFF、PDF)的功能,以及一个可能用于帮助理解和使用工具的TXT文本文件,可能是说明文档或使用指南...
本文将深入探讨一个名为"JpgsToTiff"的开源工具,它允许用户将多个JPG(Joint Photographic Experts Group)格式的图像文件合并成一个TIFF(Tagged Image File Format)多图像文件。TIFF是一种广泛使用的位图图像...
1. 选择源文件:用户可以选择单个或多个JPG文件,也可以拖放文件到软件界面。 2. 预览与设置:在转换之前,用户可能有机会预览图像,调整输出设置,如分辨率、质量等。 3. 转换:点击“转换”或“开始”按钮,工具会...
北语15秋《计算机基础》作业4主要涵盖了计算机基础知识,包括操作系统、文件格式、网络、多媒体、Word处理以及Internet浏览器的使用等多个方面。以下是这些知识点的详细解释: 1. **数据传送单位**:数据传送的基本...
包括批量格式转换、批量脚本处理、批量文件改名、批量调整尺寸、批量制作缩略图、批量压缩JPG、批量合并图片、批量添加背景、批量截取图片、批量切割图片、批量上传文件、创建PDF文件、创建多页TIF、创建电子相册等...
CPI:Microsoft MS-DOS代码页信息文件 CPL:控制面板扩展名,Corel颜色板 CPP:C++代码文件 CPR:Corel提供说明书文件 CPT:Corel 照片-绘画图像 CST:Macromedia Director Cast文件 CUR:Windows光标文件 D ...