Class ImageOptionsBase

Class ImageOptionsBase

Namespace: Aspose.Imaging
Assembly: Aspose.Imaging.dll (25.7.0)

The image base options.

[JsonObject(MemberSerialization.OptIn)]
   public abstract class ImageOptionsBase : DisposableObject, IDisposable, IHasXmpData, IHasMetadata, ICloneable
   {
   }

Inheritance

object DisposableObject ImageOptionsBase

Derived

BmpOptions , DicomOptions , DxfOptions , EpsOptions , GifOptions , Html5CanvasOptions , IcoOptions , Jpeg2000Options , JpegOptions , MetafileOptions , PdfOptions , PngOptions , PsdOptions , SvgOptions , TgaOptions , TiffOptions , WebPOptions

Implements

IDisposable , IHasXmpData , IHasMetadata , ICloneable

Inherited Members

DisposableObject.Dispose() , DisposableObject.ReleaseManagedResources() , DisposableObject.ReleaseUnmanagedResources() , DisposableObject.VerifyNotDisposed() , DisposableObject.Disposed , object.GetType() , object.MemberwiseClone() , object.ToString() , object.Equals(object?) , object.Equals(object?, object?) , object.ReferenceEquals(object?, object?) , object.GetHashCode()

Constructors

ImageOptionsBase()

Initializes a new instance of the Aspose.Imaging.ImageOptionsBase class.

[JsonConstructor]
   protected ImageOptionsBase()
   {
   }

ImageOptionsBase(ImageOptionsBase)

Initializes a new instance of the Aspose.Imaging.ImageOptionsBase class.

protected ImageOptionsBase(ImageOptionsBase imageOptions)
   {
   }

Parameters

imageOptions ImageOptionsBase

The image options.

ImageOptionsBase(Image)

Initializes a new instance of the Aspose.Imaging.ImageOptionsBase class.

protected ImageOptionsBase(Image image)
   {
       _image = image;
       BackgroundColor = Color.Transparent;
   }

Parameters

image Image

The image.

Properties

BufferSizeHint

Gets or sets the buffer size hint which is defined max allowed size for all internal buffers.

public int BufferSizeHint
    {
        get;
        set;
    }

Property Value

int

Examples

The following example shows how to set a memory limit when creating a new JPEG image. The memory limit is the maximum allowed size (in megabytes) for all internal buffers.

string dir = "c:\\aspose.imaging\\issues\\net\\3404\\";
   Aspose.Imaging.ImageOptionsBase createOptions = new Aspose.Imaging.ImageOptions.JpegOptions
   {
      CompressionType = Aspose.Imaging.FileFormats.Jpeg.JpegCompressionMode.Progressive,
      BufferSizeHint = 50,
      Source = new Aspose.Imaging.Sources.FileCreateSource(dir + "createdFile.jpg", false),
   };
   using (var image = Aspose.Imaging.Image.Create(createOptions, 1000, 1000))
   {
      image.Save(); // save to same location
   }

The following example shows how to set a memory limit when creating a PNG image and drawing complex graphics on it. The memory limit is the maximum allowed size (in megabytes) for all internal buffers.

