PPTX DOCX XLSX PDF ODP
Aspose.Imaging  pro .NET
OTG

Komprimujte OTGs pomocí C#

Vytvořte si vlastní aplikace .NET pro komprimaci souborů OTG pomocí rozhraní API na straně serveru.

Jak komprimovat soubory OTG pomocí C#

Příprava obrázků k publikaci zahrnuje jak kreativní, tak technické aspekty, včetně komprese souborů. Zatímco obrázky s vysokým rozlišením jsou zásadní pro tisk nebo venkovní reklamu, mohou snížit výkon webu kvůli své velké velikosti souboru. Vhodná technika komprese obrazu se liší v závislosti na účelu a publikační platformě. Velké soubory mohou zpomalit načítání, zejména u mobilních připojení, což vede ke špatné uživatelské zkušenosti. Uživatelé mohou opustit web, jehož načítání trvá příliš dlouho, a hledat rychlejší alternativu. Naopak nadměrná komprese obrazu může mít za následek rozmazání a pixelizaci, což zhoršuje zážitek ze sledování. Správná volba kompresních algoritmů a poměrů je nezbytná pro dosažení rovnováhy mezi velikostí souboru a kvalitou obrazu. Abychom komprimovali soubory OTG, použijeme Aspose.Imaging for .NET API, které je funkčně bohaté, výkonné a snadno použitelné rozhraní API pro manipulaci a konverzi obrázků pro platformu C#. Otevřete správce balíčků NuGet , vyhledejte Aspose.Imaging a nainstalujte. Můžete také použít následující příkaz z konzoly Správce balíčků.

Příkaz konzole Správce balíčků


PM> Install-Package Aspose.Imaging

Kroky ke kompresi OTGs pomocí C#

K vyzkoušení následujícího pracovního postupu ve svém vlastním prostředí potřebujete aspose.imaging.dll .

  • Načíst soubory OTG metodou Image.Load
  • Komprimovat obrázky;
  • Uložte komprimovaný obrázek na disk ve formátu podporovaném Aspose.Imaging

Požadavky na systém

Aspose.Imaging pro .NET je podporován ve všech hlavních operačních systémech. Jen se ujistěte, že máte následující předpoklady.

  • Microsoft Windows nebo kompatibilní OS s rozhraním .NET Framework, .NET Core, aplikací pro Windows, webovou aplikací ASP.NET.
  • Vývojové prostředí jako Microsoft Visual Studio.
  • Aspose.Imaging pro .NET odkazovaný ve vašem projektu.
 

Komprimovat obrázky ve formátu OTG – .NET

