1、Pom引用jar包

     <dependency><groupId>com.sun.media</groupId><artifactId>jai-codec</artifactId><version>1.1.3</version></dependency>

2、java工具类

import java.awt.image.RenderedImage;
import java.awt.image.renderable.ParameterBlock;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStream;
import java.util.logging.Logger;import javax.media.jai.JAI;
import javax.media.jai.RenderedOp;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.ImageEncoder;
import com.sun.media.jai.codec.JPEGEncodeParam;
import com.sun.media.jai.codec.TIFFEncodeParam;public class ImageConvert {private static Logger logger = Logger.getLogger(ImageConvert.class.getName());public void tif2Jpg(String fileAbsolutePath) {if (fileAbsolutePath == null || "".equals(fileAbsolutePath.trim())){return ;}if (!new File(fileAbsolutePath).exists()){logger.info("系统找不到指定文件【"+fileAbsolutePath+"】");return ;}FileSeekableStream fileSeekStream = null;try {fileSeekStream = new FileSeekableStream(fileAbsolutePath);TIFFEncodeParam tiffEncodeParam = new TIFFEncodeParam();JPEGEncodeParam jpegEncodeParam = new JPEGEncodeParam();ImageDecoder dec = ImageCodec.createImageDecoder("tiff", fileSeekStream, null);int count = dec.getNumPages();tiffEncodeParam.setCompression(TIFFEncodeParam.COMPRESSION_GROUP4);tiffEncodeParam.setLittleEndian(false);logger.info("该tif文件共有【" + count + "】页");String filePathPrefix = fileAbsolutePath.substring(0, fileAbsolutePath.lastIndexOf("."));for (int i = 0; i < count; i++) {RenderedImage renderedImage = dec.decodeAsRenderedImage(i);File imgFile = new File(filePathPrefix + ".jpg");logger.info("每页分别保存至: " + imgFile.getCanonicalPath());ParameterBlock pb = new ParameterBlock();pb.addSource(renderedImage);pb.add(imgFile.toString());pb.add("JPEG");pb.add(jpegEncodeParam);RenderedOp renderedOp = JAI.create("filestore",pb);renderedOp.dispose();}} catch (IOException e) {// TODO Auto-generated catch blocke.printStackTrace();} finally {if (fileSeekStream != null){try {fileSeekStream.close();} catch (IOException e) {}fileSeekStream = null;}}}public void jpg2Tif(String fileAbsolutePath) {OutputStream outputStream = null;try {RenderedOp renderOp = JAI.create("fileload", fileAbsolutePath);String tifFilePath = fileAbsolutePath.substring(0, fileAbsolutePath.lastIndexOf("."))+".tif";outputStream = new FileOutputStream(tifFilePath);TIFFEncodeParam tiffParam = new TIFFEncodeParam();ImageEncoder imageEncoder = ImageCodec.createImageEncoder("TIFF", outputStream, tiffParam);imageEncoder.encode(renderOp);logger.info("jpg2Tif 保存至: " + tifFilePath);} catch (FileNotFoundException e) {// TODO Auto-generated catch blocke.printStackTrace();} catch (IOException e) {// TODO Auto-generated catch blocke.printStackTrace();} finally {if (outputStream != null){try {outputStream.close();} catch (IOException e) {}outputStream = null;}}}public static void main(String args[]) throws Exception{ImageConvert imageConvert = new ImageConvert();/* tif 转 jpg 格式*/imageConvert.tif2Jpg("D:/upload/2022/02/21/11.tif");/* jpg 转 tif 格式*///imageConvert.jpg2Tif("D:/upload/2022/02/21/222.jpg");}
}

Java转换图片格式 tif 转 jpg相关推荐

  1. java批量转换图片格式

    废话不多直接上代码,代码其实也不多.... package com.qiao.testImage;import java.awt.image.BufferedImage; import java.io ...

  2. Java实现图片格式转换(通过ImageIO)

    文章目录 粗略介绍ImageIO 一.遍历文件夹 二.转换图片格式 视频效果演示 粗略介绍ImageIO ImageIO是javax.imageio包下的一个类,用于实现Java中关于图片输入输出的一 ...

  3. c#如何wmf图片转换成png图片_C# 批量转换图片格式 支持/JPG/TIF/PNG/WMF/GIF等

    C# 批量转换图片格式实例源码,可以在BMP/JPG/TIF/PNG/WMF/GIF这几种格式之间批量转换,是否支持逆转换,这个未测试,有兴趣的自己下载源码编译一下吧.本源码实现的原理:将转换过程写入 ...

  4. c#如何wmf图片转换成png图片_C#转换图片格式小工具源码(支持icon/jpg/bmp/gif/png/tif/wmf格式)...

    [实例简介] C#转换图片格式实例 [实例截图] [核心代码] using System; using System.Collections.Generic; using System.Compone ...

  5. matlab 转换图片格式,Matlab实现图片格式转换 pgm转jpg等

    在Matlab下,转换图片格式相对比较容易,本文以 PGM 转 JPG 为例,贴出示例程序: % 将pgm图片批量转换为jpg图片 function [ ] = pgm2jpg( ) % 读取指定目录 ...

  6. 使用macOS自带convert,sips命令快速处理图片及转换图片格式

    写在前面 最近有需求转换图片的格式, 例如 将.PDF转换为.png以便CSDN编辑器上传(如果直接使用截图会显得比较麻烦,多费一道手续), 或是将微信的一些图片制作成表情包(需要转换图片为.gif格 ...

  7. PDF文件格式转换攻略:PDF格式转换图片格式

    关于PDF文件格式的转换大家有了解多少吗?就比如将PDF格式转换成图片格式,可能之前大家对于PDF件大家都有了解到,办公中我们经常遇到过.现在小编在这里教大家如何将PDF格式转换成图片格式,有兴趣的伙 ...

  8. python实现pdf格式转换图片格式

    使用python代码实现pdf转换图片格式 核心代码: import io from wand.image import Image from wand.color import Color from ...

  9. .net ImageProcessor组件转换图片格式

    官网地址: https://imageprocessor.org/imageprocessor-web/ 一.ImageProcessor组件概述 ImageProcessor是用C#编写的轻量级库的 ...

  10. WPS格式文件转换图片格式如何实现

    WPS作为在办公中是一款家喻户晓的软件,相信不少人都使用过.WPS 格式有时候并不适用所有的设施,比如手机中如果没有类似于阅读器软件的话就观看不了.但是图片格式相信都可以阅览的,可以将WPS格式的文件 ...

最新文章

  1. 新手怎么学以太坊区块链开发?
  2. ​Unity 2D游戏开发教程之2D游戏的运行效果
  3. C++程序安装卸载WDM驱动
  4. 96. Leetcode 494. 目标和 (动态规划-背包问题)
  5. windows_xp_sp3下的php环境安装配置
  6. cat 监控 java,分布式监控CAT客户端的SpringBoot集成
  7. 基于Web的svg编辑器(1)——撤销重做功能
  8. 计算机一些简单快捷键,最全的电脑常用快捷键大全 电脑快捷键使用大全
  9. 自动售货机软件工程课设_软件工程饮料自动售货机系统-.doc
  10. 回收站清空的文件能恢复吗?
  11. 《信息安全技术 关键信息基础设施安全保护要求》国家标准在京发布
  12. HTML 具体是用来做什么的?
  13. 学黑客要学什么编程语言
  14. SSDsim源码分析之make_aged
  15. 编程实战:C语言制作垃圾回收器
  16. 轻量级实时语义分割:ENet ERFNet
  17. matlab函数之diag
  18. Aiseesoft Mac FoneLab for Mac,iOS数据恢复
  19. 【计算机毕业设计】java ssm大学生综合素质测评系统
  20. Redmine-4.1.1 异步邮件通知如何配置(使用smtp方式,支持TLS):https://my.oschina.net/SamXIAO/blog/4973213

热门文章

  1. it工程师和码农的区别_码农属于it行业吗 工程师、程序员、码农有什么区别?...
  2. 长城脚下世园会倒计时100天 国际参展方数量史上最多
  3. QT学习笔记(四)——常用ui控件以及自定义ui控件的使用
  4. 基于GD32F1x0手动编程实现简易freertos之任务阻塞延时
  5. 电源控制环稳定性基础理论与调试方法
  6. 自定义xml解析框架
  7. VNC远程控制软件,五款用了都说好的VNC远程控制软件
  8. xlsx表格怎么做汇总统计_excel考勤统计表汇总怎么做
  9. 美学心得(第一百七十九集) 罗国正
  10. 微信协议简单调研笔记 (2)