ImageOptionsBase Klasse
Summary: The image base options.
Module: aspose.imaging
Full Name: aspose.imaging.ImageOptionsBase
Inheritance: IMetadataContainer, IHasExifData, IHasMetadata, IHasXmpData, DisposableObject
Properties
| Name | Type | Access | Beschreibung |
|---|---|---|---|
| buffer_size_hint | int | r/w | Liest oder setzt den Hinweis zur Puffergröße, der die maximal zulässige Größe für alle internen Puffer definiert. |
| freigegeben | bool | r | Liest einen Wert, der angibt, ob diese Instanz freigegeben ist. |
| exif_data | ExifData | r/w | Liest oder setzt die Exif-Daten. |
| full_frame | bool | r/w | Liest oder setzt einen Wert, der angibt, ob [full frame]. |
| keep_metadata | bool | r/w | Liest einen Wert, ob die ursprünglichen Bildmetadaten beim Export beibehalten werden sollen. |
| multi_page_options | MultiPageOptions | r/w | Die Mehrseiten‑Optionen |
| palette | IColorPalette | r/w | Liest oder setzt die Farbpalette. |
| resolution_settings | ResolutionSetting | r/w | Liest oder setzt die Auflösungseinstellungen. |
| source | Source | r/w | Liest oder setzt die Quelle, in der das Bild erstellt wird. |
| vector_rasterization_options | VectorRasterizationOptions | r/w | Liest oder setzt die Vektor‑Rasterisierungsoptionen. |
| xmp_data | XmpPacketWrapper | r/w | Liest oder setzt den XMP‑Metadatencontainer. |
Methods
| Name | Beschreibung |
|---|---|
| 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
| Typ | Beschreibung |
|---|---|
| ImageOptionsBase | Eine 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:
| Parameter | Typ | Beschreibung |
|---|---|---|
| metadata | IImageMetadataFormat | Die Metadaten. |
Returns
| Typ | Beschreibung |
|---|---|
| bool | True, 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()