HTML JPG PDF XML APNG
Aspose.Imaging  cho Python
JP2

Sử dụng Python để chuyển đổi hình ảnh từ DICOM sang JP2

Tạo ứng dụng Python để chuyển đổi hình ảnh và ảnh DICOM sang JP2 thông qua API máy chủ

Cách chuyển đổi hình ảnh và ảnh từ DICOM sang JP2 bằng Python

Chuyển đổi tập tin hình ảnh từ định dạng này sang định dạng khác là một nhiệm vụ phổ biến mà mọi nhà thiết kế đồ họa đều gặp phải. Hiệu quả và sự xuất sắc trong việc chuyển đổi tệp không chỉ ảnh hưởng đến tốc độ hoàn thành mà còn đóng vai trò quan trọng trong việc đánh giá chất lượng công việc tổng thể. Về nguồn hình ảnh, chúng thường đòi hỏi phải chuyển đổi sang các định dạng thay thế phù hợp hơn cho việc in ấn hoặc phân phối trực tuyến. Hình ảnh được tạo bằng trình chỉnh sửa đồ họa có thể ở định dạng vector. Trong những trường hợp như vậy, để xuất bản trang web, nó phải trải qua quá trình rasterization và được lưu ở định dạng raster. Bạn có tùy chọn chuyển đổi hình ảnh ở định dạng không nén để có chất lượng vượt trội hoặc lưu nó sang định dạng nén không mất dữ liệu để giảm thiểu kích thước tệp. Đối với các trường hợp bắt buộc phải giảm kích thước tệp, như trong ứng dụng trang web, có khả năng chuyển đổi sang định dạng nén bị mất dữ liệu. Các thuật toán nén dữ liệu chuyên dụng cho hình ảnh có thể giảm đáng kể kích thước tệp trong khi vẫn duy trì chất lượng hình ảnh ở mức chấp nhận được, đảm bảo tải hình ảnh nhanh chóng. Để chuyển đổi hình ảnh và ảnh từ DICOM sang JP2, chúng tôi sẽ sử dụng Aspose.Imaging for Python via .NET API là API chuyển đổi và thao tác hình ảnh giàu tính năng, mạnh mẽ và dễ sử dụng cho nền tảng Python. Bạn có thể cài đặt nó bằng lệnh sau từ lệnh hệ thống của mình.

Dòng lệnh hệ thống

>> pip install aspose-imaging-python-net

Các bước chuyển đổi DICOM thành JP2 qua Python

Các nhà phát triển có thể dễ dàng tải và chuyển đổi tệp DICOM sang JP2 chỉ trong một vài dòng mã.

  • Tải tệp DICOM bằng phương thức Image.Load
  • Tạo và đặt phiên bản của lớp con bắt buộc của ImageOptionsBase (ví dụ: BmpOptions, PngOptions, v.v.)
  • Gọi phương thức Image.Save
  • Chuyển đường dẫn tệp có phần mở rộng JP2 & đối tượng của lớp ImageOptionsBase

yêu cầu hệ thống

Trước khi chạy mã ví dụ chuyển đổi, hãy đảm bảo rằng bạn có các điều kiện tiên quyết sau.

  • Hệ điều hành: Windows hoặc Linux.
  • Môi trường phát triển: Hỗ trợ .NET Core 7 trở lên như Microsoft Visual Studio.

Ứng dụng miễn phí để chuyển đổi DICOM thành JP2

  • Chọn hoặc kéo và thả hình ảnh DICOM
  • Chọn định dạng và nhấp vào nút Chuyển đổi
  • Nhấp vào nút Tải xuống để tải xuống hình ảnh JP2
* Bằng cách tải lên các tệp của bạn hoặc sử dụng dịch vụ của chúng tôi, bạn đồng ý với Điều khoản dịch vụChính sách bảo mật của chúng tôi

Kiểm tra bản trình diễn trực tiếp của chúng tôi để chuyển đổi DICOM thành JP2

Chuyển đổi DICOM thành JP2 - Python

