Class BmpOptions

Class BmpOptions

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

The API for BMP and DIB raster image format creation options provides developerswith a versatile toolset for generating custom Bitmap (BMP) and DeviceIndependent Bitmap (DIB) images. With this API, you can precisely defineimage characteristics such as bits per pixel, compression level and compressiontype, tailoring the output to meet specific requirements. This feature-richAPI empowers developers to create high-quality, customized raster imageswith ease and flexibility for diverse applications.

public class BmpOptions : ImageOptionsBase, IDisposable, IHasXmpData, IHasMetadata, ICloneable
{
    public void Dispose()
    {
    }
    public object Clone()
    {
    }
}

Inheritance

object DisposableObject ImageOptionsBase BmpOptions

Implements

IDisposable , IHasXmpData , IHasMetadata , ICloneable

Inherited Members

ImageOptionsBase.Clone() , ImageOptionsBase.ReleaseManagedResources() , ImageOptionsBase.KeepMetadata , ImageOptionsBase.XmpData , ImageOptionsBase.Source , ImageOptionsBase.Palette , ImageOptionsBase.ResolutionSettings , ImageOptionsBase.VectorRasterizationOptions , ImageOptionsBase.BufferSizeHint , ImageOptionsBase.MultiPageOptions , ImageOptionsBase.FullFrame , ImageOptionsBase.ProgressEventHandler , 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()

Examples

This example creates a new Image file at some disk location as specified by Source property of the BmpOptions instance. Several properties for BmpOptions instance are set before creating the actual image. Especially the Source property, that refers to the actual disk location in this case.

Aspose.Imaging.ImageOptions.BmpOptions bmpOptions = new Aspose.Imaging.ImageOptions.BmpOptions();
   bmpOptions.BitsPerPixel = 24;
   bmpOptions.Source = new Aspose.Imaging.Sources.FileCreateSource(@"C:\temp\output.bmp", false);
   using (var image = Aspose.Imaging.Image.Create(bmpOptions, 500, 500))
   {
       image.Save();
   }

This example demonstrates the use of different classes from SaveOptions Namespace for export purposes. An image of type Gif is loaded into an instance of Image and then exported out to several formats.

string dir = "c:\\temp\\";
   using (Aspose.Imaging.Image image = Aspose.Imaging.Image.Load(dir + "sample.gif"))
   {
       image.Save(dir + "output.bmp", new Aspose.Imaging.ImageOptions.BmpOptions());
       image.Save(dir + "output.jpg", new Aspose.Imaging.ImageOptions.JpegOptions());
       image.Save(dir + "output.png", new Aspose.Imaging.ImageOptions.PngOptions());
       image.Save(dir + "output.tif", new Aspose.Imaging.FileFormats.Tiff.TiffOptions(Aspose.Imaging.FileFormats.Tiff.Enums.TiffExpectedFormat.Default));
   }

The following example shows how to convert a multipage vector image to BMP format in general way without referencing to a particular image type.

string dir = "C:\\aspose.imaging\\net\\misc\\ImagingReleaseQATester\\Tests\\testdata\\2548";
   string inputFilePath = System.IO.Path.Combine(dir, "Multipage.cdr");
   string outputFilePath = System.IO.Path.Combine(dir, "Multipage.cdr.bmp");
   Aspose.Imaging.ImageOptionsBase exportOptions = new Aspose.Imaging.ImageOptions.BmpOptions();
   using (Aspose.Imaging.Image image = Aspose.Imaging.Image.Load(inputFilePath))
   {
      exportOptions.MultiPageOptions = null;
      Aspose.Imaging.IMultipageImage multipageImage = image as Aspose.Imaging.IMultipageImage;
      if (multipageImage != null && multipageImage.Pages != null && multipageImage.PageCount > 2)
      {
         exportOptions.MultiPageOptions = new Aspose.Imaging.ImageOptions.MultiPageOptions(new Aspose.Imaging.IntRange(0, 2));
      }
      if (image is Aspose.Imaging.VectorImage)
      {
         exportOptions.VectorRasterizationOptions = (Aspose.Imaging.ImageOptions.VectorRasterizationOptions)image.GetDefaultOptions(new object[] { Aspose.Imaging.Color.White, image.Width, image.Height });
         exportOptions.VectorRasterizationOptions.TextRenderingHint = Aspose.Imaging.TextRenderingHint.SingleBitPerPixel;
         exportOptions.VectorRasterizationOptions.SmoothingMode = Aspose.Imaging.SmoothingMode.None;
      }
      image.Save(outputFilePath, exportOptions);
   }

Constructors

BmpOptions()

Initializes a new instance of the Aspose.Imaging.ImageOptions.BmpOptions class.

public BmpOptions()
   {
   }

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"))
   {
       var rasterImage = (Aspose.Imaging.RasterImage)image;
       var 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 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();
   }

BmpOptions(BmpOptions)

Initializes a new instance of the Aspose.Imaging.ImageOptions.BmpOptions class.

public BmpOptions(BmpOptions bmpOptions)
   {
      this.HeaderCompression = bmpOptions.HeaderCompression;
      this.BitsPerPixel = bmpOptions.BitsPerPixel;
      this.Compression = bmpOptions.Compression;
      this.ImageDataOffset = bmpOptions.ImageDataOffset;
      this.HeaderSize = bmpOptions.HeaderSize;
      this.Width = bmpOptions.Width;
      this.Height = bmpOptions.Height;
   }

Parameters

bmpOptions BmpOptions

The BMP options.

Properties

BitsPerPixel

Gets or sets the image bits per pixel count.

public int BitsPerPixel
   {
      get;
      set;
   }

Property Value

int

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

Compression

Gets or sets the compression type. The default compression type is Aspose.Imaging.FileFormats.Bmp.BitmapCompression.Bitfields, that allows saving a Aspose.Imaging.FileFormats.Bmp.BmpImage with transparency.

public BitmapCompression Compression
    {
        get;
        set;
    }

Property Value

BitmapCompression

Examples

Decompress BMP image which was previously compressed using DXT1 compression algorithm.

using (var image = Image.Load("CompressedTiger.bmp"))
   {
       image.Save("DecompressedTiger.bmp", new BmpOptions());
   }

Compress BMP image using DXT1 compression algorithm.

using (var image = Image.Load("Tiger.bmp"))
   {
       image.Save("CompressedTiger.bmp", new BmpOptions { Compression = BitmapCompression.Dxt1 });
   }

The example shows how to export a BmpImage with the Rgb compression type.

string sourcePath = "input.png";
   using (Image pngImage = Image.Load(sourcePath))
   {
       pngImage.Save(outputPath, new BmpOptions { Compression = BitmapCompression.Rgb });
   }

The example shows how to export a BmpImage from a Png file while keeping the alpha channel, save a Bmp file with transparency.

string sourcePath = "input.png";
   using (Image pngImage = Image.Load(sourcePath))
   {
       pngImage.Save(outputPath);
       pngImage.Save(outputPath, new BmpOptions());
       pngImage.Save(outputPath, new BmpOptions() { Compression = BitmapCompression.Bitfields });
   }

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"))
   {
       var rasterImage = (Aspose.Imaging.RasterImage)image;
       var 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 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();
   }
 English