string dir = "c:\\aspose.imaging\\issues\\net\\3383\\";
   const int ImageSize = 2000;
   Aspose.Imaging.ImageOptionsBase createOptions = new Aspose.Imaging.ImageOptions.PngOptions();
   createOptions.Source = new Aspose.Imaging.Sources.FileCreateSource(dir + "graphics_simple.png", false);
   createOptions.BufferSizeHint = 30; // Memory limit is 30 Mb
   using (Aspose.Imaging.Image image = Aspose.Imaging.Image.Create(createOptions, ImageSize, ImageSize))
   {
       Aspose.Imaging.Graphics graphics = new Aspose.Imaging.Graphics(image);
       graphics.Clear(Aspose.Imaging.Color.LightSkyBlue);
       graphics.DrawLine(new Aspose.Imaging.Pen(Aspose.Imaging.Color.Red, 3f), 0, 0, image.Width, image.Height);
       image.Save();
   }
   const int OperationAreaSize = 10;
   createOptions = new Aspose.Imaging.ImageOptions.PngOptions();
   createOptions.Source = new Aspose.Imaging.Sources.FileCreateSource(dir + "graphics_complex.png", false);
   createOptions.BufferSizeHint = 30; // Memory limit is 30 Mb
   using (Aspose.Imaging.Image image = Aspose.Imaging.Image.Create(createOptions, ImageSize, ImageSize))
   {
       Aspose.Imaging.Graphics graphics = new Aspose.Imaging.Graphics(image);
       graphics.BeginUpdate();
       int x, y;
       int numberOfOperations = 0;
       for (int column = 0; column * OperationAreaSize < ImageSize; column++)
       {
           for (int row = 0; row * OperationAreaSize < ImageSize; row++)
           {
               x = column * OperationAreaSize;
               y = row * OperationAreaSize;
               bool reversed = (column + row) % 2 != 0;
               if (reversed)
               {
                   graphics.DrawLine(new Aspose.Imaging.Pen(Aspose.Imaging.Color.Red), x + OperationAreaSize - 2, y, x, y + OperationAreaSize);
               }
               else
               {
                   graphics.DrawLine(new Aspose.Imaging.Pen(Aspose.Imaging.Color.Red), x, y, x + OperationAreaSize - 2, y + OperationAreaSize);
               }
               numberOfOperations++;
           }
       }
       graphics.EndUpdate();
       image.Save();
   }

FullFrame

Gets or sets a value indicating whether [full frame].

public classMyClass
{
    [JsonProperty]
    public bool FullFrame { get; set; }
}

Property Value

bool

KeepMetadata

Gets a value whether to keep original image metadata on export.

public bool KeepMetadata
    {
        get;
        set;
    }

Property Value

bool

MultiPageOptions

The multipage options

public MultiPageOptions MultiPageOptions
    {
        get;
        set;
    }

Property Value

MultiPageOptions

Palette

Gets or sets the color palette.

public virtual IColorPalette Palette
{
    get;
    set;
}

Property Value

IColorPalette

Examples

The following example shows how to compress a PNG image, using indexed color with best fit palette

string sourceFilePath = "OriginalRings.png";
   string outputFilePath = "OriginalRingsOutput.png";
   using (Aspose.Imaging.Image image = Aspose.Imaging.Image.Load(sourceFilePath))
   {
       image.Save(outputFilePath, new Aspose.Imaging.ImageOptions.PngOptions()
       {
           Progressive = true,
           ColorType = Aspose.Imaging.FileFormats.Png.PngColorType.IndexedColor,
           CompressionLevel = 9,
           Palette = Aspose.Imaging.ColorPaletteHelper.GetCloseImagePalette((Aspose.Imaging.RasterImage)image, 256, Aspose.Imaging.PaletteMiningMethod.Histogram)
       });
   }

The following example loads a BMP image and saves it back to BMP using various save options.

string dir = "c:\\temp\\";
   using (Aspose.Imaging.Image image = Aspose.Imaging.Image.Load(dir + "sample.bmp"))
   {
      Aspose.Imaging.RasterImage rasterImage = (Aspose.Imaging.RasterImage)image;
      Aspose.Imaging.ImageOptions.BmpOptions saveOptions = new Aspose.Imaging.ImageOptions.BmpOptions();
      saveOptions.BitsPerPixel = 8;
      saveOptions.Palette = Aspose.Imaging.ColorPaletteHelper.GetCloseImagePalette(rasterImage, 256);
      saveOptions.Compression = Aspose.Imaging.FileFormats.Bmp.BitmapCompression.Rgb;
      saveOptions.ResolutionSettings = new Aspose.Imaging.ResolutionSetting(96.0, 96.0);
      image.Save(dir + "sample.bmpoptions.bmp", saveOptions);
   }

