ImageOptionsBase Klasse

Summary: The image base options.

Module: aspose.imaging

Full Name: aspose.imaging.ImageOptionsBase

Inheritance: IMetadataContainer, IHasExifData, IHasMetadata, IHasXmpData, DisposableObject

Properties

NameTypeAccessBeschreibung
buffer_size_hintintr/wLiest oder setzt den Hinweis zur Puffergröße, der die maximal zulässige Größe für alle internen Puffer definiert.
freigegebenboolrLiest einen Wert, der angibt, ob diese Instanz freigegeben ist.
exif_dataExifDatar/wLiest oder setzt die Exif-Daten.
full_frameboolr/wLiest oder setzt einen Wert, der angibt, ob [full frame].
keep_metadataboolr/wLiest einen Wert, ob die ursprünglichen Bildmetadaten beim Export beibehalten werden sollen.
multi_page_optionsMultiPageOptionsr/wDie Mehrseiten‑Optionen
paletteIColorPaletter/wLiest oder setzt die Farbpalette.
resolution_settingsResolutionSettingr/wLiest oder setzt die Auflösungseinstellungen.
sourceSourcer/wLiest oder setzt die Quelle, in der das Bild erstellt wird.
vector_rasterization_optionsVectorRasterizationOptionsr/wLiest oder setzt die Vektor‑Rasterisierungsoptionen.
xmp_dataXmpPacketWrapperr/wLiest oder setzt den XMP‑Metadatencontainer.

Methods

NameBeschreibung
clone()Erstellt eine memberweise Kopie dieser Instanz.
try_set_metadata(metadata)Versucht, eine metadata-Instanz zu setzen, falls diese Image‑Instanz unterstützt und eine IImageMetadataFormat‑Instanz implementiert.

Property: buffer_size_hint

Liest oder setzt den Hinweis zur Puffergröße, der die maximal zulässige Größe für alle internen Puffer definiert.

See also:

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

Property: palette

Liest oder setzt die Farbpalette.

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

Liest oder setzt die Auflösungseinstellungen.

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

Erstellt eine memberweise Kopie dieser Instanz.

Returns

TypBeschreibung
ImageOptionsBaseEine memberweise Kopie dieser Instanz.

Method: try_set_metadata(metadata)

 try_set_metadata(metadata) 

Versucht, eine metadata-Instanz zu setzen, falls diese Image‑Instanz unterstützt und eine IImageMetadataFormat‑Instanz implementiert.

Parameters:

ParameterTypBeschreibung
metadataIImageMetadataFormatDie Metadaten.

Returns

TypBeschreibung
boolTrue, wenn die IMetadataContainer Instanz unterstützt und/oder das IImageMetadataFormat implementiert; andernfalls false.

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

# Erstelle ein BMP‑Bild mit 100 x 100 px.
with BmpImage(100, 100) as bmpImage:
	# Der lineare Farbverlauf von der linken oberen zur rechten unteren Ecke des Bildes.
	brush = LinearGradientBrush(Point(0, 0), Point(bmpImage.width, bmpImage.height),
								Color.red,
								Color.green)
	# Fülle das gesamte Bild mit dem linearen Farbverlaufs‑Pinsel.
	gr = Graphics(bmpImage)
	gr.fill_rectangle(brush, bmpImage.bounds)
	# Erhalte die nächstgelegene 8‑Bit-Farbpalette, die so viele Pixel wie möglich abdeckt, sodass ein palettiertes Bild
	# fast visuell nicht von einem BMP ohne Palette zu unterscheiden ist.
	palette = ColorPaletteHelper.get_close_image_palette(bmpImage, 256)
	# Eine 8‑Bit-Palette enthält höchstens 256 Farben.
	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.")

# Die Ausgabe sieht folgendermaßen aus:
# Die Größe des Bildes mit Palette beträgt 11078 Byte.
# Die Größe des Bildes ohne Palette beträgt 40054 Byte.

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

# Lädt PNG‑Bild        
sourceFilePath = "OriginalRings.png"
outputFilePath = "OriginalRingsOutput.png"
with Image.load(sourceFilePath) as image:
	png_options = PngOptions()
	png_options.progressive = True
	# Verwende indizierten Farbtyp
	png_options.color_type = PngColorType.INDEXED_COLOR
	# Verwende maximale Kompression
	png_options.compression_level = 9
	# Erhalte die nächstgelegene 8‑Bit-Farbpalette, die so viele Pixel wie möglich abdeckt, sodass ein Bild
	# mit Palette fast visuell nicht von einem Bild ohne Palette zu unterscheiden ist.
	png_options.palette = ColorPaletteHelper.get_close_image_palette(
						as_of(image, RasterImage), 256, 
						PaletteMiningMethod.HISTOGRAM)
		 
	image.save(outputFilePath, png_options);
}
# Die Ausgabedateigröße sollte deutlich reduziert werden

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)

	# Erstelle BmpOptions
	saveOptions = BmpOptions()

	# Verwende 8 Bit pro Pixel, um die Größe des Ausgabebildes zu reduzieren.
	saveOptions.bits_per_pixel = 8

	# Setze die nächstgelegene 8‑Bit-Farbpalette, die die maximale Anzahl an Bildpixeln abdeckt, sodass ein palettiertes Bild
	# ist fast visuell nicht von einer nicht palettierten Version zu unterscheiden.
	saveOptions.palette = ColorPaletteHelper.get_close_image_palette(rasterImage, 256)

	# Speichern ohne Kompression.
	# Sie können auch die RLE-8-Kompression verwenden, um die Größe des Ausgabebildes zu reduzieren.
	saveOptions.compression = BitmapCompression.RGB

	# Stellen Sie die horizontale und vertikale Auflösung auf 96 dpi ein.
	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()

# In einer Datei speichern
createOptions.source = FileCreateSource(path_join(directory, "output.palette8bit.bmp"), False)
	
# Verwende 8 Bit pro Pixel, um die Größe des Ausgabebildes zu reduzieren.
createOptions.bits_per_pixel = 8

# Legen Sie die standardmäßige 8‑Bit‑Graustufen‑Farbpalette fest, die alle Graustufen abdeckt.
# Wenn das verarbeitete Bild nur Graustufen enthält, dann ist seine palettierte Version
# visuell nicht von einer nicht palettierten Version zu unterscheiden.
createOptions.palette = ColorPaletteHelper.create_8_bit_grayscale(False)

# Speichern ohne Kompression.
# Sie können auch die RLE-8-Kompression verwenden, um die Größe des Ausgabebildes zu reduzieren.
createOptions.compression = BitmapCompression.RGB

# Stellen Sie die horizontale und vertikale Auflösung auf 96 dpi ein.
createOptions.resolution_settings = ResolutionSetting(96.0, 96.0)

# Erstellen Sie ein BMP‑Bild mit 100 × 100 px und speichern Sie es in einer Datei.
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)
	# Füllen Sie das Bild mit einem Graustufen‑Verlauf
	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\\"
# Festlegen eines Speicherlimits von 50 Megabyte für das erzeugte Zielbild
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:
	# am selben Ort speichern
	image.save()