Minnesoptimering är en viktig faktor att tänka på när man utför någon beräkning eller bearbetning av digitala data. Olika optimeringsstrategier tillämpas för att minimera minnesutnyttjande såväl som bearbetningsfördröjning. Detta är anledningen till att vi har implementerat funktionen för minnesoptimering för att ladda och skapa JPEG 2000(JP2) och DjVu bilder i Aspose.Imaging för .NET och Java 19.12 .
Minnesoptimering för JPEG 2000-bilder
Aspose.Imaging för .NET och Java API:er stöder arbete med JPEG 2000-bilder. Du kan ladda de befintliga JPEG 2000-bilderna samt skapa och spara JPEG 2000-bilder genom att ange olika Jpeg2000 Codec-alternativ i C# eller Java. För att optimera minnesförbrukningen när du laddar och sparar JPEG 2000-bilder kan du definiera minnesoptimeringsstrategin och begränsa minnesbuffertstorleken som ska användas.
Låt oss ta en titt på hur du anger minnesbuffertstorleken när du laddar och skapar JPEG 2000-bilder.
Ladda JPEG 2000-bild
Du kan ange minnesbuffertstorleken när du laddar en JPEG 2000-bild med egenskapen BufferSizeHint i klassen LoadOptions som visas i följande C#- och Java-kodexempel.
C#
// Ställer in en minnesgräns på 10 megabyte för målladdad bild
// JP2 codec
using (Image image = Image.Load("inputFile.jp2", new LoadOptions() { BufferSizeHint = 10 })) {
image.Save("outputFile.jp2");
}
// J2K codec
using (Image image = Image.Load("inputFile.j2k", new LoadOptions() { BufferSizeHint = 10 })) {
image.Save("outputFile.j2k");
}
Java
// Ställer in en minnesgräns på 10 megabyte för målladdad bild
// JP2 codec
try (Image image = Image.load("inputFile.jp2", new LoadOptions() {{ setBufferSizeHint(10); }}))
{
image.save("outputFile.jp2");
}
// J2K codec
try (Image image = Image.load("inputFile.j2k", new LoadOptions() {{ setBufferSizeHint(10); }}))
{
image.save("outputFile.j2k");
}
Skapa eller spara JPEG 2000-bild
I likhet med laddningen av JPEG 2000-bilder kan du ange minnesbuffertstorlek när du skapar eller sparar bilderna med egenskapen BufferSizeHint i klassen Jpeg2000Options.
C#
// Ställer in en minnesgräns på 10 megabyte för målskapad bild
// JP2 codec
ImageOptionsBase createOptions = new Jpeg2000Options { Codec = Jpeg2000Codec.Jp2 };
createOptions.BufferSizeHint = 10;
createOptions.Source = new FileCreateSource("createdFile.jp2", false);
using (var image = Image.Create(createOptions, 1000, 1000)) {
image.Save(); // save to same location
}
// J2K codec
ImageOptionsBase createOptions = new Jpeg2000Options { Codec = Jpeg2000Codec.J2K };
createOptions.BufferSizeHint = 10;
createOptions.Source = new FileCreateSource("createdFile.j2k", false);
using (var image = Image.Create(createOptions, 1000, 1000)) {
image.Save(); // save to same location
}
Java
// Ställer in en minnesgräns på 10 megabyte för målskapad bild
// JP2 codec
try(Jpeg2000Options createOptions = new Jpeg2000Options())
{
createOptions.setCodec(Jpeg2000Codec.Jp2);
createOptions.setBufferSizeHint(10);
createOptions.setSource(new FileCreateSource("createdFile.jp2", false));
try (Image image = Image.create(createOptions, 1000, 1000))
{
image.save(); // save to same location
}
}
// J2K codec
try(Jpeg2000Options createOptions = new Jpeg2000Options())
{
createOptions.setCodec(Jpeg2000Codec.J2K);
createOptions.setBufferSizeHint(10);
createOptions.setSource(new FileCreateSource("createdFile.j2k", false));
try (Image image = Image.create(createOptions, 1000, 1000))
{
image.save(); // save to same location
}
}
Minnesoptimering för DjVu-bilder
Aspose.Imaging för .NET och Java API:er stöder också arbete med DjVu-bilder. Du kan ladda en DjVu-bild och utföra konverteringen från DjVu till rasterbildsformat som TIFF, PNG, etc. På samma sätt som JEPG 2000-bilder kan du optimera minnesutnyttjandet när du laddar en DjVu-bild som visas i följande C#- och Java-kodexempel .
C#
// Ställer in en minnesgräns på 50 megabyte för målladdad bild
using (DjvuImage image = (DjvuImage)Image.Load("test.djvu", new LoadOptions { BufferSizeHint = 50 }))
{
for (int pageNum = 0; pageNum < image.Pages.Length; pageNum++) {
image.Pages[pageNum].Save("page" + pageNum + ".png", new PngOptions());
}
}
Java
// Ställer in en minnesgräns på 50 megabyte för målladdad bild
try (DjvuImage image = (DjvuImage)Image.load("test.djvu", new LoadOptions() {{ setBufferSizeHint(50); }}))
{
int pageNum = 0;
for (DjvuPage page : image.getPages())
{
page.save("page" + pageNum + ".png", new PngOptions());
pageNum++;
}
}
Tja, du har sett hur man begränsar minnesbuffertstorleken när man laddar eller skapar JP2- eller DjVu-bilder med Aspose.Imaging. Så om du arbetar med JPEG 2000 och DjVu-bilder och vill optimera minnesförbrukningen rekommenderar vi att du laddar ner och använder Aspose.Imaging 19.12 i dina .NET- eller Java-applikationer.
Som alltid, om du har några frågor eller funderingar, låt oss veta det via vårt forum.