The following example loads a BMP image and saves it to JPEG using various save options.

string dir = "c:\\temp\\";
   using (Aspose.Imaging.Image image = Aspose.Imaging.Image.Load(dir + "sample.bmp"))
   {
       Aspose.Imaging.ImageOptions.JpegOptions saveOptions = new Aspose.Imaging.ImageOptions.JpegOptions();
       saveOptions.BitsPerChannel = 8;
       saveOptions.CompressionType = Aspose.Imaging.FileFormats.Jpeg.JpegCompressionMode.Progressive;
       saveOptions.Quality = 100;
       saveOptions.ResolutionSettings = new Aspose.Imaging.ResolutionSetting(96.0, 96.0);
       saveOptions.ResolutionUnit = Aspose.Imaging.ResolutionUnit.Inch;
       saveOptions.ColorType = Aspose.Imaging.FileFormats.Jpeg.JpegCompressionColorMode.Grayscale;
       saveOptions.Palette = Aspose.Imaging.ColorPaletteHelper.Create8BitGrayscale(false);
       image.Save(dir + "sample.palettized.jpg", saveOptions);
   }

The following example creates a palettized grayscale BMP image and then saves it to a file.

string dir = "c:\\temp\\";
   Aspose.Imaging.ImageOptions.BmpOptions createOptions = new Aspose.Imaging.ImageOptions.BmpOptions();
   createOptions.Source = new Aspose.Imaging.Sources.FileCreateSource(dir + "output.palette8bit.bmp", false);
   createOptions.BitsPerPixel = 8;
   createOptions.Palette = Aspose.Imaging.ColorPaletteHelper.Create8BitGrayscale(false);
   createOptions.Compression = Aspose.Imaging.FileFormats.Bmp.BitmapCompression.Rgb;
   createOptions.ResolutionSettings = new Aspose.Imaging.ResolutionSetting(96.0, 96.0);
   using (Aspose.Imaging.Image image = Aspose.Imaging.Image.Create(createOptions, 100, 100))
   {
       Aspose.Imaging.Graphics graphics = new Aspose.Imaging.Graphics(image);
       Aspose.Imaging.Brushes.LinearGradientBrush gradientBrush = new Aspose.Imaging.Brushes.LinearGradientBrush(
           new Aspose.Imaging.Point(0, 0),
           new Aspose.Imaging.Point(image.Width, image.Height),
           Aspose.Imaging.Color.Black,
           Aspose.Imaging.Color.White);
       graphics.FillRectangle(gradientBrush, image.Bounds);
       image.Save();
   }

The following example shows how to palletize a BMP image to reduce its output size.

using Aspose.Imaging.FileFormats.Bmp;
   using Aspose.Imaging.Brushes;
   using Aspose.Imaging;
   using Aspose.Imaging.ImageOptions;
   using System.IO;
   BmpImage bmpImage = new BmpImage(100, 100);
   LinearGradientBrush brush = new LinearGradientBrush(
       new Point(0, 0),
       new Point(bmpImage.Width, bmpImage.Height),
       Color.Red,
       Color.Green);
   Graphics gr = new Graphics(bmpImage);
   gr.FillRectangle(brush, bmpImage.Bounds);
   IColorPalette palette = ColorPaletteHelper.GetCloseImagePalette(bmpImage, 256);
   BitsPerPixel bitsPerPixel = 8;
   ImageOptions.BmpOptions saveOptions = new ImageOptions.BmpOptions();
   saveOptions.Palette = palette;
   saveOptions.BitsPerPixel = bitsPerPixel;
   using (MemoryStream stream = new MemoryStream())
   {
       bmpImage.Save(stream, saveOptions);
       Console.WriteLine("The palettized image size is {0} bytes.", stream.Length);
   }
   using (MemoryStream stream = new MemoryStream())
   {
       bmpImage.Save(stream);
       Console.WriteLine("The non-palettized image size is {0} bytes.", stream.Length);
   }

