文章目录

  • 粗略介绍ImageIO
  • 一、遍历文件夹
  • 二、转换图片格式
  • 视频效果演示

粗略介绍ImageIO

ImageIO是javax.imageio包下的一个类,用于实现Java中关于图片输入输出的一种类,这个类中所有方法均为静态方法,因此调用时直接使用ImageIO.methodName() 即可.
相对于使用FileInputStream这类的节点流,使用ImageIO能真真正正的改变图片的格式而不只是修改图片的后缀名称.
当初看到了ImageIO能真正改变图片格式,因此想着要是以后需要改变图片的格式就不用专门去找某个网站修改了自己就能改还挺方便的就花了十分钟大致研究了一下比较重要的read和write函数,接下来介绍一下这两个函数.

static boolean write(RenderedImage im, String formatName, File output)
使用支持给定格式的任意 ImageWriter写入图像到 File 。
static BufferedImage read(File input)
返回 BufferedImage作为供给的解码结果 File与 ImageReader选自目前登记的那些自动选择。

还有其他重载,就不列出了,我是用的是比较简单的版本.

本问的代码用于访问某个文件夹下的图片群,并将某一后缀名称(如jpg)的图片选出,之后转换到另一文件夹中以另一图片格式保存(如png)

一、遍历文件夹

