PPTX DOCX XLSX PDF ODP
Aspose.Imaging  skirta Python
ODG

Naudokite Python ODG vaizdams suspausti

Kurkite Python programas, kad suspaustumėte ODG vaizdus ir nuotraukas naudodami serverio API

Kaip suspausti ODG vaizdus ir nuotraukas naudojant Python

Vaizdų pritaikymas publikavimui apima ne tik kūrybinius procesus, bet ir techninius koregavimus, tokius kaip failų glaudinimas. Paprastai didelės skiriamosios gebos vaizdai yra būtini spausdintinei medžiagai ar lauko reklamai, o svetainės gali susidurti su iššūkiais dėl didelio failo dydžio. Vaizdo glaudinimo nustatymai gali skirtis priklausomai nuo jų numatomo naudojimo ir publikavimo vietos. Didelių failų atsisiuntimas gali užtrukti daug laiko, ypač naudojant mobilųjį ryšį, o tai turi įtakos bendrai vartotojo patirčiai. Tačiau per daug suspausti vaizdai gali būti neryškūs ir matomi pikseliais, o tai kenkia vaizdo kokybei. Norint pasiekti failo dydžio ir vaizdo kokybės pusiausvyrą, reikia kruopščiai pasirinkti algoritmus ir glaudinimo lygius. Norėdami suspausti vaizdus ODG formatu, naudosime Aspose.Imaging for Python per .NET API, kuri yra daug funkcijų, galinga ir lengvai naudojama vaizdo apdorojimo ir konvertavimo API, skirta Python platformai. Jį galite įdiegti naudodami šią komandą iš savo sistemos komandos.

Sistemos komandų eilutė

>> pip install aspose-imaging-python-net

Veiksmai, kaip suspausti ODG naudojant Python

Jums reikia aspose-imaging-python-net , kad galėtumėte išbandyti toliau nurodytą darbo eigą savo aplinkoje.

  • Įkelkite ODG failus naudodami Image.Load metodą
  • Suspausti vaizdus;
  • Išsaugokite suspaustą vaizdą į diską palaikomu Aspose.Imaging formatu

Sistemos reikalavimai

„Aspose.Imaging“, skirta Python, palaikoma visose pagrindinėse operacinėse sistemose. Tiesiog įsitikinkite, kad turite šias būtinas sąlygas.

  • Microsoft Windows / Linux su .NET Core Runtime.
  • Python ir PyPi paketų tvarkyklė.
 

Suspausti ODG vaizdus – 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()
 
  • Apie „Aspose.Imaging“, skirta Python API

    Aspose.Imaging API yra vaizdo apdorojimo sprendimas, skirtas kurti, modifikuoti, piešti ar konvertuoti vaizdus (nuotraukas) programose. Ji siūlo: kelių platformų vaizdo apdorojimą, įskaitant, bet tuo neapsiribojant, konvertavimą tarp įvairių vaizdo formatų (įskaitant vienodą kelių puslapių arba kelių kadrų vaizdo apdorojimą), modifikacijas, tokias kaip piešimas, darbas su grafiniais primityvais, transformacijos (keisti dydį, apkarpyti, apversti ir pasukti). , dvejetainis, pilkos spalvos tonas, koregavimas), pažangios vaizdo apdorojimo funkcijos (filtravimas, keitimas, maskavimas, iškrypimas) ir atminties optimizavimo strategijos. Tai yra atskira biblioteka ir nepriklauso nuo jokios programinės įrangos vaizdo operacijoms. Projektuose galima lengvai pridėti didelio našumo vaizdo konvertavimo funkcijų naudojant vietines API. Tai yra 100 % privačios vietinės API, o vaizdai apdorojami jūsų serveriuose.

    Suspauskite ODG naudodami internetinę programą

    Suspauskite ODG dokumentus apsilankę mūsų tiesioginės demonstracinės versijos svetainėje . Tiesioginė demonstracinė versija turi šiuos privalumus

      Nereikia nieko atsisiųsti ar nustatyti
      Nereikia rašyti jokio kodo
      Tiesiog įkelkite ODG failus ir paspauskite mygtuką "Suspausti dabar".
      Iškart gaukite gauto failo atsisiuntimo nuorodą

    ODG Kas yra ODG Failo formatas

    ODG failo formatą naudoja „Apache OpenOffice“ programa „Draw“, kad išsaugotų piešimo elementus kaip vektorinį vaizdą. Ji atitinka XML failo formato specifikacijas, nurodytas Struktūrinės informacijos standartų pažangos (OASIS). ODG vaizduoja brėžinius kaip vektorinius vaizdus naudojant taškus, linijas ir kreives. Be OpenOffice, LibreOffice ir kitos programos taip pat palaiko darbą su ODG failo formatu. Pavyzdžiui, kiti „OpenOffice“ palaikomi formatai apima ODT, ODF, ODP ir ODS.

    Skaityti daugiau

    Kiti palaikomi suspaudimo formatai

    Naudodami Python galite lengvai suspausti įvairius formatus, įskaitant.

    APNG (Animuota nešiojama tinklo grafika)
    BMP (Bitmap paveikslėlis)
    ICO (Windows piktograma)
    JPG (Jungtinė fotografijos ekspertų grupė)
    JPEG (Jungtinė fotografijos ekspertų grupė)
    DIB (Nuo įrenginio nepriklausomas bitmap)
    DICOM (Skaitmeninis vaizdas ir ryšiai)
    DJVU (Grafikos formatas)
    DNG (Skaitmeninio fotoaparato vaizdas)
    EMF (Patobulintas metafailo formatas)
    EMZ („Windows“ suspaustas patobulintas metafailas)
    GIF (Grafinis mainų formatas)
    JP2 (JPEG 2000)
    J2K („Wavelet“ suspaustas vaizdas)
    PNG (Nešiojamoji tinklo grafika)
    TIFF (Pažymėtas vaizdo formatas)
    TIF (Pažymėtas vaizdo formatas)
    WEBP (Rastrinis žiniatinklio vaizdas)
    WMF (Microsoft Windows metafailas)
    WMZ (Suspausta Windows Media Player oda)
    TGA (Targa grafika)
    SVG (Keičiama vektorinė grafika)
    EPS (Inkapsuliuota PostScript kalba)
    CDR (Vektorinio piešimo vaizdas)
    CMX (Corel Exchange vaizdas)
    OTG (OpenDocument standartas)