ProgressEventHandler

Gets or sets the progress event handler.

public event ProgressEventHandler ProgressEventHandler { get; set; }

Property Value

ProgressEventHandler

Examples

The following example shows how to print information about progress events for load/export operations.

public void Test3460()
   {
       string dir = "c:\\aspose.imaging\\net\\issues\\3460";
       string fileName = System.IO.Path.Combine(dir, "big.png");
       using (var image = Aspose.Imaging.Image.Load(fileName, new Aspose.Imaging.LoadOptions { ProgressEventHandler = ProgressCallback }))
       {
           image.Save(fileName + ".psd",
                      new Aspose.Imaging.ImageOptions.PsdOptions() { ProgressEventHandler = ExportProgressCallback });
       }
   }
   private void ProgressCallback(Aspose.Imaging.ProgressManagement.ProgressEventHandlerInfo info)
   {
       System.Console.WriteLine("{0} : {1}/{2}", info.EventType, info.Value, info.MaxValue);
   }
   private void ExportProgressCallback(Aspose.Imaging.ProgressManagement.ProgressEventHandlerInfo info)
   {
       System.Console.WriteLine("Export event {0} : {1}/{2}", info.EventType, info.Value, info.MaxValue);
   }

ResolutionSettings

Gets or sets the resolution settings.

public virtual ResolutionSetting ResolutionSettings
{
    get;
    set;
}

Property Value

ResolutionSetting

Examples

The following example loads a BMP image and saves it back to BMP using various save options.

string dir = "c:\\temp\\";
   using (Aspose.Imaging.Image image = Aspose.Imaging.Image.Load(dir + "sample.bmp"))
   {
      Aspose.Imaging.RasterImage rasterImage = (Aspose.Imaging.RasterImage)image;
      Aspose.Imaging.ImageOptions.BmpOptions saveOptions = new Aspose.Imaging.ImageOptions.BmpOptions();
      saveOptions.BitsPerPixel = 8;
      saveOptions.Palette = Aspose.Imaging.ColorPaletteHelper.GetCloseImagePalette(rasterImage, 256);
      saveOptions.Compression = Aspose.Imaging.FileFormats.Bmp.BitmapCompression.Rgb;
      saveOptions.ResolutionSettings = new Aspose.Imaging.ResolutionSetting(96.0, 96.0);
      image.Save(dir + "sample.bmpoptions.bmp", saveOptions);
   }

The following example loads a BMP image and saves it to JPEG using various save options.

string dir = "c:\\temp\\";
   using (Aspose.Imaging.Image image = Aspose.Imaging.Image.Load(dir + "sample.bmp"))
   {
       Aspose.Imaging.ImageOptions.JpegOptions saveOptions = new Aspose.Imaging.ImageOptions.JpegOptions();
       saveOptions.BitsPerChannel = 8;
       saveOptions.CompressionType = Aspose.Imaging.FileFormats.Jpeg.JpegCompressionMode.Progressive;
       saveOptions.Quality = 100;
       saveOptions.ResolutionSettings = new Aspose.Imaging.ResolutionSetting(96.0, 96.0);
       saveOptions.ResolutionUnit = Aspose.Imaging.ResolutionUnit.Inch;
       saveOptions.ColorType = Aspose.Imaging.FileFormats.Jpeg.JpegCompressionColorMode.Grayscale;
       saveOptions.Palette = Aspose.Imaging.ColorPaletteHelper.Create8BitGrayscale(false);
       image.Save(dir + "sample.palettized.jpg", saveOptions);
   }

The following example creates a palettized grayscale BMP image and then saves it to a file.

