PPTX DOCX XLSX PDF ODP
Aspose.Imaging  для Python
CDR

Используйте Python для сжатия CDR изображений

Сжимайте CDR изображения и фотографии с использованием собственных Python приложений и серверных API

Как сжимать CDR изображения используя библиотеку для Python

Конвертация изображений и фотографий для публикации подразумевает не только художественную работу, но и технические настройки, такие как сжатие файлов, или компрессию. Обычно для печати на бумаге или в наружной рекламе требуются файлы высокого разрешения, тогда как для веб-сайтов большой размер файлов может быть проблемой. Параметры сжатия изображений могут меняться в зависимости от их назначения и места публикации. Файлы большого размера могут долго загружаться на устройства, особенно при использовании мобильного интернета, ухудшая общий пользовательский опыт. Однако, излишне сжатые изображения могут стать размытыми, с видимой пикселизацией и ухудшить общее визуальное впечатление. Нахождение баланса между размером файла и качеством изображения требует оптимального подбора алгоритмов и степени сжатия. Для сжатия изображений в формате CDR, мы будем использовать Aspose.Imaging for Python via .NET API, который представляет собой многофункциональный, мощный и простой в использовании API для обработки и преобразования изображений для платформы Python. Вы можете установить его, используя следующую команду из вашей системной командной консоли:

Системная командная строка

>> pip install aspose-imaging-python-net

Действия по сжатию CDR с помощью Python

Вам понадобится aspose-imaging-python-net , чтобы попробовать следующий рабочий процесс в вашей собственной среде.

  • загрузить файлы CDR с помощью метода Image.Load;
  • применить сжатие для изображения;
  • сохранить сжатое изображения на диск в поддерживаемом Aspose.Imaging формате.

Системные Требования

Aspose.Imaging для Python поддерживается во всех основных операционных системах. Просто убедитесь, что у вас есть следующие предпосылки:

  • Microsoft Windows/Linux с .NET Core Runtime.
  • Менеджер пакетов Python и PyPi.
 

Сжатие CDR изображений - Python

