Класс 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

NameDescription
PngOptions()Создаёт новый экземпляр класса PngOptions.
PngOptions(png_options)Создаёт новый экземпляр класса PngOptions.

Properties

NameTypeAccessDescription
DEFAULT_COMPRESSION_LEVEL [static]PngCompressionLevelrУровень сжатия по умолчанию.
bit_depthSystem.Byter/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_hintintr/wПолучает или задает подсказку о размере буфера, определяющую максимальный допустимый размер для всех внутренних буферов.
color_typePngColorTyper/wПолучает или задает тип цвета.
compression_levelintr/wПолучает или задаёт уровень сжатия PngImage.
disposedboolrПолучает значение, указывающее, удалён ли этот экземпляр.
exif_dataExifDatar/wПолучает или задает данные Exif.
filter_typePngFilterTyper/wПолучает или задаёт тип фильтра, используемый при сохранении PNG‑файла.
full_frameboolr/wПолучает или задает значение, указывающее, включен ли [full frame].
keep_metadataboolr/wПолучает значение, указывающее, сохранять ли оригинальные метаданные изображения при экспорте.
multi_page_optionsMultiPageOptionsr/wПараметры multipage
paletteIColorPaletter/wПолучает или задает цветовую палитру.
png_compression_levelPngCompressionLevelr/wПолучает или задаёт уровень сжатия PngImage.
progressiveboolr/wПолучает или задаёт значение, указывающее, является ли PngImage прогрессивным.
resolution_settingsResolutionSettingr/wПолучает или задает параметры разрешения.
sourceSourcer/wПолучает или задает источник, в котором создаётся изображение.
vector_rasterization_optionsVectorRasterizationOptionsr/wПолучает или задает параметры растеризации вектора.
xmp_dataXmpPacketWrapperr/wПолучает или задает контейнер метаданных XMP.

Methods

NameDescription
clone()Создаёт поверхностную копию этого экземпляра.
try_set_metadata(metadata)Пытается установить экземпляр metadata, если этот экземпляр Image поддерживает и реализует экземпляр IImageMetadataFormat.

Constructor: PngOptions()

 PngOptions() 

Создаёт новый экземпляр класса PngOptions.

Constructor: PngOptions(png_options)

 PngOptions(png_options) 

Создаёт новый экземпляр класса PngOptions.

Parameters:

ПараметрТипОписание
png_optionsPngOptionsПараметры 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:

ПараметрТипОписание
metadataIImageMetadataFormatМетаданные.

Returns

ТипОписание
boolTrue, если экземпляр 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);
}
# Размер выходного файла должен значительно уменьшиться