C# के द्वारा ODGs को कंप्रेस करें
सर्वर-साइड API का उपयोग करके ODG फ़ाइलों को संपीड़ित करने के लिए अपने स्वयं के .NET ऐप्स बनाएं।
C# का उपयोग करके ODG फ़ाइलों को कैसे संपीड़ित करें
प्रकाशन के लिए छवियां तैयार करने में फ़ाइल संपीड़न सहित रचनात्मक और तकनीकी दोनों पहलू शामिल हैं। जबकि उच्च-रिज़ॉल्यूशन छवियां प्रिंट या आउटडोर विज्ञापन के लिए महत्वपूर्ण हैं, वे अपने बड़े फ़ाइल आकार के कारण वेब प्रदर्शन को कम कर सकते हैं। उपयुक्त छवि संपीड़न तकनीक उद्देश्य और प्रकाशन मंच के आधार पर भिन्न होती है। बड़ी फ़ाइलें लोडिंग समय को धीमा कर सकती हैं, विशेष रूप से मोबाइल कनेक्शन पर, जिससे उपयोगकर्ता अनुभव ख़राब हो सकता है। उपयोगकर्ता उस साइट को छोड़ सकते हैं जिसे लोड होने में बहुत अधिक समय लगता है और तेज़ विकल्प की तलाश करते हैं। इसके विपरीत, अत्यधिक छवि संपीड़न के परिणामस्वरूप धुंधलापन और पिक्सेलेशन हो सकता है, जिससे देखने का अनुभव ख़राब हो सकता है। फ़ाइल आकार और छवि गुणवत्ता के बीच संतुलन बनाने के लिए संपीड़न एल्गोरिदम और अनुपात का सही विकल्प आवश्यक है। ODG फ़ाइलों को संपीड़ित करने के लिए, हम इसका उपयोग करेंगे Aspose.Imaging for .NET API जो एक सुविधा संपन्न, शक्तिशाली और उपयोग में आसान छवि हेरफेर और C# प्लेटफॉर्म के लिए रूपांतरण API है। NuGet पैकेज मैनेजर खोलें, खोजें Aspose.Imaging और इंस्टॉल करें। आप पैकेज मैनेजर कंसोल से निम्न कमांड का भी उपयोग कर सकते हैं।
पैकेज प्रबंधक कंसोल कमांड
PM> Install-Package Aspose.Imaging
C# के माध्यम से ODGs को कंप्रेस करने के चरण
आपको अपने परिवेश में निम्न वर्कफ़्लो आज़माने के लिए aspose.imaging.dll की आवश्यकता होगी।
- लोड ODG छवि के साथ फ़ाइलें। लोड विधि
- छवियों को संपीड़ित करें;
- Aspose द्वारा समर्थित डिस्क में संपीड़ित छवि को सहेजें। इमेजिंग प्रारूप
सिस्टम आवश्यकताएं
Aspose.Imaging for .NET सभी प्रमुख ऑपरेटिंग सिस्टम पर समर्थित है। बस सुनिश्चित करें कि आपके पास निम्नलिखित पूर्वापेक्षाएँ हैं।
- माइक्रोसॉफ्ट विंडोज या .NET फ्रेमवर्क, .NET कोर, विंडोज एप्लीकेशन, एएसपी.नेट वेब एप्लीकेशन के साथ संगत ओएस।
- माइक्रोसॉफ्ट विजुअल स्टूडियो जैसे विकास का माहौल।
- Aspose.Imaging for .NET आपके प्रोजेक्ट में संदर्भित है।
ODG इमेज को कंप्रेस करें - .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"); | |
} | |
} | |
} | |
); | |
} |
Aspose.Imaging for .NET API . के बारे में
Aspose.Imaging API अनुप्रयोगों के भीतर छवियों (फ़ोटो) को बनाने, संशोधित करने, आकर्षित करने या परिवर्तित करने के लिए एक छवि प्रसंस्करण समाधान है। यह प्रदान करता है: क्रॉस-प्लेटफ़ॉर्म छवि प्रसंस्करण, जिसमें विभिन्न छवि प्रारूपों (समान बहु-पृष्ठ या बहु-फ़्रेम छवि प्रसंस्करण सहित) के बीच रूपांतरण शामिल हैं, लेकिन इन्हीं तक सीमित नहीं है, ड्राइंग जैसे संशोधन, ग्राफिक प्राइमेटिव के साथ काम करना, परिवर्तन (आकार बदलना, फसल करना, फ्लिप करना और घुमाना) , बिनाराइज़ेशन, ग्रेस्केल, एडजस्ट), उन्नत छवि हेरफेर सुविधाएँ (फ़िल्टरिंग, डिथरिंग, मास्किंग, डेस्क्यूइंग), और मेमोरी ऑप्टिमाइज़ेशन रणनीतियाँ। यह एक स्टैंडअलोन लाइब्रेरी है और इमेज ऑपरेशंस के लिए किसी सॉफ्टवेयर पर निर्भर नहीं है। परियोजनाओं के भीतर देशी एपीआई के साथ आसानी से उच्च-प्रदर्शन छवि रूपांतरण सुविधाएँ जोड़ सकते हैं। ये 100% निजी ऑन-प्रिमाइसेस एपीआई हैं और छवियों को आपके सर्वर पर संसाधित किया जाता है।ऑनलाइन ऐप के माध्यम से ODGs को कंप्रेस करें
हमारी लाइव डेमो वेबसाइट पर जाकर ODG दस्तावेज़ों को कंप्रेस करें। लाइव डेमो के निम्नलिखित लाभ हैं
ODG क्या है ODG फाइल का प्रारूप
ODG फ़ाइल स्वरूप का उपयोग Apache OpenOffice के Draw एप्लिकेशन द्वारा ड्राइंग तत्वों को वेक्टर छवि के रूप में संग्रहीत करने के लिए किया जाता है। यह एडवांसमेंट ऑफ स्ट्रक्चरल इंफॉर्मेशन स्टैंडर्ड्स (OASIS) द्वारा उल्लिखित XML आधारित फाइल फॉर्मेट विनिर्देशों का अनुसरण करता है। ODG बिंदुओं, रेखाओं और वक्रों का उपयोग करके सदिश छवियों के रूप में आरेखण का प्रतिनिधित्व करता है। ओपनऑफिस के अलावा, लिब्रे ऑफिस और अन्य एप्लिकेशन भी ओडीजी फाइल फॉर्मेट के साथ काम करने के लिए सहायता प्रदान करते हैं। ओपनऑफिस द्वारा समर्थित अन्य प्रारूप, उदाहरण के लिए, ओडीटी, ओडीएफ, ओडीपी और ओडीएस शामिल हैं।
अधिक पढ़ेंअन्य समर्थित संपीड़न प्रारूप
C# का उपयोग करके, कोई भी व्यक्ति विभिन्न प्रारूपों को आसानी से संपीड़ित कर सकता है, जिसमें शामिल हैं।