from aspose.imaging.imageoptions import *
from aspose.imaging import *
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 compress_vector_format_to_svg():
obj_init = []
obj_init.append("cdr")
obj_init.append("cmx")
obj_init.append("odg")
obj_init.append("otg")
obj_init.append("eps")
format_exts = obj_init
for format_ext in format_exts:
input_file = os.path.join(templates_folder, f"template.{format_ext}")
output_file = os.path.join(templates_folder, f"compressed_{format_ext.upper()}")
with Image.load(input_file) as image:
def rasterization_options_factory():
tmp_switch = image.file_format
if tmp_switch == FileFormat.CDR:
obj_init2 = CdrRasterizationOptions()
obj_init2.page_width = float(image.width)
obj_init2.page_height = float(image.height)
return obj_init2
elif tmp_switch == FileFormat.CMX:
obj_init3 = CmxRasterizationOptions()
obj_init3.page_width = float(image.width)
obj_init3.page_height = float(image.height)
return obj_init3
elif tmp_switch == FileFormat.ODG:
obj_init4 = OdgRasterizationOptions()
obj_init4.page_width = float(image.width)
obj_init4.page_height = float(image.height)
return obj_init4
elif tmp_switch == FileFormat.OTG:
obj_init5 = OtgRasterizationOptions()
obj_init5.page_width = float(image.width)
obj_init5.page_height = float(image.height)
return obj_init5
else:
return None
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_step2 = True
page_index = 0
for page in multi_page.pages:
obj_init6 = SvgOptions()
obj_init6.compress = True
obj_init6.vector_rasterization_options = rasterization_options_factory()
out_file = f"{output_file}_p{page_index + 1}.svgz"
page.save(out_file, obj_init6)
if delete_output:
os.remove(out_file)
page_index += 1
else:
obj_init7 = SvgOptions()
obj_init7.compress = True
obj_init7.vector_rasterization_options = rasterization_options_factory()
image.save(output_file + ".svgz", obj_init7)
if delete_output:
os.remove(output_file + ".svgz")
def compress_vector_format_to_wmf():
obj_init8 = []
obj_init8.append("cdr")
obj_init8.append("cmx")
obj_init8.append("odg")
obj_init8.append("otg")
obj_init8.append("eps")
format_exts = obj_init8
for format_ext in format_exts:
input_file = os.path.join(templates_folder, f"template.{format_ext}")
output_file = os.path.join(templates_folder, f"compressed_{format_ext.upper()}")
with Image.load(input_file) as image:
def rasterization_options_factory():
tmp_switch = image.file_format
if tmp_switch == FileFormat.CDR:
obj_init9 = CdrRasterizationOptions()
obj_init9.page_width = float(image.width)
obj_init9.page_height = float(image.height)
return obj_init9
elif tmp_switch == FileFormat.CMX:
obj_init10 = CmxRasterizationOptions()
obj_init10.page_width = float(image.width)
obj_init10.page_height = float(image.height)
return obj_init10
elif tmp_switch == FileFormat.ODG:
obj_init11 = OdgRasterizationOptions()
obj_init11.page_width = float(image.width)
obj_init11.page_height = float(image.height)
return obj_init11
elif tmp_switch == FileFormat.OTG:
obj_init12 = OtgRasterizationOptions()
obj_init12.page_width = float(image.width)
obj_init12.page_height = float(image.height)
return obj_init12
else:
return None
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_step2 = True
page_index = 0
for page in multi_page.pages:
obj_init13 = WmfOptions()
obj_init13.compress = True
obj_init13.vector_rasterization_options = rasterization_options_factory()
out_file = f"{output_file}_p{page_index + 1}.wmz"
page.save(out_file, obj_init13)
if delete_output:
os.remove(out_file)
else:
obj_init14 = WmfOptions()
obj_init14.compress = True
obj_init14.vector_rasterization_options = rasterization_options_factory()
image.save(output_file + ".wmz", obj_init14)
if delete_output:
os.remove(output_file + ".wmz")
def compress_vector_formats_to_emf():
obj_init15 = []
obj_init15.append("cdr")
obj_init15.append("cmx")
obj_init15.append("odg")
obj_init15.append("otg")
obj_init15.append("eps")
format_exts = obj_init15
for format_ext in format_exts:
input_file = os.path.join(templates_folder, f"template.{format_ext}")
output_file = os.path.join(templates_folder, f"compressed_{format_ext.upper()}")
with Image.load(input_file) as image:
def rasterization_options_factory():
tmp_switch = image.file_format
if tmp_switch == FileFormat.CDR:
obj_init16 = CdrRasterizationOptions()
obj_init16.page_width = float(image.width)
obj_init16.page_height = float(image.height)
return obj_init16
elif tmp_switch == FileFormat.CMX:
obj_init17 = CmxRasterizationOptions()
obj_init17.page_width = float(image.width)
obj_init17.page_height = float(image.height)
return obj_init17
elif tmp_switch == FileFormat.ODG:
obj_init18 = OdgRasterizationOptions()
obj_init18.page_width = float(image.width)
obj_init18.page_height = float(image.height)
return obj_init18
elif tmp_switch == FileFormat.OTG:
obj_init19 = OtgRasterizationOptions()
obj_init19.page_width = float(image.width)
obj_init19.page_height = float(image.height)
return obj_init19
else:
return None
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_step2 = True
page_index = 0
for page in multi_page.pages:
obj_init20 = EmfOptions()
obj_init20.compress = True
obj_init20.vector_rasterization_options = rasterization_options_factory()
out_file = f"{output_file}_p{page_index + 1}.emz"
page.save(out_file, obj_init20)
if delete_output:
os.remove(out_file)
else:
obj_init21 = EmfOptions()
obj_init21.compress = True
obj_init21.vector_rasterization_options = rasterization_options_factory()
image.save(output_file + ".emz", obj_init21)
if delete_output:
os.remove(output_file + ".emz")
# run
compress_vector_formats_to_emf()
compress_vector_format_to_svg()
compress_vector_format_to_wmf()
 
  • Об Aspose.Imaging for Python API

    Aspose.Imaging API — это решение для обработки изображений, позволяющее создавать, изменять, рисовать или конвертировать изображения и фотографии в приложениях. Он предлагает: кросс-платформенную обработку изображений, включая, помимо прочего, преобразования между различными форматами изображений (включая единую многостраничную или многокадровую обработку изображений), модификации, такие как рисование, работа с графическими примитивами, преобразования (изменение размера, обрезка, отражение и поворот), бинаризация, оттенки серого, настройка яркости, контрастности, расширенные функции обработки изображений (фильтрация, дизеринг, маскирование, устранение перекоса) и стратегии оптимизации памяти. Это автономная библиотека, которая не зависит от какого-либо программного обеспечения для операций с изображениями. Можно легко добавить в проекты высокопроизводительные функции преобразования изображений с помощью собственных API. Это 100% частные локальные API, а изображения обрабатываются на ваших серверах.

    Сжатие файлов CDR через онлайн-приложение

    Сожмите документы CDR, посетив наш веб-сайт Live Demos . Online примеры имеют следующие преимущества

      Не нужно ничего скачивать или настраивать
      Нет необходимости писать какой-либо код
      Просто загрузите файлы CDR и нажмите кнопку "Сжать сейчас"
      Мгновенно получить ссылку для скачивания результирующего файла

    CDR Чем является CDR формат

    Файл CDR — это файл изображения векторного рисунка, изначально созданный с помощью CorelDRAW для хранения закодированного и сжатого цифрового изображения. Такой файл чертежа содержит текст, линии, формы, изображения, цвета и эффекты для векторного представления содержимого изображения. Файлы CDR можно открывать в CorelDRAW в качестве основного приложения, а также преобразовывать в другие форматы, такие как PDF, JPG, PNG, BMP и AI. Его можно использовать для представления различных графических данных, таких как брошюры, таблоиды, конверты и открытки. Помимо CorelDRAW, другие продукты Corel, такие как Corel Paintshop Pro и CorelDRAW Graphics Suite, также могут открывать форматы файлов CDR.

    Читать далее

    Другие поддерживаемые форматы сжатия

    Используя Python, можно легко сжимать различные форматы, в том числе:

    APNG (Анимированная портативная сетевая графика)
    BMP (Растровое изображение)
    ICO (Значок Windows)
    JPG (Объединенная группа экспертов по фотографии)
    JPEG (Объединенная группа экспертов по фотографии)
    DIB (Независимое от устройства растровое изображение)
    DICOM (Цифровая визуализация и связь)
    DJVU (Графический формат)
    DNG (Изображение цифровой камеры)
    EMF (Расширенный формат метафайла)
    EMZ (Сжатый расширенный метафайл Windows)
    GIF (Графический формат обмена)
    JP2 (JPEG 2000)
    J2K (Сжатое изображение вейвлета)
    PNG (Портативная сетевая графика)
    TIFF (Формат изображения с тегами)
    TIF (Формат изображения с тегами)
    WEBP (Растровое веб-изображение)
    WMF (Метафайл Microsoft Windows)
    WMZ (Сжатая оболочка проигрывателя Windows Media)
    TGA (Тарга Графика)
    SVG (Масштабируемая векторная графика)
    EPS (Инкапсулированный язык PostScript)
    CMX (Обмен изображениями Corel)
    OTG (Стандарт OpenDocument)
    ODG (Формат отрисовки Apache OpenOffice)