通过 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 转换这些格式: