Classe BmpOptions

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

Module: aspose.imaging.imageoptions

Full Name: aspose.imaging.imageoptions.BmpOptions

Inheritance: IMetadataContainer, IHasExifData, IHasMetadata, IHasXmpData, ImageOptionsBase

Constructors

NameDescription
BmpOptions()Initialise une nouvelle instance de la classe BmpOptions.
BmpOptions(bmp_options)Initialise une nouvelle instance de la classe BmpOptions.

Properties

NameTypeAccessDescription
bits_per_pixelintr/wObtient ou définit le nombre de bits par pixel de l’image.
buffer_size_hintintr/wObtient ou définit l’indice de taille du tampon, qui correspond à la taille maximale autorisée pour tous les tampons internes.
compressionBitmapCompressionr/wObtient ou définit le type de compression. Le type de compression par défaut est BitmapCompression.BITFIELDS, qui permet d’enregistrer un BmpImage avec transparence.
libéréboolrObtient une valeur indiquant si cette instance est libérée.
exif_dataExifDatar/wObtient ou définit les données Exif.
full_frameboolr/wObtient ou définit une valeur indiquant si [full frame].
keep_metadataboolr/wObtient une valeur indiquant s’il faut conserver les métadonnées d’image originales lors de l’exportation.
multi_page_optionsMultiPageOptionsr/wLes options multipages
paletteIColorPaletter/wObtient ou définit la palette de couleurs.
resolution_settingsResolutionSettingr/wObtient ou définit les paramètres de résolution.
sourceSourcer/wObtient ou définit la source dans laquelle créer l’image.
vector_rasterization_optionsVectorRasterizationOptionsr/wObtient ou définit les options de rasterisation vectorielle.
xmp_dataXmpPacketWrapperr/wObtient ou définit le conteneur de métadonnées XMP.

Methods

NameDescription
clone()Crée un clone membre à membre de cette instance.
try_set_metadata(metadata)Essaie de définir une instance metadata, si cette instance Image prend en charge et implémente l’instance IImageMetadataFormat.

Constructor: BmpOptions()

 BmpOptions() 

Initialise une nouvelle instance de la classe BmpOptions.

See also:

Example # 1: The following example loads a BMP image and saves it back to BMP using variou…

Example # 2: The following example creates a palettized grayscale BMP image and then saves…

Constructor: BmpOptions(bmp_options)

 BmpOptions(bmp_options) 

Initialise une nouvelle instance de la classe BmpOptions.

Parameters:

ParamètreTypeDescription
bmp_optionsBmpOptionsLes options BMP.

Property: bits_per_pixel

Obtient ou définit le nombre de bits par pixel de l’image.

See also:

Example # 1: The following example shows how to set a palette to a BMP image to reduce its…

Example # 2: The following example loads a BMP image and saves it back to BMP using variou…

Example # 3: The following example creates a palettized grayscale BMP image and then saves…

Property: compression

Obtient ou définit le type de compression. Le type de compression par défaut est BitmapCompression.BITFIELDS, qui permet d’enregistrer un BmpImage avec transparence.

See also:

Example # 1: The following example loads a BMP image and saves it back to BMP using variou…

Example # 2: The following example creates a palettized grayscale BMP image and then saves…

Example # 3: Decompress BMP image which was previously compressed using DXT1 compression a…

Example # 4: The example shows how to export a BMP from a PNG file while keeping the alpha…

Example # 5: The example shows how to export a BMP with the RGB compression type.

Method: clone()

 clone() 

Crée un clone membre à membre de cette instance.

Returns

TypeDescription
ImageOptionsBaseUn clone membre à membre de cette instance.

Method: try_set_metadata(metadata)

 try_set_metadata(metadata) 

Essaie de définir une instance metadata, si cette instance Image prend en charge et implémente l’instance IImageMetadataFormat.

Parameters:

ParamètreTypeDescription
metadataIImageMetadataFormatLes métadonnées.

Returns

TypeDescription
boolVrai, si l’instance IMetadataContainer prend en charge et/ou implémente l’instance IImageMetadataFormat ; sinon, faux.

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.


from aspose.imaging import Image
from aspose.imaging.imageoptions import BmpOptions
from aspose.imaging.sources import FileCreateSource

