通过 Java 将 JPG 转换为 TIFF
使用原生 Java API 将 JPG 转换为 TIFF,无需任何图像编辑器或第 3 方库。
如何使用 Java 将 JPG 转换为 TIFF
转换文件格式似乎是图形设计师遇到的例行任务。然而,低估其重要性将是一个错误。对您工作的评估可能取决于您处理这项任务的速度和效率。通常,原始图像需要转换为更适合打印或在线出版的格式。如果原始图像来自图形编辑器,则它可能是矢量格式。在这种情况下,必须对其进行栅格化并转换为栅格格式以用于发布目的。您可以选择以未压缩格式保存图像以获得最佳质量,或将其转换为无损压缩格式以减小文件大小。在某些情况下,例如网络发布,您可以选择有损压缩格式。专门设计的图像数据压缩算法可以显着减小文件大小,同时保持可接受的图像质量。这有利于从互联网上快速下载图像文件。为了将 JPG 转换为 TIFF,我们将使用 Aspose.Imaging for Java API 是一个功能丰富、功能强大 易于使用的 Java 平台图像处理和转换 API。您可以直接从 Maven
并通过将以下配置添加到 pom.xml 将其安装在基于 Maven 的项目中。
Repository
<repository>
<id>AsposeJavaAPI</id>
<name>Aspose Java API</name>
<url>https://repository.aspose.com/repo/</url>
</repository>
Dependency
<dependency>
<groupId>com.aspose</groupId>
<artifactId>aspose-imaging</artifactId>
<version>version of aspose-imaging API</version>
<classifier>jdk16</classifier>
</dependency>
通过 Java 将 JPG 转换为 TIFF 的步骤
开发人员只需几行代码即可轻松加载 JPG 文件并将其转换为 TIFF。
- 使用 Image.load 方法加载 JPG 文件
- 创建和设置 ImageOptionsBase 所需子类的实例(例如 BmpOptions、PngOptions 等)
- 调用 Image.save 方法
- 传递带有 TIFF 扩展名的文件路径和 ImageOptionsBase 类的对象
系统要求
在运行转换示例代码之前,请确保您具有以下先决条件。
- 操作系统:Windows 或Linux。
- 开发环境:支持.NET Core 7及更高版本,例如Microsoft Visual Studio。
将 JPG 转换为 TIFF - Java
import com.aspose.imaging.Image; | |
import com.aspose.imaging.ImageOptionsBase; | |
import com.aspose.imaging.fileformats.jpeg2000.Jpeg2000Codec; | |
import com.aspose.imaging.fileformats.png.PngColorType; | |
import com.aspose.imaging.fileformats.tiff.enums.TiffExpectedFormat; | |
import com.aspose.imaging.imageoptions.*; | |
//This example demonstrates how to convert all supported file formats from one to another | |
String templatesFolder = "D:\\WorkDir\\"; | |
//Formats that support both - save and load | |
HashMap<String, ImageOptionsBase> formatsThatSupportExportAndImport = new HashMap<String, ImageOptionsBase>(); | |
formatsThatSupportExportAndImport.put("bmp", new BmpOptions()); | |
formatsThatSupportExportAndImport.put("gif", new GifOptions()); | |
formatsThatSupportExportAndImport.put("dicom", new DicomOptions()); | |
formatsThatSupportExportAndImport.put("emf", new EmfOptions()); | |
formatsThatSupportExportAndImport.put("jpg", new JpegOptions()); | |
formatsThatSupportExportAndImport.put("jpeg", new JpegOptions()); | |
formatsThatSupportExportAndImport.put("jpeg2000", new Jpeg2000Options() ); | |
formatsThatSupportExportAndImport.put("j2k", new Jpeg2000Options() {{ setCodec(Jpeg2000Codec.J2K); }} ); | |
formatsThatSupportExportAndImport.put("jp2", new Jpeg2000Options() {{ setCodec(Jpeg2000Codec.Jp2); }} ); | |
formatsThatSupportExportAndImport.put("png",new PngOptions() {{ setColorType(PngColorType.TruecolorWithAlpha); }}); | |
formatsThatSupportExportAndImport.put("apng", new ApngOptions()); | |
formatsThatSupportExportAndImport.put("svg", new SvgOptions()); | |
formatsThatSupportExportAndImport.put("tiff", new TiffOptions(TiffExpectedFormat.Default)); | |
formatsThatSupportExportAndImport.put("tif", new TiffOptions(TiffExpectedFormat.Default)); | |
formatsThatSupportExportAndImport.put("wmf", new WmfOptions()); | |
formatsThatSupportExportAndImport.put("emz", new EmfOptions() {{ setCompress(true); }}); | |
formatsThatSupportExportAndImport.put("wmz", new WmfOptions() {{ setCompress(true); }}); | |
formatsThatSupportExportAndImport.put("svgz", new SvgOptions(){{ setCompress(true); }}); | |
formatsThatSupportExportAndImport.put("tga", new TgaOptions()); | |
formatsThatSupportExportAndImport.put("webp", new WebPOptions()); | |
formatsThatSupportExportAndImport.put("ico", new IcoOptions()); | |
//Formats that can be only saved | |
HashMap<String, ImageOptionsBase> formatsOnlyForExport = new HashMap<String, ImageOptionsBase>(); | |
formatsOnlyForExport.put("psd", new PsdOptions()); | |
formatsOnlyForExport.put("dxf", new DxfOptions() {{ setTextAsLines(true); setConvertTextBeziers(true); }} ); | |
formatsOnlyForExport.put("pdf", new PdfOptions()); | |
formatsOnlyForExport.put("html", new Html5CanvasOptions()); | |
//Formats that can be only loaded | |
List<String> formatsOnlyForImport = Arrays.asList("djvu", "dng", "dib", "eps", "cdr", "cmx", "otg", "odg"); | |
//Get total formats that can be saved | |
HashMap<String, ImageOptionsBase> exportToFormats = new HashMap<String, ImageOptionsBase>(formatsOnlyForExport); | |
exportToFormats.putAll(formatsThatSupportExportAndImport); | |
//Get total formats that can be loaded | |
List<String> importFormats = new LinkedList<>(formatsOnlyForImport); | |
importFormats.addAll(formatsThatSupportExportAndImport.keySet()); | |
importFormats.forEach((formatExt) -> { | |
String inputFile = templatesFolder + "template." + formatExt; | |
for (Map.Entry<String, ImageOptionsBase> exportFormat : exportToFormats.entrySet()) | |
{ | |
String outputFile = String.format("%s\\%s\\%s-%s-to-%s.%s", templatesFolder, "convert", "convert-", formatExt, exportFormat.getKey(), exportFormat.getKey()); | |
System.out.println(outputFile); | |
// More about load method can be found at | |
// https://apireference.aspose.com/imaging/java/com.aspose.imaging/Image#load-java.lang.String- | |
try (Image image = Image.load(inputFile)) | |
{ | |
ImageOptionsBase exportOptions = exportFormat.getValue().deepClone(); | |
if ((formatExt.equals("emf") || formatExt.equals("emz")) && (exportFormat.getValue() instanceof WmfOptions)) | |
{ | |
EmfRasterizationOptions rasterizationOptions = new EmfRasterizationOptions(); | |
rasterizationOptions.setPageWidth(image.getWidth()); | |
rasterizationOptions.setPageHeight(image.getHeight()); | |
exportOptions.setVectorRasterizationOptions(rasterizationOptions); | |
} | |
image.save(outputFile, exportOptions); | |
} | |
} | |
}); |
JPG 什么是 JPG 文件格式
JPEG 是一种使用有损压缩方法保存的图像格式。作为压缩的结果,输出图像是存储大小和图像质量之间的权衡。用户可以调整压缩级别以达到所需的质量级别,同时减小存储大小。如果对图像应用 10:1 压缩,则对图像质量的影响可以忽略不计。压缩值越高,图像质量的劣化程度越高。
阅读更多 | JPGTIFF 什么是 TIFF 文件格式
TIFF 或 TIF,标记图像文件格式,表示用于在符合此文件格式标准的各种设备上使用的光栅图像。它能够在多个颜色空间中描述双层、灰度、调色板颜色和全彩色图像数据。它支持有损和无损压缩方案,以便为使用该格式的应用程序在空间和时间之间进行选择。该格式是可扩展的,并且经过多次修改,允许包含无限量的私人或特殊用途信息。该格式不依赖于机器,并且不受处理器、操作系统或文件系统等限制。
阅读更多 | TIFF其他支持的转换
使用 Java,可以轻松转换不同的格式,包括。