using Aspose.Imaging.FileFormats.Bmp;
using Aspose.Imaging.FileFormats.Dicom;
using Aspose.Imaging.FileFormats.Emf;
using Aspose.Imaging.FileFormats.Jpeg;
using Aspose.Imaging.FileFormats.Jpeg2000;
using Aspose.Imaging.FileFormats.Png;
using Aspose.Imaging.FileFormats.Psd;
using Aspose.Imaging.FileFormats.Tiff.Enums;
using Aspose.Imaging.ImageOptions;
using Aspose.Imaging.Masking;
using Aspose.Imaging.Masking.Options;
using Aspose.Imaging.Masking.Result;
using Aspose.Imaging.Sources;
using Aspose.Imaging;
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
string templatesFolder = @"c:\Users\USER\Downloads\templates\";
CompressVectorFormatsToEmf();
void CompressVectorFormatToSvg()
{
List<string> formatExts = new List<string>() { "cdr", "cmx", "odg", "otg", "eps" };
formatExts.ForEach
(
formatExt =>
{
var inputFile = Path.Combine(templatesFolder, $"template.{formatExt}");
var outputFile = Path.Combine(templatesFolder, $"compressed_{formatExt.ToUpper()}");
using (var image = Image.Load(inputFile))
{
Func<VectorRasterizationOptions> rasterizationOptionsFactory = () =>
{
switch (image.FileFormat)
{
case FileFormat.Cdr:
return new CdrRasterizationOptions() { PageWidth = image.Width, PageHeight = image.Height };
case FileFormat.Cmx:
return new CmxRasterizationOptions() { PageWidth = image.Width, PageHeight = image.Height };
case FileFormat.Odg:
return new OdgRasterizationOptions() { PageWidth = image.Width, PageHeight = image.Height };
case FileFormat.Otg:
return new OtgRasterizationOptions() { PageWidth = image.Width, PageHeight = image.Height };
default:
return null;
}
};
if (image is IMultipageImage multiPage && multiPage.PageCount > 1)
{
for (var pageIndex = 0; pageIndex < multiPage.PageCount; pageIndex++)
{
multiPage.Pages[pageIndex].Save($"{outputFile}_p{pageIndex + 1}.svgz", new SvgOptions()
{
Compress = true,
VectorRasterizationOptions = rasterizationOptionsFactory.Invoke()
});
File.Delete($"{outputFile}_p{pageIndex + 1}.svgz");
}
}
else
{
image.Save(outputFile + ".svgz", new SvgOptions()
{
Compress = true,
VectorRasterizationOptions = rasterizationOptionsFactory.Invoke()
});
File.Delete(outputFile + ".svgz");
}
}
}
);
}
void CompressVectorFormatToWmf()
{
List<string> formatExts = new List<string>() { "cdr", "cmx", "odg", "otg", "eps" };
formatExts.ForEach
(
formatExt =>
{
var inputFile = Path.Combine(templatesFolder, $"template.{formatExt}");
var outputFile = Path.Combine(templatesFolder, $"compressed_{formatExt.ToUpper()}");
using (var image = Image.Load(inputFile))
{
Func<VectorRasterizationOptions> rasterizationOptionsFactory = () =>
{
switch (image.FileFormat)
{
case FileFormat.Cdr:
return new CdrRasterizationOptions() { PageWidth = image.Width, PageHeight = image.Height };
case FileFormat.Cmx:
return new CmxRasterizationOptions() { PageWidth = image.Width, PageHeight = image.Height };
case FileFormat.Odg:
return new OdgRasterizationOptions() { PageWidth = image.Width, PageHeight = image.Height };
case FileFormat.Otg:
return new OtgRasterizationOptions() { PageWidth = image.Width, PageHeight = image.Height };
default:
return null;
}
};
if (image is IMultipageImage multiPage && multiPage.PageCount > 1)
{
for (var pageIndex = 0; pageIndex < multiPage.PageCount; pageIndex++)
{
multiPage.Pages[pageIndex].Save($"{outputFile}_p{pageIndex + 1}.wmz", new WmfOptions()
{
Compress = true,
VectorRasterizationOptions = rasterizationOptionsFactory.Invoke()
});
File.Delete($"{outputFile}_p{pageIndex + 1}.wmz");
}
}
else
{
image.Save(outputFile + ".wmz", new WmfOptions()
{
Compress = true,
VectorRasterizationOptions = rasterizationOptionsFactory.Invoke()
});
File.Delete(outputFile + ".wmz");
}
}
}
);
}
void CompressVectorFormatsToEmf()
{
List<string> formatExts = new List<string>() { "cdr", "cmx", "odg", "otg", "eps" };
formatExts.ForEach
(
formatExt =>
{
var inputFile = Path.Combine(templatesFolder, $"template.{formatExt}");
var outputFile = Path.Combine(templatesFolder, $"compressed_{formatExt.ToUpper()}");
using (var image = Image.Load(inputFile))
{
Func<VectorRasterizationOptions> rasterizationOptionsFactory = () =>
{
switch (image.FileFormat)
{
case FileFormat.Cdr:
return new CdrRasterizationOptions() { PageWidth = image.Width, PageHeight = image.Height };
case FileFormat.Cmx:
return new CmxRasterizationOptions() { PageWidth = image.Width, PageHeight = image.Height };
case FileFormat.Odg:
return new OdgRasterizationOptions() { PageWidth = image.Width, PageHeight = image.Height };
case FileFormat.Otg:
return new OtgRasterizationOptions() { PageWidth = image.Width, PageHeight = image.Height };
default:
return null;
}
};
if (image is IMultipageImage multiPage && multiPage.PageCount > 1)
{
for (var pageIndex = 0; pageIndex < multiPage.PageCount; pageIndex++)
{
multiPage.Pages[pageIndex].Save($"{outputFile}_p{pageIndex + 1}.emz", new EmfOptions()
{
Compress = true,
VectorRasterizationOptions = rasterizationOptionsFactory.Invoke()
});
File.Delete($"{outputFile}_p{pageIndex + 1}.emz");
}
}
else
{
image.Save(outputFile + ".emz", new EmfOptions()
{
Compress = true,
VectorRasterizationOptions = rasterizationOptionsFactory.Invoke()
});
File.Delete(outputFile + ".emz");
}
}
}
);
}
 
  • O Aspose.Imaging pro .NET API

    Aspose.Imaging API je řešení pro zpracování obrázků pro vytváření, úpravu, kreslení nebo konverzi obrázků (fotografií) v rámci aplikací. Nabízí: multiplatformní zpracování obrazu, mimo jiné včetně převodů mezi různými formáty obrázků (včetně jednotného vícestránkového nebo vícesnímkového zpracování obrazu), úpravy jako kreslení, práci s grafickými primitivy, transformace (změna velikosti, oříznutí, převrácení a otočení). binarizace, stupně šedi, úprava), pokročilé funkce pro manipulaci s obrázky (filtrování, rozklad, maskování, vyrovnání sklonu) a strategie optimalizace paměti. Je to samostatná knihovna a není závislá na žádném softwaru pro operace s obrázky. V rámci projektů lze snadno přidat vysoce výkonné funkce pro konverzi obrázků s nativními rozhraními API. Jedná se o 100% soukromá on-premise API a obrázky se zpracovávají na vašich serverech.

    Komprimujte OTG pomocí online aplikace

    Komprimujte dokumenty ve formátu OTG na našem webu s živými ukázkami . Živé demo má následující výhody

      Není třeba nic stahovat ani nastavovat
      Není třeba psát žádný kód
      Stačí nahrát soubory OTG a stisknout tlačítko Komprimovat nyní.
      Okamžitě získejte odkaz ke stažení výsledného souboru

    OTG co je OTG Formát souboru

    Soubor OTG je šablona výkresu vytvořená pomocí standardu OpenDocument podle specifikace OASIS Office Applications 1.0. Představuje výchozí organizaci prvků výkresu pro vektorový obrázek, který lze použít k dalšímu vylepšení obsahu souboru.

    Přečtěte si více

    Další podporované formáty komprese

    Pomocí C# lze snadno komprimovat různé formáty včetně.

    APNG (Animovaná přenosná síťová grafika)
    BMP (Bitmapový obrázek)
    ICO (ikona Windows)
    JPG (Společná skupina fotografických expertů)
    JPEG (Společná skupina fotografických expertů)
    DIB (Bitmap nezávislý na zařízení)
    DICOM (Digitální zobrazování a komunikace)
    DJVU (Grafický formát)
    DNG (Obrázek z digitálního fotoaparátu)
    EMF (Vylepšený formát metasouborů)
    EMZ (Windows Compressed Enhanced Metafile)
    GIF (Grafický výměnný formát)
    JP2 (JPEG 2000)
    J2K (Wavelet Compressed Image)
    PNG (Přenosná síťová grafika)
    TIFF (Formát tagovaného obrázku)
    TIF (Formát tagovaného obrázku)
    WEBP (Rastrový webový obrázek)
    WMF (Microsoft Windows Metafile)
    WMZ (Komprimovaný vzhled Windows Media Player)
    TGA (Grafika Targa)
    SVG (Škálovatelná vektorová grafika)
    EPS (Encapsulated PostScript Language)
    CDR (Vektorové Kreslení Obrázek)
    CMX (Obrázek Corel Exchange)
    ODG (Formát Apache OpenOffice Draw)