#Créez une instance de `BmpOptions` et définissez ses différentes propriétés
with BmpOptions() as bmp_options:
	bmp_options.bits_per_pixel = 24

	#Créez une instance de `FileCreateSource` et assignez‑la comme `source` pour l'instance de `BmpOptions`
	#Le deuxième paramètre `Boolean` détermine si le fichier à créer est is_temporal ou non
	bmp_options.source = FileCreateSource(r"C:\temp\output.bmp", False)

	#Créez une instance de Image et initialisez‑la avec une instance de BmpOptions en appelant la méthode Create
	with Image.create(bmp_options, 500, 500) as image:
		#effectuer un traitement d'image
		# enregistrer toutes les modifications
		image.save()

This example demonstrates the use of different classes from imageoptions package for export purposes. A gif image is loaded as an instance of Image and then exported out to several formats.


from aspose.imaging import Image
from aspose.imaging.imageoptions import BmpOptions, JpegOptions, PngOptions, TiffOptions
from aspose.imaging.fileformats.tiff.enums import TiffExpectedFormat
from os.path import join as path_join

directory = "c:\\temp\\"
#Chargez une image gif existante en tant qu'instance de la classe Image
with Image.load(path_join(directory, "sample.gif")) as image:
	# Exportez au format de fichier BMP en utilisant les options par défaut
	image.save(path_join(directory, "output.bmp"), BmpOptions())
	# Exportez au format de fichier JPEG en utilisant les options par défaut
	image.save(path_join(directory, "output.jpg"), JpegOptions())
	# Exportez au format de fichier PNG en utilisant les options par défaut
	image.save(path_join(directory, "output.png"), PngOptions())
	# Exportez au format de fichier TIFF en utilisant les options par défaut
	image.save(path_join(directory, "output.tif"), TiffOptions(TiffExpectedFormat.DEFAULT))

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


from aspose.pycore import as_of
from aspose.imaging import Point, Color, Graphics, ColorPaletteHelper
from aspose.imaging.brushes import LinearGradientBrush
from aspose.imaging.fileformats.bmp import BmpImage
from aspose.imaging.imageoptions import BmpOptions
from os.path import join as path_join

# Créez une image BMP de 100 x 100 px.
with BmpImage(100, 100) as bmpImage:
	# Le dégradé linéaire du coin supérieur gauche au coin inférieur droit de l'image.
	brush = LinearGradientBrush(Point(0, 0), Point(bmpImage.width, bmpImage.height),
								Color.red,
								Color.green)
	# Remplissez toute l'image avec le pinceau de dégradé linéaire.
	gr = Graphics(bmpImage)
	gr.fill_rectangle(brush, bmpImage.bounds)
	# Obtenez la palette de couleurs 8 bits la plus proche qui couvre le plus grand nombre de pixels possible, afin qu'une image à palette
	# est presque visuellement indiscernable d'un BMP sans palette
	palette = ColorPaletteHelper.get_close_image_palette(bmpImage, 256)
	# Une palette 8 bits contient au maximum 256 couleurs.
	saveOptions = BmpOptions()
	saveOptions.palette = palette
	saveOptions.bits_per_pixel = 8
	
	with stream_ext.create_memory_stream() as stream:
		bmpImage.save(stream, saveOptions)
		print(f"The size of image with palette is {stream.tell()} bytes.")
		stream.seek(0)
		bmpImage.save(stream)
		print(f"The size of image without palette is {stream.tell()} bytes.")

# La sortie ressemble à ceci :
# La taille de l'image avec palette est de 11078 octets.
# La taille de l'image sans palette est de 40054 octets.

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

from aspose.imaging import Image, RasterImage, ColorPaletteHelper, ResolutionSetting
from aspose.imaging.imageoptions import BmpOptions
from aspose.imaging.fileformats.bmp import BitmapCompression
import os
import aspose.pycore as aspycore

directory = "c:\\temp\\"

with Image.load(os.path.join(directory, "sample.bmp")) as image:
	
	rasterImage = aspycore.as_of(image, RasterImage)

	# Créez BmpOptions
	saveOptions = BmpOptions()

	# Utilisez 8 bits par pixel pour réduire la taille de l'image de sortie.
	saveOptions.bits_per_pixel = 8

	# Définissez la palette de couleurs 8 bits la plus proche qui couvre le nombre maximal de pixels de l'image, afin qu'une image à palette
	# est presque visuellement indiscernable d'une version non palettisée.
	saveOptions.palette = ColorPaletteHelper.get_close_image_palette(rasterImage, 256)

	# Enregistrer sans compression.
	# Vous pouvez également utiliser la compression RLE-8 pour réduire la taille de l'image de sortie.
	saveOptions.compression = BitmapCompression.RGB

	# Définissez la résolution horizontale et verticale à 96 dpi.
	saveOptions.resolution_settings = ResolutionSetting(96.0, 96.0)

	image.save(os.path.join(directory, "sample.bmpoptions.bmp"), saveOptions)

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


