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
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
KeepMetadata
Gets a value whether to keep original image metadata on export.
public bool KeepMetadata
{
get;
set;
}
Property Value
MultiPageOptions
The multipage options
public MultiPageOptions MultiPageOptions
{
get;
set;
}
Property Value
Palette
Gets or sets the color palette.
public virtual IColorPalette Palette
{
get;
set;
}
Property Value
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
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
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
VectorRasterizationOptions
Gets or sets the vector rasterization options.
public VectorRasterizationOptions
VectorRasterizationOptions
{
get;
set;
}
Property Value
XmpData
Gets or sets the XMP metadata container.
public class MyClass
{
[JsonProperty]
public virtual XmpPacketWrapper XmpData { get; set; }
}
Property Value
Methods
Clone()
Creates a memberwise clone of this instance.
public override ImageOptionsBase Clone()
{
return (ImageOptionsBase) MemberwiseClone();
}
Returns
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();
}