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
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
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();
}