Clase ImageOptionsBase

Summary: The image base options.

Module: aspose.imaging

Full Name: aspose.imaging.ImageOptionsBase

Inheritance: IMetadataContainer, IHasExifData, IHasMetadata, IHasXmpData, DisposableObject

Properties

NameTypeAccessDescripción
buffer_size_hintintr/wObtiene o establece la sugerencia de tamaño del búfer, que se define como el tamaño máximo permitido para todos los búferes internos.
disposedboolrObtiene un valor que indica si esta instancia está disposed.
exif_dataExifDatar/wObtiene o establece los datos Exif.
full_frameboolr/wObtiene o establece un valor que indica si [full frame].
keep_metadataboolr/wObtiene un valor que indica si conservar los metadatos originales de la imagen al exportar.
multi_page_optionsMultiPageOptionsr/wLas opciones multipágina
paletteIColorPaletter/wObtiene o establece la paleta de colores.
resolution_settingsResolutionSettingr/wObtiene o establece la configuración de resolución.
sourceSourcer/wObtiene o establece la fuente en la que crear la imagen.
vector_rasterization_optionsVectorRasterizationOptionsr/wObtiene o establece las opciones de rasterización vectorial.
xmp_dataXmpPacketWrapperr/wObtiene o establece el contenedor de metadatos XMP.

Methods

NameDescripción
clone()Crea una clonación por miembros de esta instancia.
try_set_metadata(metadata)Intenta establecer una instancia de metadata, si esta instancia de Image admite e implementa la instancia IImageMetadataFormat.

Property: buffer_size_hint

Obtiene o establece la sugerencia de tamaño del búfer, que se define como el tamaño máximo permitido para todos los búferes internos.

See also:

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

Property: palette

Obtiene o establece la paleta de colores.

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

Obtiene o establece la configuración de resolución.

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

Crea una clonación por miembros de esta instancia.

Returns

TipoDescripción
ImageOptionsBaseUna clonación por miembros de esta instancia.

Method: try_set_metadata(metadata)

 try_set_metadata(metadata) 

Intenta establecer una instancia de metadata, si esta instancia de Image admite e implementa la instancia IImageMetadataFormat.

Parameters:

ParámetroTipoDescripción
metadataIImageMetadataFormatLos metadatos.

Returns

TipoDescripción
boolVerdadero, si la instancia IMetadataContainer admite y/o implementa la instancia IImageMetadataFormat; de lo contrario, falso.

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

# Crea una imagen BMP de 100 x 100 px.
with BmpImage(100, 100) as bmpImage:
	# El degradado lineal desde la esquina superior izquierda hasta la esquina inferior derecha de la imagen.
	brush = LinearGradientBrush(Point(0, 0), Point(bmpImage.width, bmpImage.height),
								Color.red,
								Color.green)
	# Rellena toda la imagen con el pincel de degradado lineal.
	gr = Graphics(bmpImage)
	gr.fill_rectangle(brush, bmpImage.bounds)
	# Obtén la paleta de colores de 8 bits más cercana que cubra la mayor cantidad posible de píxeles, de modo que una imagen paletizada
	# sea casi indistinguible visualmente de un bmp sin paleta
	palette = ColorPaletteHelper.get_close_image_palette(bmpImage, 256)
	# Una paleta de 8 bits contiene como máximo 256 colores.
	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 salida se ve así:
# El tamaño de la imagen con paleta es de 11078 bytes.
# El tamaño de la imagen sin paleta es de 40054 bytes.

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

# Carga una imagen png        
sourceFilePath = "OriginalRings.png"
outputFilePath = "OriginalRingsOutput.png"
with Image.load(sourceFilePath) as image:
	png_options = PngOptions()
	png_options.progressive = True
	# Usar tipo de color indexado
	png_options.color_type = PngColorType.INDEXED_COLOR
	# Usar compresión máxima
	png_options.compression_level = 9
	# Obtén la paleta de colores de 8 bits más cercana, cubriendo la mayor cantidad posible de píxeles, de modo que una imagen
	# con paleta sea casi indistinguible visualmente de una imagen sin paleta.
	png_options.palette = ColorPaletteHelper.get_close_image_palette(
						as_of(image, RasterImage), 256, 
						PaletteMiningMethod.HISTOGRAM)
		 
	image.save(outputFilePath, png_options);
}
# El tamaño del archivo de salida debería reducirse significativamente

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)

	# Crear BmpOptions
	saveOptions = BmpOptions()

	# Usar 8 bits por píxel para reducir el tamaño de la imagen de salida.
	saveOptions.bits_per_pixel = 8

	# Establece la paleta de colores de 8 bits más cercana que cubra el número máximo de píxeles de la imagen, de modo que una imagen paletizada
	# es casi visualmente indistinguible de una que no está paletizada.
	saveOptions.palette = ColorPaletteHelper.get_close_image_palette(rasterImage, 256)

	# Guardar sin compresión.
	# También puedes usar compresión RLE-8 para reducir el tamaño de la imagen de salida.
	saveOptions.compression = BitmapCompression.RGB

	# Establece la resolución horizontal y vertical a 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()

# Guardar en un archivo
createOptions.source = FileCreateSource(path_join(directory, "output.palette8bit.bmp"), False)
	
# Usar 8 bits por píxel para reducir el tamaño de la imagen de salida.
createOptions.bits_per_pixel = 8

# Establece la paleta de colores en escala de grises estándar de 8 bits que cubre todos los colores en escala de grises.
# Si la imagen procesada contiene solo colores en escala de grises, entonces su versión paletizada
# es visualmente indistinguible de una que no está paletizada.
createOptions.palette = ColorPaletteHelper.create_8_bit_grayscale(False)

# Guardar sin compresión.
# También puedes usar compresión RLE-8 para reducir el tamaño de la imagen de salida.
createOptions.compression = BitmapCompression.RGB

# Establece la resolución horizontal y vertical a 96 dpi.
createOptions.resolution_settings = ResolutionSetting(96.0, 96.0)

# Crea una imagen BMP de 100 x 100 px y guárdala en un archivo.
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)
	# Rellena la imagen con un degradado en escala de grises
	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\\"
# Estableciendo un límite de memoria de 50 megabytes para la imagen objetivo creada
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:
	# guardar en la misma ubicación
	image.save()