string dir = "c:\\temp\\";
   Aspose.Imaging.ImageOptions.BmpOptions createOptions = new Aspose.Imaging.ImageOptions.BmpOptions();
   createOptions.Source = new Aspose.Imaging.Sources.FileCreateSource(dir + "output.palette8bit.bmp", false);
   createOptions.BitsPerPixel = 8;
   createOptions.Palette = Aspose.Imaging.ColorPaletteHelper.Create8BitGrayscale(false);
   createOptions.Compression = Aspose.Imaging.FileFormats.Bmp.BitmapCompression.Rgb;
   createOptions.ResolutionSettings = new Aspose.Imaging.ResolutionSetting(96.0, 96.0);
   using (Aspose.Imaging.Image image = Aspose.Imaging.Image.Create(createOptions, 100, 100))
   {
       Aspose.Imaging.Graphics graphics = new Aspose.Imaging.Graphics(image);
       Aspose.Imaging.Brushes.LinearGradientBrush gradientBrush = new Aspose.Imaging.Brushes.LinearGradientBrush(
           new Aspose.Imaging.Point(0, 0),
           new Aspose.Imaging.Point(image.Width, image.Height),
           Aspose.Imaging.Color.Black,
           Aspose.Imaging.Color.White);
       graphics.FillRectangle(gradientBrush, image.Bounds);
       image.Save();
   }

The following example shows how to create JPEG image of the specified size with the specified parameters.

string dir = "c:\\temp\\";
   Aspose.Imaging.ImageOptions.JpegOptions createOptions = new Aspose.Imaging.ImageOptions.JpegOptions();
   createOptions.BitsPerChannel = 8;
   createOptions.CompressionType = Aspose.Imaging.FileFormats.Jpeg.JpegCompressionMode.Progressive;
   createOptions.Quality = 100;
   createOptions.ResolutionSettings = new Aspose.Imaging.ResolutionSetting(96.0, 96.0);
   createOptions.ResolutionUnit = Aspose.Imaging.ResolutionUnit.Inch;
   createOptions.ColorType = Aspose.Imaging.FileFormats.Jpeg.JpegCompressionColorMode.YCbCr;
   using (Aspose.Imaging.FileFormats.Jpeg.JpegImage jpegImage = new Aspose.Imaging.FileFormats.Jpeg.JpegImage(createOptions, 100, 100))
   {
       Aspose.Imaging.Graphics graphics = new Aspose.Imaging.Graphics(jpegImage);
       Aspose.Imaging.Brushes.LinearGradientBrush gradientBrush = new Aspose.Imaging.Brushes.LinearGradientBrush(
           new Aspose.Imaging.Point(0, 0),
           new Aspose.Imaging.Point(jpegImage.Width, jpegImage.Height),
           Aspose.Imaging.Color.Yellow,
           Aspose.Imaging.Color.Blue);
       graphics.FillRectangle(gradientBrush, jpegImage.Bounds);
       jpegImage.Save(dir + "output.explicitoptions.jpg");
   }

Source

Gets or sets the source to create image in.

public Source // <-- move opening brace to next line for better readability
{
    get;       // Move semicolon after 'get' keyword for consistency
    set;       // Move semicolon after 'set' keyword for consistency
}

Property Value

Source

VectorRasterizationOptions

Gets or sets the vector rasterization options.

public VectorRasterizationOptions
      VectorRasterizationOptions
      {
         get;
         set;
      }

Property Value

VectorRasterizationOptions

XmpData

Gets or sets the XMP metadata container.

public class MyClass
{
    [JsonProperty]
    public virtual XmpPacketWrapper XmpData { get; set; }
}

Property Value

XmpPacketWrapper

Methods

Clone()

Creates a memberwise clone of this instance.

public override ImageOptionsBase Clone()
   {
       return (ImageOptionsBase) MemberwiseClone();
   }

Returns

ImageOptionsBase

A memberwise clone of this instance.

ReleaseManagedResources()

Releases the managed resources. Make sure no unmanaged resources are released here, since they may have been already released.

protected override void ReleaseManagedResources()
   {
       base.ReleaseManagedResources();
   }
 English