Joc*_*che 2 java tiff image image-processing
在Java中,我需要将jpeg,gif或png格式的传入文件转换为双层版本,以便进一步转换为CCIT压缩的TIF文件。我可以取出tif文件,但不能压缩。我不是JAI,压缩或图像格式的专家。任何帮助深表感谢。(我已经在这个主题上搜索了几个小时,但是找不到我理解的示例。)
String inFile = "myFile.jpg"
String newFileName = "myFile.tif";
FileOutputStream out = new FileOutputStream(newFileName);
RenderedOp src = JAI.create("fileload", inFile);
// TIFFEncodeParam params = new TIFFEncodeParam();
// params.setCompression(TIFFEncodeParam.COMPRESSION_GROUP4);
TIFFImageEncoder encoder = new TIFFImageEncoder (out, null);
encoder.encode (src);
out.flush();
out.close();
Run Code Online (Sandbox Code Playgroud)
为了能够使用COMPRESSION_GROUP4写入Tiff图像,必须将图像转换为双级压缩格式。最简单的方法是使用BufferedImage以兼容的压缩方案呈现图像。
FileOutputStream fos = new FileOutputStream("C:/test/output/myFile.tif");
RenderedOp src = JAI.create("fileload", "C:/test/input/myFile.jpg");
BufferedImage buf = new BufferedImage(src.getWidth(), src.getHeight(), BufferedImage.TYPE_BYTE_BINARY);
buf.getGraphics().drawImage(src.getAsBufferedImage(), 0, 0, null);
RenderedImage ri = (RenderedImage) buf;
encodeParam = new TIFFEncodeParam ();
encodeParam.setCompression(TIFFEncodeParam.COMPRESSION_GROUP4);
ImageEncoder enc = ImageCodec.createImageEncoder("TIFF", fos, encodeParam);
enc.encode(ri);
Run Code Online (Sandbox Code Playgroud)