from os.path import join as path_join
from aspose.imaging import Image, ColorPaletteHelper, ResolutionSetting, Graphics, Point, Color
from aspose.imaging.sources import FileCreateSource
from aspose.imaging.imageoptions import BmpOptions
from aspose.imaging.fileformats.bmp import BitmapCompression
from aspose.imaging.brushes import LinearGradientBrush

directory = "c:\\temp\\"
createOptions = BmpOptions()

# Enregistrer dans un fichier
createOptions.source = FileCreateSource(path_join(directory, "output.palette8bit.bmp"), False)
	
# Utilisez 8 bits par pixel pour réduire la taille de l'image de sortie.
createOptions.bits_per_pixel = 8

# Définissez la palette de couleurs en niveaux de gris standard 8 bits qui couvre toutes les nuances de gris.
# Si l'image traitée ne contient que des couleurs en niveaux de gris, alors sa version palettisée
# est visuellement indiscernable d'une version non palettisée.
createOptions.palette = ColorPaletteHelper.create_8_bit_grayscale(False)

# Enregistrer sans compression.
# Vous pouvez également utiliser la compression RLE-8 pour réduire la taille de l'image de sortie.
createOptions.compression = BitmapCompression.RGB

# Définissez la résolution horizontale et verticale à 96 dpi.
createOptions.resolution_settings = ResolutionSetting(96.0, 96.0)

# Créez une image BMP de 100 x 100 px et enregistrez‑la dans un fichier.
with Image.create(createOptions, 100, 100) as image:
	graphics = Graphics(image)
	gradientBrush = LinearGradientBrush(Point(0, 0), Point(image.width, image.height), Color.black, Color.white)
	# Remplissez l'image avec un dégradé en niveaux de gris
	graphics.fill_rectangle(gradientBrush, image.bounds)
	image.save()

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


from aspose.imaging import Image
from aspose.imaging.imageoptions import BmpOptions

with Image.load("CompressedTiger.bmp") as image:
	image.save("DecompressedTiger.bmp", BmpOptions())

The example shows how to export a BMP from a PNG file while keeping the alpha channel, save a BMP file with transparency.

from aspose.imaging import Image
from aspose.imaging.fileformats.png import BmpOptions

source_path = "input.png"
output_path_def = "result_def.bmp"
output_path_def_2 = "result_def-2.bmp"
output_path_bitfields = "result_bitfields.bmp"
# Charger une image PNG à partir d'un fichier.
with Image.load(source_path) as pngImage:
	# L'image BMP est enregistrée avec prise en charge de la transparence par défaut.
	# Si vous souhaitez spécifier explicitement ce mode, la propriété `compression` de BmpOptions doit être définie sur BitmapCompression.BITFIELDS.
	# La méthode de compression BitmapCompression.BITFIELDS est la méthode de compression par défaut dans BmpOptions.
	# Ainsi, le même résultat d'exportation d'une image Bmp avec transparence peut être obtenu de l'une des manières suivantes.
	# Avec des options par défaut implicites :
	pngImage.save(output_path_def)
	# Avec des options par défaut explicites :
	pngImage.save(output_path_def_2, BmpOptions())
	# Spécification de la méthode de compression BitmapCompression.BITFIELDS :
	bmp_options = BmpOptions()
	bmp_options.compression = BitmapCompression.BITFIELDS
	pngImage.save(output_path_bitfields, bmp_options)

The example shows how to export a BMP with the RGB compression type.


from aspose.imaging import Image
from aspose.imaging.fileformats.bmp import BitmapCompression
from aspose.imaging.imageoptions import BmpOptions

source_path = "input.png"
output_path = "output.png"
# Charger une image PNG à partir d'un fichier.
with Image.load(source_path) as pngImage:
	# L'image BMP est enregistrée avec prise en charge de la transparence par défaut, ce qui est réalisé en utilisant la méthode de compression BitmapCompression.BITFIELDS.
	# Pour enregistrer une image BMP avec la méthode de compression RGB, il faut spécifier les BmpOptions avec la propriété `compression` définie sur BitmapCompression.RGB.
	bmp_options = BmpOptions()
	bmp_options.compression = BitmapCompression.RGB
	pngImage.save(output_path, bmp_options)