使用 Python 进行 WMF 图像抖动
创建 Python 应用程序以通过服务器 API 抖动 WMF 图像和照片
如何使用 Python 抖动 WMF 图像和照片
增强网站的图像和照片参数会显着影响网络流量。在这些优化中,减少图像的调色板可以有效地最小化文件大小并加速页面加载。然而,为了防止颜色梯度出现突然的边缘或干扰,建议利用抖动方法。该技术有助于改善颜色过渡并提高整体图像质量。它引入了轻微的“噪音”,对图像感知产生积极影响。对于 WMF 格式的抖动图像,我们将应用 Aspose.Imaging for Python via .NET API 是一个功能丰富、功能强大且易于使用的图像处理和转换 API,适用于 Python 平台。您可以使用系统命令中的以下命令安装它。
系统命令行
>> pip install aspose-imaging-python-net
通过 Python 抖动 WMF 的步骤
您需要 aspose-imaging-python-net 在您自己的环境中尝试以下工作流程。
- 使用 Image.Load 方法加载 WMF 文件 +抖动图像;
- 以 Aspose.Imaging 支持的格式将压缩图像保存到光盘
系统要求
所有主要操作系统都支持 Python 的 Aspose.Imaging。只需确保您具有以下先决条件。
- 带有 .NET Core 运行时的 Microsoft Windows / Linux。
- Python 和 PyPi 包管理器。
抖动 WMF 图像 - Python
from aspose.imaging import Image, RasterImage, DitheringMethod, IMultipageImage | |
from aspose.imaging.imageoptions import PngOptions | |
from aspose.pycore import as_of, 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 | |
def delete_file(file): | |
if delete_output: | |
os.remove(file) | |
def floyd_steinberg_dithering(): | |
filter_images(lambda image: image.dither(DitheringMethod.FLOYD_STEINBERG_DITHERING, 4), "floydsteinbergdithering") | |
def threshold_dithering(): | |
filter_images(lambda image: image.dither(DitheringMethod.THRESHOLD_DITHERING, 4), "thresholddithering") | |
def filter_images(do_filter, filter_name): | |
obj_init = [] | |
obj_init.append("jpg") | |
obj_init.append("png") | |
obj_init.append("bmp") | |
obj_init.append("apng") | |
obj_init.append("dicom") | |
obj_init.append("jp2") | |
obj_init.append("j2k") | |
obj_init.append("tga") | |
obj_init.append("webp") | |
obj_init.append("tiff") | |
obj_init.append("gif") | |
obj_init.append("ico") | |
raster_formats = obj_init | |
obj_init2 = [] | |
obj_init2.append("svg") | |
obj_init2.append("otg") | |
obj_init2.append("odg") | |
obj_init2.append("eps") | |
obj_init2.append("wmf") | |
obj_init2.append("emf") | |
obj_init2.append("wmz") | |
obj_init2.append("emz") | |
obj_init2.append("cmx") | |
obj_init2.append("cdr") | |
vector_formats = obj_init2 | |
all_formats = raster_formats | |
all_formats.extend(vector_formats) | |
for format_ext in all_formats: | |
input_file = os.path.join(templates_folder, f"template.{format_ext}") | |
is_vector_format = format_ext in vector_formats | |
if is_vector_format: | |
input_file = rasterize_vector_image(format_ext, input_file) | |
output_file = os.path.join(templates_folder, f"{filter_name}_{format_ext}.png") | |
print(format_ext) | |
# explicit type casting from Image to RasterImage | |
with as_of(Image.load(input_file), RasterImage) as image: | |
do_filter(image) | |
multi_page = None | |
# if image implements an IMultipageImage interface | |
if is_assignable(image, IMultipageImage): | |
multi_page = as_of(image, IMultipageImage) | |
if multi_page is not None and multi_page.page_count > 1: | |
# for loop | |
for_first_step = True | |
page_index = 0 | |
for page in multi_page.pages: | |
file_name = os.path.join( | |
templates_folder, | |
f"{filter_name}_page{page_index}_{format_ext}.png") | |
page.save(file_name, PngOptions()) | |
delete_file(file_name) | |
page_index += 1 | |
else: | |
image.save(output_file, PngOptions()) | |
delete_file(output_file) | |
if is_vector_format: | |
delete_file(input_file) | |
def rasterize_vector_image(format_ext, input_file): | |
output_file = os.path.join(templates_folder, f"rasterized.{format_ext}.png") | |
with Image.load(input_file) as image: | |
image.save(output_file, PngOptions()) | |
return output_file | |
# run | |
floyd_steinberg_dithering() | |
threshold_dithering() |
关于 Python API 的 Aspose.Imaging
Aspose.Imaging API 是一种图像处理解决方案,用于在应用程序中创建、修改、绘制或转换图像(照片)。它提供:跨平台的图像处理,包括但不限于各种图像格式之间的转换(包括统一的多页或多帧图像处理)、绘图等修改、使用图形基元、转换(调整大小、裁剪、翻转和旋转) 、二值化、灰度、调整)、高级图像处理功能(过滤、抖动、遮罩、去偏斜)和内存优化策略。它是一个独立的库,不依赖任何软件进行图像操作。可以在项目中使用原生 API 轻松添加高性能图像转换功能。这些是 100% 私有的本地 API,图像在您的服务器上处理。通过在线应用程序抖动 WMF
通过访问我们的 Live Demos 网站 抖动 WMF 文档。 现场演示有以下好处
WMF 什么是 WMF 文件格式
带有 WMF 扩展名的文件代表 Microsoft Windows 元文件 (WMF),用于存储矢量以及位图格式的图像数据。更准确地说,WMF 属于与设备无关的图形文件格式的矢量文件格式类别。 Windows 图形设备接口 (GDI) 使用存储在 WMF 文件中的函数在屏幕上显示图像。后来发布了 WMF 的更增强版本,称为增强元文件 (EMF),使该格式的功能更加丰富。实际上,WMF 类似于 SVG。
阅读更多其他支持的抖动格式
使用 Python,可以轻松地抖动不同的格式,包括。