from aspose.imaging import *
from aspose.imaging.fileformats.tiff.enums import *
from aspose.imaging.fileformats.jpeg2000 import *
from aspose.imaging.fileformats.png import *
from aspose.imaging.imageoptions import *
from aspose.pycore import is_assignable
import os
if 'TEMPLATE_DIR' in os.environ:
templates_folder = os.environ['TEMPLATE_DIR']
else:
templates_folder = r"C:\Users\USER\Downloads\templates"
delete_output = 'SAVE_OUTPUT' not in os.environ
data_dir = templates_folder
def process_convertion():
import_formats, export_formats = get_available_image_formats()
for import_key, import_value in import_formats.items():
format_ext = import_key
input_file = os.path.join(templates_folder, f"template.{format_ext}")
if not os.path.exists(input_file):
continue
for export_key, export_value in export_formats.items():
output_file = os.path.join(templates_folder, f"convert-{format_ext}-to-{export_key}.{export_key}")
print("Processing conversion:" + output_file)
with Image.load(input_file) as image:
export_options = export_value.clone()
if is_assignable(image, VectorImage):
rasterization_options = import_value
rasterization_options.page_width = float(image.width)
rasterization_options.page_height = float(image.height)
export_options.vector_rasterization_options = rasterization_options
image.save(output_file, export_options)
if delete_output:
os.remove(output_file)
def get_available_image_formats():
obj_init = Jpeg2000Options()
obj_init.codec = Jpeg2000Codec.J2K
obj_init2 = Jpeg2000Options()
obj_init2.codec = Jpeg2000Codec.JP2
obj_init3 = PngOptions()
obj_init3.color_type = PngColorType.TRUECOLOR_WITH_ALPHA
obj_init4 = {}
obj_init4["bmp"] = BmpOptions()
obj_init4["gif"] = GifOptions()
obj_init4["dicom"] = DicomOptions()
obj_init4["jpg"] = JpegOptions()
obj_init4["jpeg"] = JpegOptions()
obj_init4["jpeg2000"] = Jpeg2000Options()
obj_init4["j2k"] = obj_init
obj_init4["jp2"] = obj_init2
obj_init4["png"] = obj_init3
obj_init4["apng"] = ApngOptions()
obj_init4["tiff"] = TiffOptions(TiffExpectedFormat.DEFAULT)
obj_init4["tif"] = TiffOptions(TiffExpectedFormat.DEFAULT)
obj_init4["tga"] = TgaOptions()
obj_init4["webp"] = WebPOptions()
obj_init4["ico"] = IcoOptions(FileFormat.PNG, 24)
raster_formats_that_support_export_and_import = obj_init4
obj_init5 = EmfOptions()
obj_init5.compress = True
obj_init6 = WmfOptions()
obj_init6.compress = True
obj_init7 = SvgOptions()
obj_init7.compress = True
obj_init8 = {}
obj_init8["emf"] = (EmfOptions(), EmfRasterizationOptions())
obj_init8["svg"] = (SvgOptions(), SvgRasterizationOptions())
obj_init8["wmf"] = (WmfOptions(), WmfRasterizationOptions())
obj_init8["emz"] = (obj_init5, EmfRasterizationOptions())
obj_init8["wmz"] = (obj_init6, WmfRasterizationOptions())
obj_init8["svgz"] = (obj_init7, SvgRasterizationOptions())
vector_formats_that_support_export_and_import = obj_init8
obj_init9 = DxfOptions()
obj_init9.text_as_lines = True
obj_init9.convert_text_beziers = True
obj_init10 = {}
obj_init10["psd"] = PsdOptions()
obj_init10["dxf"] = obj_init9
obj_init10["pdf"] = PdfOptions()
obj_init10["html"] = Html5CanvasOptions()
formats_only_for_export = obj_init10
obj_init11 = {}
obj_init11["djvu"] = None
obj_init11["dng"] = None
obj_init11["dib"] = None
formats_only_for_import = obj_init11
obj_init12 = {}
obj_init12["eps"] = EpsRasterizationOptions()
obj_init12["cdr"] = CdrRasterizationOptions()
obj_init12["cmx"] = CmxRasterizationOptions()
obj_init12["otg"] = OtgRasterizationOptions()
obj_init12["odg"] = OdgRasterizationOptions()
vector_formats_only_for_import = obj_init12
# Get total set of formats to what we can export images
export_formats = {k: v[0] for k, v in vector_formats_that_support_export_and_import.items()}
export_formats.update(formats_only_for_export)
export_formats.update(raster_formats_that_support_export_and_import)
# Get total set of formats that can be loaded
import_formats = {k : VectorRasterizationOptions() for k in formats_only_for_import}
import_formats.update(vector_formats_only_for_import)
import_formats.update({k : v[1] for k, v in vector_formats_that_support_export_and_import.items()})
return import_formats, export_formats
# run
process_convertion()

