`
jilong-liang
  • 浏览: 480496 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类

多页单个tif文件转换为多个jpg文件

    博客分类:
  • Java
阅读更多

(转)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);
		}
	}
}

 

 

  • 大小: 241.7 KB
0
4
分享到:
评论

相关推荐

    jpg转pdf转换器注册码

    1. **添加文件**:用户可以选择单个或多个JPG文件,甚至整个文件夹进行导入。 2. **设置参数**:根据需求,用户可能需要调整输出PDF的分辨率、质量、页面大小等参数。 3. **开始转换**:点击转换按钮,软件会快速将...

    JpgToPdf.rar

    它不仅支持单个JPG文件的转换,更出色的是,它可以处理多层级文件夹中的JPG图片,这意味着用户无需逐一手动操作,大大提高了工作效率。 使用步骤如下: 1. **选择源文件夹**:首先,你需要指定包含JPG图片的源...

    批量图片转双层PDF工具

    标题中的“批量图片转双层PDF工具”是指一种软件或应用程序,它的主要功能是将大量的图像文件(如TIF、JPG格式)转换为双层PDF文档。在PDF领域,"双层"通常指的是包含可搜索和可选择的文本层以及原始图像层的PDF文件...

    jpg转换pdf免费软件

    3. PDF生成:根据用户设置创建PDF文件,可以是单个图像一页或多个图像合为一页。 4. 质量优化:在保证视觉效果的前提下,可能进行有损或无损压缩,减少文件大小。 5. 安全性:确保转换过程中不会破坏原始数据,并...

    最好用的 PDG 转换为 PDF

    至于压缩包中的文件 "pdg2bmp&jpg&tif&pdf&txt",这可能是一套转换工具,包含了将PDG转换为多种格式(如BMP、JPG、TIFF、PDF)的功能,以及一个可能用于帮助理解和使用工具的TXT文本文件,可能是说明文档或使用指南...

    JpgsToTiff:将多个 jpg 文件合并为一个 tiff 多图像文件-开源

    本文将深入探讨一个名为"JpgsToTiff"的开源工具,它允许用户将多个JPG(Joint Photographic Experts Group)格式的图像文件合并成一个TIFF(Tagged Image File Format)多图像文件。TIFF是一种广泛使用的位图图像...

    JPG转PDF实用工具

    1. 选择源文件:用户可以选择单个或多个JPG文件,也可以拖放文件到软件界面。 2. 预览与设置:在转换之前,用户可能有机会预览图像,调整输出设置,如分辨率、质量等。 3. 转换:点击“转换”或“开始”按钮,工具会...

    北语15秋《计算机基础》作业4满分.doc

    北语15秋《计算机基础》作业4主要涵盖了计算机基础知识,包括操作系统、文件格式、网络、多媒体、Word处理以及Internet浏览器的使用等多个方面。以下是这些知识点的详细解释: 1. **数据传送单位**:数据传送的基本...

    淘淘图片批处理之星.exe

    包括批量格式转换、批量脚本处理、批量文件改名、批量调整尺寸、批量制作缩略图、批量压缩JPG、批量合并图片、批量添加背景、批量截取图片、批量切割图片、批量上传文件、创建PDF文件、创建多页TIF、创建电子相册等...

    网管教程 从入门到精通软件篇.txt

    CPI:Microsoft MS-DOS代码页信息文件 CPL:控制面板扩展名,Corel颜色板 CPP:C++代码文件 CPR:Corel提供说明书文件 CPT:Corel 照片-绘画图像 CST:Macromedia Director Cast文件 CUR:Windows光标文件 D ...

Global site tag (gtag.js) - Google Analytics