使用 Python 进行 DJVU 到 BMP 图像转换
创建 Python 应用程序以通过服务器 API 将 DJVU 转换为 BMP 图像和照片
如何使用 Python 将 DJVU 转换为 BMP 图像和照片
图像文件从一种格式转换为另一种格式是每个图形设计师遇到的常见任务。文件转换的效率和卓越性不仅影响完成速度,而且对评估整体工作质量也起着至关重要的作用。关于图像源,它们经常需要转换为更适合打印或在线分发的替代格式。在图形编辑器中制作的图像可能是矢量格式。在这种情况下,为了网站发布,必须对其进行光栅化并以光栅格式保存。您可以选择将图像转换为未压缩格式以获得卓越的质量,或将其保存为无损压缩格式以最小化文件大小。对于必须减小文件大小的情况(例如在网站应用程序中),可以转换为有损压缩格式。专门的图像数据压缩算法可以显着减小文件大小,同时保持可接受的图像质量,确保快速图像加载。要将图像和照片从 DJVU 转换为 BMP,我们将使用 Aspose.Imaging for Python via .NET API 是一个功能丰富、功能强大且易于使用的图像处理和转换 API,适用于 Python 平台。您可以使用系统命令中的以下命令安装它。
系统命令行
>> pip install aspose-imaging-python-net
通过 Python 将 DJVU 转换为 BMP 的步骤
开发人员只需几行代码即可轻松加载 DJVU 文件并将其转换为 BMP。
- 使用 Image.Load 方法加载 DJVU 文件
- 创建和设置 ImageOptionsBase 所需子类的实例(例如 BmpOptions、PngOptions 等)
- 调用 Image.Save 方法
- 传递带有 BMP 扩展名的文件路径和 ImageOptionsBase 类的对象
系统要求
在运行转换示例代码之前,请确保您具有以下先决条件。
- 操作系统:Windows 或Linux。
- 开发环境:支持.NET Core 7及更高版本,例如Microsoft Visual Studio。
将 DJVU 转换为 BMP 的免费应用程序
查看我们的 将 DJVU 转换为 BMP 的现场演示
将 DJVU 转换为 BMP - 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() |
DJVU 什么是 DJVU 文件格式
DjVu,发音为 DJVU ,是一种图形文件格式,用于扫描文档和书籍,尤其是包含文本、绘图、图像和照片组合的文档和书籍。它是由 AT&T 实验室开发的。它使用多种技术,例如文本和背景图像的图像层分离、渐进式加载、算术编码和双色调图像的有损压缩。由于 DJVU 文件可以包含压缩但高质量的彩色图像、照片、文本和绘图,因此可以保存在更小的空间中,因此它在网络上用作电子书、手册、报纸、古代文件等。
阅读更多 | DJVUBMP 什么是 BMP 文件格式
扩展名为 .BMP 的文件表示用于存储位图数字图像的位图图像文件。这些图像独立于图形适配器,也称为设备独立位图 (DIB) 文件格式。这种独立性的目的是在 Microsoft Windows 和 Mac 等多个平台上打开文件。 BMP 文件格式可以将数据存储为单色和具有各种颜色深度的彩色格式的二维数字图像。
阅读更多 | BMP其他支持的转换
使用 Python,可以轻松转换不同的格式,包括。