Класс PngOptions
Summary: Create high-quality Portable Network Graphics (PNG) raster images effortlessly
with our API, offering customizable options for compression levels,
bits per pixel depths, and alpha bits. Seamlessly process XMP metadata containers,
ensuring comprehensive image metadata management, and empowering you to tailor
PNG images to your exact specifications with ease.
Module: aspose.imaging.imageoptions
Full Name: aspose.imaging.imageoptions.PngOptions
Inheritance: IMetadataContainer, IHasExifData, IHasMetadata, IHasXmpData, ImageOptionsBase
Constructors
| Name | Description |
|---|---|
| PngOptions() | Создаёт новый экземпляр класса PngOptions. |
| PngOptions(png_options) | Создаёт новый экземпляр класса PngOptions. |
Properties
| Name | Type | Access | Description |
|---|---|---|---|
| DEFAULT_COMPRESSION_LEVEL [static] | PngCompressionLevel | r | Уровень сжатия по умолчанию. |
| bit_depth | System.Byte | r/w | Получает или задаёт значения глубины цвета в диапазоне 1, 2, 4, 8, 16. Учтите следующие ограничения: PngColorType.INDEXED_COLOR поддерживает глубину цвета 1, 2, 4, 8. PngColorType.GRAYSCALE, PngColorType.GRAYSCALE_WITH_ALPHA поддерживают глубину цвета 8. PngColorType.TRUECOLOR, PngColorType.TRUECOLOR_WITH_ALPHA поддерживают глубину цвета 8, 16. |
| buffer_size_hint | int | r/w | Получает или задает подсказку о размере буфера, определяющую максимальный допустимый размер для всех внутренних буферов. |
| color_type | PngColorType | r/w | Получает или задает тип цвета. |
| compression_level | int | r/w | Получает или задаёт уровень сжатия PngImage. |
| disposed | bool | r | Получает значение, указывающее, удалён ли этот экземпляр. |
| exif_data | ExifData | r/w | Получает или задает данные Exif. |
| filter_type | PngFilterType | r/w | Получает или задаёт тип фильтра, используемый при сохранении PNG‑файла. |
| full_frame | bool | r/w | Получает или задает значение, указывающее, включен ли [full frame]. |
| keep_metadata | bool | r/w | Получает значение, указывающее, сохранять ли оригинальные метаданные изображения при экспорте. |
| multi_page_options | MultiPageOptions | r/w | Параметры multipage |
| palette | IColorPalette | r/w | Получает или задает цветовую палитру. |
| png_compression_level | PngCompressionLevel | r/w | Получает или задаёт уровень сжатия PngImage. |
| progressive | bool | r/w | Получает или задаёт значение, указывающее, является ли PngImage прогрессивным. |
| 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. |
Constructor: PngOptions()
PngOptions()
Создаёт новый экземпляр класса PngOptions.
Constructor: PngOptions(png_options)
PngOptions(png_options)
Создаёт новый экземпляр класса PngOptions.
Parameters:
| Параметр | Тип | Описание |
|---|---|---|
| png_options | PngOptions | Параметры PNG. |
Property: color_type
Получает или задает тип цвета.
See also:
Example # 1: The following example shows how to compress a PNG image, using indexed color …
Property: compression_level
Получает или задаёт уровень сжатия PngImage.
See also:
Example # 1: The following example shows how to compress a PNG image, using indexed color …
Property: progressive
Получает или задаёт значение, указывающее, является ли PngImage прогрессивным.
See also:
Example # 1: The following example shows how to compress a PNG image, using indexed color …
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
This example uses Graphics class to create primitive shapes on the Image surface. To demonstrate the operation, the example creates a new Image in PNG format and draw primitive shapes on Image surface using Draw methods exposed by Graphics class
from aspose.imaging import Image, RotateFlipType, Graphics, Color, Pen, Rectangle, Point, Size,\
Font, PointF
from aspose.imaging.brushes import SolidBrush
from aspose.imaging.imageoptions import PngOptions
from aspose.imaging.fileformats.psd import CompressionMethod, ColorModes
from aspose.imaging.sources import StreamSource
from os.path import join as path_join
#Создает экземпляр файлового потока.
with open(r"C:\temp\output.png", "w+b") as stream:
#Создайте экземпляр PngOptions и задайте его различные свойства.
pngOptions = PngOptions()
#Установите источник для PngOptions.
pngOptions.source = StreamSource(stream)
#Создайте экземпляр Image
with Image.create(pngOptions, 500, 500) as image:
#Создайте и инициализируйте экземпляр класса Graphics.
graphics = Graphics(image)
#Очистить поверхность Graphics.
graphics.clear(Color.wheat);
#Нарисуйте дугу, указав объект Pen с черным цветом,
#прямоугольник, окружающий дугу, начальный угол и угол разворота
graphics.draw_arc(Pen(Color.black, 2.0), Rectangle(200, 200, 100, 200), 0, 300)
#Нарисуйте кривую Безье, указав объект Pen с синим цветом и координатные точки.
graphics.draw_bezier(Pen(Color.blue, 2.0), Point(250, 100), Point(300, 30), Point(450, 100), Point(235, 25))
#Нарисуйте кривую, указав объект Pen, имеющий зелёный цвет, и массив точек
graphics.draw_curve(Pen(Color.green, 2.0), [Point(100, 200), Point(100, 350), Point(200, 450)])
#Нарисуйте эллипс, используя объект Pen и окружающий прямоугольник
graphics.draw_ellipse(Pen(Color.yellow, 2.0), Rectangle(300, 300, 100, 100))
#Нарисуйте линию
graphics.draw_line(Pen(Color.violet, 2.0), Point(100, 100), Point(200, 200))
#Нарисуйте сегмент пирога
graphics.draw_pie(Pen(Color.silver, 2.0), Rectangle(Point(200, 20), Size(200, 200)), 0, 45);
#Нарисуйте многоугольник, указав объект Pen, имеющий красный цвет, и массив точек
graphics.draw_polygon(Pen(Color.red, 2.0), [Point(20, 100), Point(20, 200), Point(220, 20)])
#Нарисуйте прямоугольник
graphics.draw_rectangle(Pen(Color.orange, 2.0), Rectangle(Point(250, 250), Size(100, 100)))
#Создайте объект SolidBrush и задайте его различные свойства
brush = SolidBrush()
brush.color = Color.purple
#Нарисуйте строку, используя объект SolidBrush и Font, в конкретной точке
graphics.draw_string("This image is created by Aspose.Imaging API", Font("Times New Roman", 16),
brush, PointF(50.0, 400.0))
# Сохраните все изменения.
image.save();
This example demonstrates the use of different classes from imageoptions package for export purposes. A gif image is loaded as an instance of Image and then exported out to several formats.
from aspose.imaging import Image
from aspose.imaging.imageoptions import BmpOptions, JpegOptions, PngOptions, TiffOptions
from aspose.imaging.fileformats.tiff.enums import TiffExpectedFormat
from os.path import join as path_join
directory = "c:\\temp\\"
#Загрузить существующее GIF‑изображение как экземпляр класса Image.
with Image.load(path_join(directory, "sample.gif")) as image:
# Экспортировать в формат BMP, используя параметры по умолчанию.
image.save(path_join(directory, "output.bmp"), BmpOptions())
# Экспортировать в формат JPEG, используя параметры по умолчанию.
image.save(path_join(directory, "output.jpg"), JpegOptions())
# Экспортировать в формат PNG, используя параметры по умолчанию.
image.save(path_join(directory, "output.png"), PngOptions())
# Экспортировать в формат TIFF, используя параметры по умолчанию.
image.save(path_join(directory, "output.tif"), TiffOptions(TiffExpectedFormat.DEFAULT))
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);
}
# Размер выходного файла должен значительно уменьшиться