通過 Java 將 JPG 轉換為 DICOM
使用原生 Java API 將 JPG 轉換為 DICOM,無需任何圖像編輯器或第 3 方庫。
如何使用 Java 將 JPG 轉換為 DICOM
轉換文件格式似乎是圖形設計師遇到的例行任務。然而,低估其重要性將是一個錯誤。對您工作的評估可能取決於您處理這項任務的速度和效率。通常,原始圖像需要轉換為更適合打印或在線出版的格式。如果原始圖像來自圖形編輯器,則它可能是矢量格式。在這種情況下,必須對其進行柵格化並轉換為柵格格式以用於發布目的。您可以選擇以未壓縮格式保存圖像以獲得最佳質量,或將其轉換為無損壓縮格式以減小文件大小。在某些情況下,例如網絡發布,您可以選擇有損壓縮格式。專門設計的圖像數據壓縮算法可以顯著減小文件大小,同時保持可接受的圖像質量。這有利於從互聯網上快速下載圖像文件。為了將 JPG 轉換為 DICOM,我們將使用 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 轉換為 DICOM 的步驟
開發人員只需幾行代碼即可輕鬆加載 JPG 文件並將其轉換為 DICOM。
- 使用 Image.load 方法加載 JPG 文件
- 創建和設置 ImageOptionsBase 所需子類的實例(例如 BmpOptions、PngOptions 等)
- 調用 Image.save 方法
- 傳遞帶有 DICOM 擴展名的文件路徑和 ImageOptionsBase 類的對象
系統要求
在運行轉換示例代碼之前,請確保您具有以下先決條件。
- 作業系統:Windows 或Linux。
- 開發環境:支援.NET Core 7及更高版本,例如Microsoft Visual Studio。
將 JPG 轉換為 DICOM - 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 壓縮,則對圖像質量的影響可以忽略不計。壓縮值越高,圖像質量的劣化程度越高。
閱讀更多 | JPGDICOM 什麼是 DICOM 文件格式
DICOM 是 Digital Imaging and Communications in Medicine 的首字母縮寫詞,屬於醫學信息學領域。 DICOM 是文件格式定義和網絡通信協議的結合。 DICOM 使用 .DCM 擴展名。 .DCM 以兩種不同的格式存在,即格式 1.x 和格式 2.x。 DCM Format 1.x 還提供兩個普通版本和擴展版本。 DICOM 用於集成來自不同供應商的打印機、服務器、掃描儀等醫療成像設備,還包含每個患者的唯一識別數據。如果 DICOM 文件能夠接收 DICOM 格式的圖像數據,則它們可以在兩方之間共享。 DICOM的通信部分是應用層協議,實體之間使用TCP/IP進行通信。 HTTP 和 HTTPS 協議用於 DICOM 的 Web 服務。 Web 服務支持的版本是 1.0、1.1、2 或更高版本。
閱讀更多 | DICOM其他支持的轉換
使用 Java,可以輕鬆轉換不同的格式,包括。