批量将 svg 文件转成 png 文件

1、导入依赖
        <!-- batik --><dependency><groupId>batik</groupId><artifactId>batik-transcoder</artifactId><version>1.6-1</version></dependency>
2、代码
package com.example.demo;import org.apache.batik.transcoder.Transcoder;
import org.apache.batik.transcoder.TranscoderException;
import org.apache.batik.transcoder.TranscoderInput;
import org.apache.batik.transcoder.TranscoderOutput;
import org.apache.batik.transcoder.image.PNGTranscoder;
import org.apache.commons.lang.StringUtils;import java.io.*;
import java.util.ArrayList;
import java.util.List;
import java.util.Objects;/*** 将 svg 转成 png*/
public class BatikDemo {public static void main(String[] args) {// svg 文件所在路径String path = "D:\\Project\\WeChat\\GitHub\\GBlog-wx\\miniprogram\\images\\icon";List<File> allFile = getAllFile(path);if (allFile == null) {return;}allFile.forEach((file) -> {String absolutePath = file.getAbsolutePath();String filePath = absolutePath.replace(".svg", ".png");File pngFile = new File(filePath);try {convertSvg2Png(file, pngFile);} catch (Exception e) {e.printStackTrace();}});System.out.println("end");}/***  来源:https://blog.csdn.net/rgbhi/article/details/110564262*/public static void convertSvg2Png(File svg, File png) throws IOException, TranscoderException {InputStream in = new FileInputStream(svg);OutputStream out = new FileOutputStream(png);out = new BufferedOutputStream(out);Transcoder transcoder = new PNGTranscoder();try {TranscoderInput input = new TranscoderInput(in);try {TranscoderOutput output = new TranscoderOutput(out);transcoder.transcode(input, output);} finally {out.close();}} finally {in.close();}}/***  来源:https://blog.csdn.net/m0_47406832/article/details/120197446** 获取指定文件夹下所有文件,不含文件夹** @param dirFilePath 文件夹路径* @return*/public static List<File> getAllFile(String dirFilePath) {if (StringUtils.isBlank(dirFilePath))return null;return getAllFile(new File(dirFilePath));}/*** 获取指定文件夹下所有文件,不含文件夹** @param dirFile 文件夹* @return*/public static List<File> getAllFile(File dirFile) {// 如果文件夹不存在或着不是文件夹,则返回 nullif (Objects.isNull(dirFile) || !dirFile.exists() || dirFile.isFile())return null;File[] childrenFiles = dirFile.listFiles();if (Objects.isNull(childrenFiles) || childrenFiles.length == 0)return null;List<File> files = new ArrayList<>();for (File childFile : childrenFiles) {// 如果时文件,直接添加到结果集合if (childFile.isFile()) {files.add(childFile);} else {// 如果是文件夹,则将其内部文件添加进结果集合List<File> cFiles = getAllFile(childFile);if (Objects.isNull(cFiles) || cFiles.isEmpty()) continue;files.addAll(cFiles);}}return files;}}

批量将 svg 文件转成 png 文件相关推荐

  1. 用NCL将GRIB/GRIB2文件转成nc文件(批量转),JRA-55再分析为例

    背景: 答主最近需要用到JRA-55再分析数据,但在面对GRIB数据格式时犯难了,便想把GRIB格式转成nc文件再做分析.因为nc文件很容易用python或Matlab处理 尝试了好些方法,发现先安装 ...

  2. python将txt转换为csv_Python Pandas 三行代码将 txt 文件转换成 csv 文件

    今天需要处理几个比较大的 txt 文件,每个文件都在 2GB 以上,直接用 Excel 将其转换成 csv 文件显然是不太可行的,于是用 Python 中的数据处理神器 Pandas,三行代码就能搞定 ...

  3. CAJ文件转换成PDF文件:教你如何实现文件格式转换

    CAJ文件是中国知网常用的一种文献格式,但有时候我们需要将其转换成PDF格式,以方便阅读.打印.分享等用途.本文将教你如何实现CAJ文件转换成PDF文件. 方法一.使用CAJViewer软件 步骤1: ...

