学习idrsolutions的Jdeli科学实践(二)非常规图片格式转换
idrsolutionsadmin 发布于:2025-10-17 14:26:51
阅读:loading
IDR Solutions 自 1999 年以来一直开发创新的 Java、PDF 和 HTML5 解决方案,是一家专注于 PDF 和图像处理技术的软件公司,致力于为企业和开发者提供高性能、可靠的 PDF 查看、编辑、转换和渲染解决方案,提供了以下几款100% Java SDK产品组件,用于显示、转换和处理 PDF 文档,分别是:JDeli、JPedal、BuildVu、FormVu。
特别说明:只为单纯的学习摸索与自我突破,商业软件请勿直接使用于生产环境(购买商业授权)
(1)JDeli 将图像转换为 PDF 并支持 Java 读取/写入图像格式,包括 AVIF、HEIC、PNG、TIFF 和 WEBP,在Java中读取/写入图像。
(2)JPedal 使 Java 开发人员能够查看、打印、光栅化、拆分、操作和转换 PDF 文件,面向开发人员的 PDF 支持。
(3)BuildVu 将 PDF 文件转换为 HTML 或 SVG 以作为 HTML 进行处理并在 Web 应用程序中本地集成/显示,转换PDF文件。
(4)FormVu 将可填写的 PDF 表单转换为交互式和独立的 HTML5,以允许用户在浏览器中填写表单,使用可填写的 PDF 表单。
JDeli是100% Java SDK组件,本篇教程用于实践将JPG格式图片转换为其它更多格式的图片文件,相关案例的实践也是覆盖到多个知识点的细节,参考部分特色功能如下:
源图片格式为JPG,转换后的新图片格式有:GIF、PNG、BMP、WEBP、PDF、TIFF、HEIC、JPEG、EMF、PSD、WMF、DICOM;
源图片格式为JPG,写入后的新图片格式有:GIF、PNG、BMP、WEBP、PDF、TIFF、HEIC、JPEG、EMF、PSD、WMF、DICOM;
已知涵盖了图片转换与图片写入两套API函数;
利用JDeli提供的Java API实现将本地的图片文件(emf/wmf/psd)转换或写出到其它格式的图片文件(GIF、PNG、JPG)等,以下是参考代码与示例输出:
@RunWith(JUnit4.class)
public class ImageUncommonConvertTest {
@Test
public void convertImage() throws Exception {
{
//依赖插件“jdeli-imageio-trial.jar”
final File imageFile = new File("resources/input/sample.emf");
BufferedImage bufferedImage = JDeli.read(imageFile);
JDeli.write(bufferedImage, OutputFormat.GIF, new File("resources/output/sample.write.gif"));
JDeli.write(bufferedImage, OutputFormat.PNG, new File("resources/output/sample.write.png"));
JDeli.write(bufferedImage, OutputFormat.JPEG, new File("resources/output/sample.write.jpeg"));
JDeli.convert(imageFile, new GifEncoderOptions(), new File("resources/output/sample.convert.gif"));
JDeli.convert(imageFile, new PngEncoderOptions(), new File("resources/output/sample.convert.png"));
JDeli.convert(imageFile, new JpegEncoderOptions(), new File("resources/output/sample.convert.jpeg"));
}
{
final File imageFile = new File("resources/input/apple.psd");
BufferedImage bufferedImage = JDeli.read(imageFile);
JDeli.write(bufferedImage, OutputFormat.GIF, new File("resources/output/apple.write.gif"));
JDeli.write(bufferedImage, OutputFormat.PNG, new File("resources/output/apple.write.png"));
JDeli.write(bufferedImage, OutputFormat.JPEG, new File("resources/output/apple.write.jpeg"));
JDeli.convert(imageFile, new GifEncoderOptions(), new File("resources/output/apple.convert.gif"));
JDeli.convert(imageFile, new PngEncoderOptions(), new File("resources/output/apple.convert.png"));
JDeli.convert(imageFile, new JpegEncoderOptions(), new File("resources/output/apple.convert.jpeg"));
}
{
final File imageFile = new File("resources/input/office.wmf");
BufferedImage bufferedImage = JDeli.read(imageFile);
JDeli.write(bufferedImage, OutputFormat.GIF, new File("resources/output/office.write.gif"));
JDeli.write(bufferedImage, OutputFormat.PNG, new File("resources/output/office.write.png"));
JDeli.write(bufferedImage, OutputFormat.JPEG, new File("resources/output/office.write.jpeg"));
JDeli.convert(imageFile, new GifEncoderOptions(), new File("resources/output/office.convert.gif"));
JDeli.convert(imageFile, new PngEncoderOptions(), new File("resources/output/office.convert.png"));
JDeli.convert(imageFile, new JpegEncoderOptions(), new File("resources/output/office.convert.jpeg"));
}
}
}(Java代码示例)

(emf转换png/jpg/gif)

(wmf转换png)

(psd转换png/jpg/gif)
(1)上述示例演示了将emf/wmf/psd等非常规的格式图片转换或写出至其它多种图片格式文件的实现;
(2)上述示例共转换或生成了转换emf格式的图片,对于emf格式的图片输出效果为空,或许是转换的示例代码有问题;
(3)上述示例共转换或生成了转换wmf格式的图片,原图的wmf格式图片尺寸比较小,但是转换png/jpg/gif等格式后的图片尺寸特别大,清晰度还高;但jpg/gif格式图片有黑色背景;
(3)上述示例共转换或生成了转换psd格式的图片,转换为png/jpg/gif等格式后的图片与原psd的效果几乎完全一致,转换效果比较好;
(1)IDR Solutions公司出的几种产品(JDeli、JPedal、BuildVu、FormVu),提供产品试用14天的使用时长限制,否则会提示“IDR Solutions software has now expired”,直接结束Java进程,不知道能否通过修改电脑时间来实现继续试用;
(2)关于Jar文件的下载忘了是怎么来的了(从官网提供的下载渠道呢,还是从互联网上的下载渠道呢,还是别人发给我的呢),电脑重装后不知道了;
(3)本系列文章中的实现属于的科学使用,理论上没有各种限制,不需要改动jar文件的任何地方。特别说明:只为单纯的学习摸索与自我突破,商业软件请勿直接使用于生产环境(购买商业授权);
(5)科学实践版相关文件为jdeli-trial.jar与jdeli-imageio-trial.jar,示例中发现在处理图片的执行过程中性能比较好,程序执行特别快;
(6)相关示例输出文件下载:《
示例输出.zip》,所有的示例输出包含了gif、jpg、png等格式文件;
点赞
欢迎来到陈冬冬的学习天地 | 学习与经验整理分享平台