DICOM Những gì là DICOM Định dạng tệp

DICOM là từ viết tắt của Digital Imaging and Communications in Medicine, liên quan đến lĩnh vực Tin học Y tế. DICOM là sự kết hợp giữa định nghĩa định dạng tệp và một giao thức truyền thông mạng. DICOM sử dụng phần mở rộng .DCM. .DCM tồn tại ở hai định dạng khác nhau, tức là định dạng 1.x và định dạng 2.x. Định dạng DCM 1.x còn có sẵn trong hai phiên bản bình thường và mở rộng. DICOM được sử dụng để tích hợp các thiết bị hình ảnh y tế như máy in, máy chủ, máy quét, v.v. từ các nhà cung cấp khác nhau và cũng chứa dữ liệu nhận dạng của từng bệnh nhân để tạo tính duy nhất. Các tệp DICOM có thể được chia sẻ giữa hai bên nếu họ có khả năng nhận dữ liệu hình ảnh ở định dạng DICOM. Phần giao tiếp của DICOM là giao thức lớp ứng dụng và sử dụng TCP / IP để giao tiếp giữa các thực thể. Các giao thức HTTP và HTTPS được sử dụng cho các dịch vụ web của DICOM. Các phiên bản được hỗ trợ bởi các dịch vụ web là 1.0, 1.1, 2 hoặc mới hơn.

Đọc thêm | DICOM

JP2 Những gì là JP2 Định dạng tệp

JPEG 2000 (JP2) là một hệ thống mã hóa hình ảnh và tiêu chuẩn nén hình ảnh hiện đại nhất. Được thiết kế, sử dụng công nghệ wavelet JPEG 2000 có thể mã hóa nội dung không mất dữ liệu ở bất kỳ chất lượng nào cùng một lúc. Hơn nữa, không có bất kỳ hình phạt đáng kể nào về hiệu quả mã hóa, JPEG 2000 có khả năng truy cập và giải mã hiệu quả cùng một nội dung thành nhiều độ phân giải và chất lượng khác. Các dòng mã trong JPEG 2000 có khả năng mở rộng đáng kể khi có các vùng quan tâm cung cấp cơ sở cho việc truy cập ngẫu nhiên theo không gian. Sở hữu tới 16384 linh kiện đa dạng với kích thước tính bằng terapixel và độ chính xác có thể cao tới 38 bit / mẫu.

Đọc thêm | JP2

Các chuyển đổi được hỗ trợ khác

Sử dụng Python, người ta có thể dễ dàng chuyển đổi các định dạng khác nhau bao gồm.

BMP (Ảnh bitmap)
GIF (Định dạng trao đổi đồ họa)
EMF (Định dạng siêu tệp nâng cao)
JPG (Nhóm chuyên gia nhiếp ảnh chung)
JPEG (Nhóm chuyên gia nhiếp ảnh chung)
JP2 (JPEG 2000)
J2K (Hình ảnh nén Wavelet)
JPEG2000 (JPEG 2000)
PNG (Biểu đồ minh họa mạng lưới không dây)
APNG (Đồ họa mạng di động hoạt hình)
PSD (Tài liệu Photoshop)
DXF (Định dạng Trao đổi Bản vẽ, hoặc Định dạng Trao đổi Bản vẽ,)
SVG (Đồ họa vector có thể mở rộng)
TIFF (Định dạng hình ảnh được gắn thẻ)
WEBP (Raster Hình ảnh Web)
WMF (Microsoft Windows Metafile)
PDF (Định dạng tài liệu di động (PDF))
HTML (HTML5 Canvas)
EMZ (Siêu tệp nâng cao được nén của Windows)
WMZ (Giao diện Windows Media Player được nén)
TGA (Đồ họa Targa)
SVGZ (Phiên bản nén của tệp Đồ họa Vectơ có thể mở rộng (.SVG).)
CANVAS (HTML5 Canvas)
ICO (Biểu tượng Windows)