0 0

JAI转TIFF使用CCITT G4压缩问题15

JAI转TIFF使用CCITT G4压缩后,在window下的传真图片查看里黑白反转,pdf里正常。下面是测试代码。
求大能解决黑白反转的问题~~
private static File convertToTiff(String html) throws Exception {
		File tiffFile = new File("e:/fax.tiff");
		File pdfFile = new File("e:/fax.pdf");
		OutputStream os = new FileOutputStream(pdfFile);
		ITextRenderer renderer = new ITextRenderer();
		// 解决中文支持问题
		ITextFontResolver fontResolver = renderer.getFontResolver();
		fontResolver.addFont("C:/Windows/Fonts/SIMSUN.TTC", BaseFont.IDENTITY_H, BaseFont.NOT_EMBEDDED);
		renderer.setDocumentFromString(html);
		renderer.layout();
		renderer.createPDF(os);
		os.flush();
		os.close();

		PDDocument doc = PDDocument.load(pdfFile);
		List pages = doc.getDocumentCatalog().getAllPages();

		PDPage page = (PDPage) pages.get(0);
		BufferedImage image = page.convertToImage(BufferedImage.TYPE_BYTE_BINARY, 300);
		
		OutputStream out = new FileOutputStream(tiffFile);
		TIFFEncodeParam param = new TIFFEncodeParam();
		param.setCompression(TIFFEncodeParam.COMPRESSION_GROUP4);
		ImageEncoder encoder = ImageCodec.createImageEncoder("TIFF", out, param);
		encoder.encode(image);
		os.close();
		
		return tiffFile;
	}
	
	public static void main(String[] args) throws Exception {
		String html = "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\"><html xmlns=\"http://www.w3.org/1999/xhtml\"><head><title>模板</title><style>body{font-family: SimSun;}</style></head><body>测试页面转TIFF</body></html>";
		convertToTiff(html);
	}
2012年7月30日 16:59

2个答案 按时间排序 按投票排序

0 0

您好,我想问一下,这个PhotometricInterpretation用什么方法才能更改呢?
TIFFField[] extras = new TIFFField[3];
extras[2] = new TIFFField(TIFFImageDecoder.TIFF_PHOTOMETRIC_INTERPRETATION,
                    TIFFField.TIFF_SHORT, 1, (Object) new char[] {(char) 0 });
我通过jai的代码无法更改这个值

2019年12月02日 09:25
0 0

不知道楼主解决了没有,当初我也遇到类似的问题,JAI的确功能强大,但是性能较差,而且部分算法实现也不到位,更主要的是,他缺乏文档


这个问题有两个解决方案,推荐第二种

1. 将所有的位倒置,即1~0 0~1,网上有很多代码实现

2. 需要调整TIFF HEAD里头的tag才可以
在TIFF head头里头有一个值PhotometricInterpretation,标记tiff是否黑白反转,从JAI目前的实现来看,默认生成的TIFF是开启这个参数的,详细TIFF HEAD可以参看http://www.awaresystems.be/imaging/tiff/tifftags/baseline.html

PhotometricInterpretation的定义上有
PHOTOMETRIC_MINISWHITE = 0;
PHOTOMETRIC_MINISBLACK = 1;

因此修改成0即可恢复正常显示

2014年3月01日 13:35

