通过 Python 语言转换图像文件

转换图像、图元文件和其他文件以构建 Python 图像处理应用程序。

 

Aspose.Imaging for Python via .NET API 为程序​​员提供了不同的图像处理功能。程序员可以在源代码中使用它来将照片和图片等光栅和矢量图像转换为 PSD、PDF、APNG、BMP、TIFF、GIF、PNG、DICOM、HTML5 CANVAS、WEBP、WMF、EMF、SVG、JPG、JPEG2000和其他图像格式。 API 不仅包含转换功能,还包含不同的过滤器、图形处理、内存策略、裁剪、调整大小、调整和其他使用的操作。

如何将图像转换为 BMP、JPG、PNG

通过 .NET API 使用 Aspose.Imaging for Python,跨格式转换很容易。这里有几个常见的例子,例如图像到 bmp图像到 jpg图像到 png。过程是使用 Image.Load 加载图像。使用指定设置创建所选 图像格式选项 的对象。最后调用 Save Method

处理图像转换的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()

如何将光栅图像转换为 PDF 文档

将光栅图像转换为PDF的过程与图像交叉转换的过程相同,只是API为特定的PDF提供了 PdfOptions 设置。

将光栅图像转换为 PDF 的 Python 源代码

from aspose.imaging import Image
from aspose.imaging.fileformats.pdf import PdfDocumentInfo
from aspose.imaging.imageoptions import PdfOptions
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
output_file = os.path.join(data_dir, "output.pdf")
with Image.load(os.path.join(data_dir, "template.gif")) as image:
options = PdfOptions()
options.pdf_document_info = PdfDocumentInfo()
image.save(output_file, options);
# delete if necessary
if delete_output:
os.remove(output_file)

如何将 SVG 图像转换为光栅 BMP、PNG、JPG

SVG 图像的转换是一样的,加载 SVG 图像,使用所需的图像保存选项并调用 Save 方法。图像 API 提供 SvgRasterizationOptions 用于设置 PageWidth、PageHeight 和光栅图像使用其 VectorRasterizationOptions 属性进行初始化和获取 SvgRasterizationOptions 选项。

用于转换 SVG 图像光栅图像的 Python 代码

from aspose.imaging import Image
from aspose.imaging.fileformats.svg import SvgImage
from aspose.imaging.imageoptions import PngOptions, SvgRasterizationOptions
import os
import aspose.pycore as aspycore
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
output_file = os.path.join(data_dir, "ConvertingSVGToRasterImages_out.png")
# Load the image and cast it as SvgImage
with aspycore.as_of(Image.load(os.path.join(data_dir, "template.svg")), SvgImage) as image:
# Create an instance of relevant raster image options and Save the results to disk
png_options = PngOptions();
svg_options = SvgRasterizationOptions();
svg_options.page_width = 100.0;
svg_options.page_height = 200.0;
png_options.vector_rasterization_options = svg_options;
image.save(output_file, png_options);
# delete if necessary
if delete_output:
os.remove(output_file)

使用 Python 语言转换所有支持的图像格式

下面是完整的图像格式列表,您可以将其转换为:


所有支持的图像格式转换为使用 Python 语言

下面是图像格式的完整列表,您可以通过 .NET 使用 Aspose.Imaging for Python 转换这些格式: