ImageOptionsBase Classe

Summary: The image base options.

Module: aspose.imaging

Full Name: aspose.imaging.ImageOptionsBase

Inheritance: IMetadataContainer, IHasExifData, IHasMetadata, IHasXmpData, DisposableObject

Properties

NameTypeAccessDescription
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.
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.

Property: buffer_size_hint

Obtient ou définit l’indice de taille du tampon, qui correspond à la taille maximale autorisée pour tous les tampons internes.

See also:

Example # 1: The following example shows how to set a memory limit when creating a new JPE…

Property: palette

Obtient ou définit la palette de couleurs.

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 shows how to compress a PNG image, using indexed color …

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

Property: resolution_settings

Obtient ou définit les paramètres de résolution.

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…

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

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 shows how to compress a PNG image, using indexed color with best fit palette


from aspose.pycore import as_of
from aspose.imaging import Image, ColorPaletteHelper, RasterImage, PaletteMiningMethod
from aspose.imaging.fileformats.png import PngColorType

# Charge l'image png        
sourceFilePath = "OriginalRings.png"
outputFilePath = "OriginalRingsOutput.png"
with Image.load(sourceFilePath) as image:
	png_options = PngOptions()
	png_options.progressive = True
	# Utilisez le type de couleur indexée
	png_options.color_type = PngColorType.INDEXED_COLOR
	# Utilisez une compression maximale
	png_options.compression_level = 9
	# Obtenez la palette de couleurs 8 bits la plus proche, couvrant le plus grand nombre de pixels possible, afin qu'une image
	# avec palette soit presque visuellement indiscernable d'une image sans palette.
	png_options.palette = ColorPaletteHelper.get_close_image_palette(
						as_of(image, RasterImage), 256, 
						PaletteMiningMethod.HISTOGRAM)
		 
	image.save(outputFilePath, png_options);
}
# La taille du fichier de sortie devrait être considérablement réduite

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

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.

from os.path import join
from aspose.imaging import Image
from aspose.imaging.sources import FileCreateSource
from aspose.imaging.imageoptions import JpegOptions
from aspose.imaging.fileformats.jpeg import JpegCompressionMode

dir_: str = "c:\\aspose.imaging\\issues\\net\\3404\\"
# Définition d'une limite de mémoire de 50 mégaoctets pour l'image cible créée
create_options = JpegOptions()
create_options.compression_type = JpegCompressionMode.PROGRESSIVE
create_options.buffer_size_hint = 50
create_options.source = FileCreateSource(join(dir_, "createdFile.jpg"), False)
with Aspose.Imaging.Image.create(create_options, 1000, 1000) as image:
	# enregistrer au même emplacement
	image.save()