Класс ImageOptionsBase
Summary: The image base options.
Module: aspose.imaging
Full Name: aspose.imaging.ImageOptionsBase
Inheritance: IMetadataContainer, IHasExifData, IHasMetadata, IHasXmpData, DisposableObject
Properties
| Name | Type | Access | Description |
|---|---|---|---|
| buffer_size_hint | int | r/w | Получает или задает подсказку о размере буфера, определяющую максимальный допустимый размер для всех внутренних буферов. |
| disposed | bool | r | Получает значение, указывающее, удалён ли этот экземпляр. |
| exif_data | ExifData | r/w | Получает или задает данные Exif. |
| full_frame | bool | r/w | Получает или задает значение, указывающее, включен ли [full frame]. |
| keep_metadata | bool | r/w | Получает значение, указывающее, сохранять ли оригинальные метаданные изображения при экспорте. |
| multi_page_options | MultiPageOptions | r/w | Параметры multipage |
| palette | IColorPalette | r/w | Получает или задает цветовую палитру. |
| resolution_settings | ResolutionSetting | r/w | Получает или задает параметры разрешения. |
| source | Source | r/w | Получает или задает источник, в котором создаётся изображение. |
| vector_rasterization_options | VectorRasterizationOptions | r/w | Получает или задает параметры растеризации вектора. |
| xmp_data | XmpPacketWrapper | r/w | Получает или задает контейнер метаданных XMP. |
Methods
| Name | Description |
|---|---|
| clone() | Создаёт поверхностную копию этого экземпляра. |
| try_set_metadata(metadata) | Пытается установить экземпляр metadata, если этот экземпляр Image поддерживает и реализует экземпляр IImageMetadataFormat. |
Property: buffer_size_hint
Получает или задает подсказку о размере буфера, определяющую максимальный допустимый размер для всех внутренних буферов.
See also:
Example # 1: The following example shows how to set a memory limit when creating a new JPE…
Property: palette
Получает или задает цветовую палитру.
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
Получает или задает параметры разрешения.
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()
Создаёт поверхностную копию этого экземпляра.
Returns
| Тип | Описание |
|---|---|
| ImageOptionsBase | Поверхностная копия этого экземпляра. |
Method: try_set_metadata(metadata)
try_set_metadata(metadata)
Пытается установить экземпляр metadata, если этот экземпляр Image поддерживает и реализует экземпляр IImageMetadataFormat.
Parameters:
| Параметр | Тип | Описание |
|---|---|---|
| metadata | IImageMetadataFormat | Метаданные. |
Returns
| Тип | Описание |
|---|---|
| bool | True, если экземпляр IMetadataContainer поддерживает и/или реализует экземпляр IImageMetadataFormat; иначе — 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
# Создайте BMP‑изображение размером 100 × 100 px.
with BmpImage(100, 100) as bmpImage:
# Линейный градиент от левого верхнего до правого нижнего угла изображения.
brush = LinearGradientBrush(Point(0, 0), Point(bmpImage.width, bmpImage.height),
Color.red,
Color.green)
# Заполните всё изображение кистью линейного градиента.
gr = Graphics(bmpImage)
gr.fill_rectangle(brush, bmpImage.bounds)
# Получите ближайшую 8‑битную цветовую палитру, покрывающую как можно больше пикселей, так чтобы палитризированное изображение
# было почти визуально неотличимо от BMP без палитры
palette = ColorPaletteHelper.get_close_image_palette(bmpImage, 256)
# 8‑битная палитра содержит не более 256 цветов.
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.")
# Вывод выглядит так:
# Размер изображения с палитрой составляет 11078 байт.
# Размер изображения без палитры составляет 40054 байт.
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
# Загружает PNG‑изображение
sourceFilePath = "OriginalRings.png"
outputFilePath = "OriginalRingsOutput.png"
with Image.load(sourceFilePath) as image:
png_options = PngOptions()
png_options.progressive = True
# Использовать индексный тип цвета
png_options.color_type = PngColorType.INDEXED_COLOR
# Использовать максимальное сжатие
png_options.compression_level = 9
# Получите ближайшую 8‑битную цветовую палитру, покрывающую как можно больше пикселей, так чтобы изображение
# с палитрой было почти визуально неотличимо от изображения без палитры.
png_options.palette = ColorPaletteHelper.get_close_image_palette(
as_of(image, RasterImage), 256,
PaletteMiningMethod.HISTOGRAM)
image.save(outputFilePath, png_options);
}
# Размер выходного файла должен значительно уменьшиться
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)
# Создайте BmpOptions
saveOptions = BmpOptions()
# Используйте 8 бит на пиксель, чтобы уменьшить размер выходного изображения.
saveOptions.bits_per_pixel = 8
# Установите ближайшую 8‑битную цветовую палитру, покрывающую максимальное количество пикселей изображения, так чтобы палитризированное изображение
# почти визуально не отличим от непалетизированного.
saveOptions.palette = ColorPaletteHelper.get_close_image_palette(rasterImage, 256)
# Сохранить без сжатия.
# Вы также можете использовать сжатие RLE-8, чтобы уменьшить размер выходного изображения.
saveOptions.compression = BitmapCompression.RGB
# Установите горизонтальное и вертикальное разрешение в 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()
# Сохранить в файл
createOptions.source = FileCreateSource(path_join(directory, "output.palette8bit.bmp"), False)
# Используйте 8 бит на пиксель, чтобы уменьшить размер выходного изображения.
createOptions.bits_per_pixel = 8
# Установите стандартную 8‑битную градационную палитру, охватывающую все оттенки серого.
# Если обработанное изображение содержит только оттенки серого, то его палетизированная версия
# визуально не отличима от непалетизированного.
createOptions.palette = ColorPaletteHelper.create_8_bit_grayscale(False)
# Сохранить без сжатия.
# Вы также можете использовать сжатие RLE-8, чтобы уменьшить размер выходного изображения.
createOptions.compression = BitmapCompression.RGB
# Установите горизонтальное и вертикальное разрешение в 96 dpi.
createOptions.resolution_settings = ResolutionSetting(96.0, 96.0)
# Создайте BMP‑изображение размером 100 × 100 px и сохраните его в файл.
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)
# Заполните изображение градиентом серого
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\\"
# Установка ограничения памяти в 50 мегабайт для целевого создаваемого изображения
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:
# сохранить в то же место
image.save()