  4. 把jpg文件转换成pdf文件

    把jpg文件转换成pdf文件 生涯中,人人常常会拍摄一些照片用来忖量,可是岁月长了,时时会由于照片多而杂乱而懒于翻看,那末你是否思虑做一个电子相册,或制造一本PDF花样的书本来翻看呢?业余的这款JPG ...

  5. 怎么把jpg文件转换成pdf文件

    怎么把jpg文件转换成pdf文件 PDF转换成Word文档对我们来讲并不生僻,假设文字是由一张张图片构成的,碰着这种状况怎么办,怎么将JPG转换成PDF?菜鸟损耗了不少工夫和肉体才找到一款好用的JPG ...

  6. 怎样将pdf文件转换成jpg文件

    怎样将pdf文件转换成jpg文件 <迅捷pdf转换成jpg转换器免费版教程>是将PDF文件转换成jpg文件的工具软件.本软件不需要任何硬件支持,便可在软件界面上转换PDF文件. 主要特性: ...

  7. bat脚本中获取上级目录_使用Python写一个可以监控Tomcat 运行的脚本,并且把.py文件转换成.exe文件...

    使用Python写一个可以监控Tomcat 运行的脚本,并且把.py文件转换成.exe文件 文章来源与博主本人的CSDN博客,博客地址:https://blog.csdn.net/weixin_435 ...

  8. java虚拟机编译文件,理解Java虚拟机(1)之一个.java文件编译成.class文件发生了什么...

    理解Java虚拟机(1)之一个.java文件编译成.class文件发生了什么 最近在看<深入理解Java虚拟机>弄明白了很多java的底层知识,决定分几部分总结下,从.java文件编译,到 ...

  9. 将ocx和DLL文件打包成cab文件,inf的编写

    From: http://icrwen.iteye.com/blog/1118766 http://blog.csdn.net/yimiyangguang1314/article/details/65 ...

最新文章

  1. 别把引擎当汽车:AutoML不值得……
  2. emulator: ERROR: x86 emulation currently requires hardware acceleration!
  3. java并发编程之美-阅读记录10
  4. CNN结构:SPP-Net为CNNs添加空间尺度卷积-神经元层
  5. 大学计算机课感悟100字,停课不停学的心得100字 停课不停学的感想
  6. 数据库笔记04:数据库设计
  7. 基于深度学习的番茄叶部病害识别模型
  8. 迅雷x导入未完成任务失败的解决办法。
  9. 从键盘输入若干个学生成绩,计算出平均成绩。
  10. python mp4提取音频,利用python提取视频中的音频
  11. 自建微信公众号文章搜索舆情系统
  12. 披荆斩棘,蜕变从来学吧这里开始
  13. cousins什么意思_cousin是什么意思_cousin的翻译_音标_读音_用法_例句_爱词霸在线词典...
  14. 通用电工实验室设备QY-DG28A
  15. 【Socket网络编程进阶与实战】------ Socket网络编程快速入门
  16. GICv3软件overview手册之发送和接受SGI
  17. PHP连接redis并执行redis相关命令的方法详解
  18. 《Protein Actions Principles and Modeling》-《蛋白质作用原理和建模》中文分享(12)
  19. 《现代控制理论》 刘豹 第2章
  20. 人类\经济\太阳,管他呢

热门文章

  1. HTML表单与PHP进行数据交互
  2. 英国剑桥商务英语(BUSINESS  ENGLISH  CERTIFICATE)
  3. python中{:.2}和{:.2f}区别
  4. vue生命周期以及顺序
  5. java同步接口和异步接口_同步接口和异步接口
  6. 魔兽争霸 意志亡灵Space专访:20岁就要死去
  7. Windows下cmd中cd命令不起作用的原因和解决办法
  8. js数组按中文拼音排序_通俗易懂讲 Python 算法:快速排序
  9. Linux下扫描服务器IP地址是否冲突(arp-scan)
  10. redhat8安装谷歌浏览器