相关推荐

    JAI处理TIFF,图片转TIFF

    ### JAI处理TIFF, 图片转TIFF 在Java编程环境中,对于图像处理的需求非常常见,特别是当涉及到格式转换、图像压缩等高级操作时。本文将深入探讨如何使用Java Advanced Imaging (JAI) 工具包来处理TIFF文件,并实现...

    JAI - 将图片转为TIF格式的依赖包

    3. jai-codec-1.1.3.jar: JAI Codec库主要负责图像的编码和解码工作,对于处理TIFF文件尤其重要,因为它可能包含不同类型的编码,如LZW、CCITT G4等。这个库确保了JAI能够正确处理这些编码,从而实现图片格式的转换...

    tiff 转换 jpg java 亲测过了

    使用`javax.media.jai.ImageReadParam`和`javax.media.jai.JAI`类来读取TIFF图像。例如: ```java RenderedImage tiffImage = JAI.create("fileload", tiffFilePath); ``` 2. **创建转换参数**: 创建一个`...

    jai所需的jar包

    5. **编码TIFF文件**:JAI也支持将处理后的图像以TIFF格式保存,可以自定义压缩方法、位深度和其他TIFF特定的选项。 6. **颜色空间转换**:对于色彩管理,JAI可以处理不同的色彩空间,例如从RGB转换到CMYK或专色空间...

    jai_codec-1.1.3.jar 和 jai_core.jar 核心包

    使用这两个JAR文件进行TIFF到JPG的转换,开发者可以调用JAI提供的API来读取TIFF图像,进行必要的预处理(如裁剪、旋转等),然后将图像数据转换为JPG格式,最后写入新的JPG文件。这个过程可能涉及到色彩空间转换、...

    jai-core-1.1.3.jar jai-imageio.jar jai-codec-1.1.3.jar

    例如,可以使用`jai_core`进行图像的几何变换,用`jai_imageio`来读取和保存不同格式的图像,而`jai_codec`则负责图像数据的压缩和解压缩。 在实际应用中,JAI特别适用于需要高性能图像处理的场景,如医疗成像、...

    tif转jpg。正版jai-core,jai-codec。附代码以及tif图片供测试。

    本文将深入探讨如何使用Java Advanced Imaging (JAI) 库进行TIFF(Tagged Image File Format)到JPEG(Joint Photographic Experts Group)的转换。我们将详细介绍标题和描述中提到的`jai-core`和`jai-codec`库,...

    java压缩tiff文件的jar

    在处理TIFF压缩时,`jai_codec.jar`提供了关键的编码器和解码器,例如LZW(Lempel-Ziv-Welch)压缩,这是TIFF文件常用的无损压缩算法之一。 使用这些JAR文件,Java开发者可以构建一个功能强大的TIFF文件压缩工具。...

    关于JAI的两个JAR文件jai_codec.jar和jai_core.jar的最新版本

    Java Advanced Imaging (JAI) 是一个Java...然而,需要注意的是,JAI是一个较老的库,对于最新的Java版本可能不完全兼容,因此在使用时可能需要结合现代的图像处理库,如JavaFX或OpenCV,以确保最佳的性能和兼容性。

    多图转换成TIFF文件需要的jar包

    需要注意的是,虽然JAI是一个强大的工具,但它的使用可能涉及到复杂的API和性能优化问题。另外,由于JAI是一个较老的库,可能不如现代的图像处理库(如OpenCV或JavaFX)那样活跃和更新,因此在某些场景下可能需要...

    jai包 包括jai_codec、jai_core、mlibwrapper_jai

    标题提到的"jai包 包括jai_codec、jai_core、mlibwrapper_jai"分别代表JAI的不同组件: 1. **jai_codec.jar**:这个包提供了图像编码和解码的能力。它包含了对多种图像格式(如JPEG、PNG、BMP、TIFF等)的支持,...

    jai 图片处理 jai_codec.jar、jai_core.jar、mlibwrapper_jai.jar

    例如,如果你的Java应用程序需要读取一个TIFF图像,进行90度旋转,然后保存回硬盘,你可以使用jai_codec.jar来读取和编码TIFF,用jai_core.jar进行旋转操作,最后再借助mlibwrapper_jai.jar的硬件加速功能,快速高效...

    jai-codec.jar

    "jai-codec.jar"是JAI中的一个编码库,它包含了多种图像编码和解码算法,支持多种图像格式,如JPEG、TIFF、PNG等。这个库的主要任务是对图像数据进行压缩和解压缩,使得图像数据可以在不同的应用程序之间高效地传输...

    jai_codec-1.1.3.jar,jai_core-1.1.3.jar

    例如,在一个图像处理应用程序中,你可能首先需要使用`jai_codec-1.1.3.jar` 来加载一个TIFF图像,然后利用`jai_core-1.1.3.jar` 中的函数进行色彩校正、裁剪或添加水印,最后再用编码库将处理后的图像保存回硬盘。...

    jai_codec-1.1.3.rar

    对于TIFF格式,它支持多种压缩算法,如LZW、CCITT Group 4等,同时兼容多页和多层的TIFF文件。 在实际应用中,JAI_codec 1.1.3可以广泛应用于图像处理软件、科学数据分析、医学影像分析、遥感图像处理等领域。比如...

    javax.media.jai.jar

    而`jai_codec.jar`则提供了图像编码和解码的支持,使得JAI可以处理多种图像格式,如JPEG、TIFF、PNG等。 **应用场景** JAI在许多领域都有广泛的应用,如医学成像、遥感图像分析、数字图像取证、科学可视化、图像...

    jai_codec-1.1.3_jai_core-1.1.3.zip

    1. **功能**:JAI Codec专注于图像和视频的编码和解码,支持众多的图像和视频格式,如JPEG、PNG、BMP、TIFF等,以及一些专业的编码标准,如JPEG 2000。 2. **API接口**:JAI Codec提供了用于读取、写入和处理各种...

    jai_core1.1.3.zip

    标题中的"jai_core1.1.3.zip"是一个包含JAI Core 1.1.3版本的压缩文件。在Java开发中,`jar`文件是一种用于存储类文件和其他资源的归档格式,便于构建和分发Java应用程序或库。`javax.media:jai_core:1.1.3.jar` 是...

    JAI安装包及其相关的jar包

    2. **JAI Codec** (jai_codec.jar): 这个库提供了多种图像编码和解码的实现,支持包括JPEG、TIFF、BMP等多种常见图像格式。它使得JAI能够读取和写入这些格式的文件,方便在应用程序中处理不同格式的图像数据。 3. *...

    jai_codec.jar

    在你提到的文件中,“jai_codec.jar”是JAI的编解码组件,它包含了对各种图像格式的支持,如JPEG、TIFF、PNG等。而“jai_core.jar”则是JAI的核心库,提供了基本的图像操作和变换功能。 JAI Codec 模块: "jai_...

Global site tag (gtag.js) - Google Analytics