这一部分比较简单,先判断输入的路径是文件还是文件夹,如果是文件夹则列举出文件夹中所有某一后缀图片,如果是文件,那么就直接转换该文件为另一格式(此处的文件是指图片).

    /*** 遍历文件夹文件* @param srcPath 原图路径* @param destPath 新图路径* @param formatName 图片格式,支持bmp|gif|jpg|jpeg|png* @return*/public static void traverseFile(String srcPath, String destPath,String formatToChange,String formatName){boolean flag;File file=new File(srcPath);if (file.isFile()) {modifyImageFormat(srcPath,destPath+"."+formatName,formatName);System.out.println("转换单张图片,格式为"+formatName);}else{//文件是一个文件夹File[] files = file.listFiles(new FileFilter() {@Overridepublic boolean accept(File pathname) {if (pathname.getAbsolutePath().endsWith(formatToChange)) {return true;} else {return false;}}});for (File file1 : files) {String name=file1.toString().substring(file1.toString().lastIndexOf("\\"),file1.toString().lastIndexOf("."));//第一种使用定位符号的方式
//                String[] split = file1.toString().split("\\\\");
//                String[] split1 = split[split.length - 1].split("\\.");
//                System.out.println(Arrays.toString(split1));
//                System.out.println(Arrays.toString(split));
//                flag= modifyImageFormat(file1.toString(), destPath+split[split.length-1], formatName);
//                flag= modifyImageFormat(file1.toString(), destPath+split1[0]+"."+formatName, formatName);flag= modifyImageFormat(file1.toString(), destPath+name+"."+formatName, formatName);if(flag){System.out.println(file1.toString()+"转换成功!");}else{System.out.println(file1.toString()+"转换失败");}}}}

二、转换图片格式

首先使用ImageIO.read方法读取图片所在位置,读取图片后该方法将返回一个BufferImage对象,Image是一个抽象类,BufferedImage是其实现类,是一个带缓冲区图像类,主要作用是将一幅图片加载到内存中(BufferedImage生成的图片在内存里有一个图像缓冲区,利用这个缓冲区我们可以很方便地操作这个图片),提供获得绘图对象、图像缩放、选择图像平滑度等功能,通常用来做图片大小变换、图片变灰、设置透明不透明等。
正是由于BufferImage这一特性,使得我们可以简易的对图片进行修改.
之后使用ImageIO.write方法将缓冲区图片写入到指定路径,需要定义为文件的格式.
需要注意write方法的第一个参数是RenderedImage接口,因此我们需要一个实现该接口的是是实现类,而read方法的返回值BufferImage对象正是这个接口的实现类.

 /*** 修改原图的文件格式* @param srcPath 原图路径* @param destPath 新图路径* @param formatName 图片格式,支持bmp|gif|jpg|jpeg|png* @return true/false*/public static boolean modifyImageFormat(String srcPath, String destPath, String formatName) {boolean flag = false;try {BufferedImage bufferedImg = ImageIO.read(new File(srcPath));flag = ImageIO.write(bufferedImg, formatName, new File(destPath));} catch (FileNotFoundException e) {e.printStackTrace();} catch (IOException e) {e.printStackTrace();} finally {}return flag;}public static void main(String[] args) {traverseFile("D:\\图片","D:\\123\\","jpg","png");//转换某一文件夹的图片traverseFile("D:\\1b147b5a54e639ec362a07afdff758b.jpg","D:\\新图片","jpg","png");//转换单张图片}

视频效果演示

视频

Java实现图片格式转换(通过ImageIO)相关推荐

  1. java把对象转成图片格式转换器安卓版,java 万能图片格式转换

    话不多说,直接上代码 import java.awt.image.BufferedImage; import java.awt.image.Raster; import java.io.File; i ...

  2. java实现图片格式转换(svg、png、webp)

    文章目录 一.svg文件 1.1 svg介绍 1.2 svg文件操作 1.2.1 获取svg文件源码 1.2.2 获取svg文件宽高 1.2.3 获取svg文件颜色 1.2.4 svg文件着色 二.s ...

  3. Java实现图片格式转换

    本文利用java实现将jpg tiff png格式的图片统一转换为png或tiff或jpg的图片,在转换的时候会做图像的resize: 代码实现如下: import javax.imageio.Ima ...

  4. java 图片互转_JAVA 图片格式转换 jpg、jpeg、png格式互转

    最近项目遇到一些图片格式的问题,于是就写下这边博客,帮助记忆,代码如下: public static void main(String[] args) { //原文件路径 String src = & ...

  5. ImageIO 图片格式转换

    ImageIO图片格式的转换是通过ImageReader读取图片到内存,再通过ImageWriter方法写出内存中的图片到文件中,这样就完成了图片的转换,这里我们直接提供图片格式转换的代码: /*** ...

  6. python gif_python 将png图片格式转换生成gif动画

    先看知乎上面的一个连接 用Python写过哪些[脑洞大开]的小工具? 这个哥们通过爬气象网站的气象雷达图,生成一个gif的动态图.非常有趣且很实用,那咱也实现下. 我们先实现一个从GIF提取帧的代码 ...

  7. php怎么将网页变成图片格式,php如何实现图片格式转换

    [摘要] PHP即"超文本预处理器",是一种通用开源脚本语言.PHP是在服务器端执行的脚本语言,与C语言类似,是常用的网站编程语言.PHP独特的语法混合了C.Java.Perl以及 ...

  8. ASP.NET2.0图片格式转换【月儿原创】

    ASP.NET2.0图片格式转换 作者:清清月儿 主页:http://blog.csdn.net/21aspnet/           时间:2007.4.20 说明:本文实现了 图片格式随意转换( ...

  9. Winform中实现图片格式转换(附代码下载)

    场景 选择一张照片并选择保存位置和要转换的图片格式实现图片格式转换. 项目运行效果 注: 博客主页: https://blog.csdn.net/badao_liumang_qizhi 关注公众号 霸 ...

最新文章

  1. WindowType 属性
  2. 使用scrum开发软件的一般过程是什么?_黑色灌封胶的使用工艺复杂吗?使用过程中应该注意什么?...
  3. linux树莓派 ssh密码,树莓派之SSH连接经验
  4. Qt工作笔记-对QXmlStreamWriter进一步的认识(写复杂的XML文件)
  5. ADT版本不同导致的一个问题
  6. python 读取wifi数据_通过Python实现WiFi测试数据分析
  7. 解决IIS出现“由于权限不足而无法读取配置文件”的问题
  8. Maven实战从入门到精通(全)
  9. 转:FAMI上的满分游戏
  10. Excel生成柱状图报表示例
  11. 《天下少年英雄》隐私政策
  12. 彻底删除Cygwin
  13. 一个成功软件测试项目的经验(转载)
  14. 红米note5刷android,红米note5刷魔趣Android10上手体验!这速度,我爱了!
  15. 2657 windy数
  16. ERP系统中KPI指标的建立与管理
  17. 星露谷物语多玩家显示联机服务器没法邀请,星露谷物语联机怎么玩 星露谷物语联机玩法介绍...
  18. html5-创建浮动框架
  19. 易优CMS:screening的基础用法
  20. 桌面版阴阳师无法连接服务器,阴阳师桌面版连接不上服务器怎么解决[多图]

热门文章

  1. AI人工智能学习之激活函数
  2. 计算机怎么关屏幕,电脑双屏怎么关闭一个显示器 电脑关闭双屏的具体步骤
  3. 南理工校外调剂计算机有消息,提醒!这些学校已经开启预调剂了!
  4. 使用 AppFuse 的七个理由(中英文两版)
  5. windows大小写,切换键修改lock or shift
  6. PINCTRL子系统
  7. 如何用python输出jpg_python怎么输出图片
  8. 在MySQL中创建Oracle中的dept、emp、bonus、salgrade表
  9. C语言beep中有什么作用,C++中发声函数Beep用法
  10. 如何调整照片的大小?电脑怎么修改图片大小尺寸?