PngOptions klass

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()Initierar en ny instans av klassen PngOptions.
PngOptions(png_options)Initierar en ny instans av klassen PngOptions.

Properties

NameTypeAccessDescription
DEFAULT_COMPRESSION_LEVEL [static]PngCompressionLevelrStandardkomprimeringsnivån.
bit_depthSystem.Byter/wHämtar eller anger bitdjupsvärdena i intervallet 1, 2, 4, 8, 16.


Observera följande begränsningar:


PngColorType.INDEXED_COLOR stöder bitdjup på 1, 2, 4, 8.


PngColorType.GRAYSCALE, PngColorType.GRAYSCALE_WITH_ALPHA stöder bitdjup på 8.


PngColorType.TRUECOLOR, PngColorType.TRUECOLOR_WITH_ALPHA stöder bitdjup på 8, 16.

buffer_size_hintintr/wHämtar eller anger en ledtråd för buffertstorlek som definierar maximal tillåten storlek för alla interna buffertar.
color_typePngColorTyper/wHämtar eller anger färgens typ.
compression_levelintr/wHämtar eller anger komprimeringsnivån för PngImage.
disposedboolrHämtar ett värde som indikerar om den här instansen är frigjord.
exif_dataExifDatar/wHämtar eller anger Exif-data.
filter_typePngFilterTyper/wHämtar eller anger filtertypen som används under sparprocessen för png‑filen.
full_frameboolr/wHämtar eller anger ett värde som indikerar om [full frame].
keep_metadataboolr/wHämtar ett värde som anger om originalmetadata för bilden ska behållas vid export.
multi_page_optionsMultiPageOptionsr/wFlersidiga alternativ
paletteIColorPaletter/wHämtar eller anger färgpaletten.
png_compression_levelPngCompressionLevelr/wHämtar eller anger komprimeringsnivån för PngImage.
progressiveboolr/wHämtar eller anger ett värde som indikerar om en PngImage är progressiv.
resolution_settingsResolutionSettingr/wHämtar eller anger upplösningsinställningarna.
sourceSourcer/wHämtar eller anger källan där bilden ska skapas.
vector_rasterization_optionsVectorRasterizationOptionsr/wHämtar eller anger vektorrasteriseringsalternativen.
xmp_dataXmpPacketWrapperr/wHämtar eller anger XMP-metadatabehållaren.

Methods

NameDescription
clone()Skapar en medlemsvis klon av detta objekt.
try_set_metadata(metadata)Försöker sätta en metadata-instans, om detta Image-instans stödjer och implementerar IImageMetadataFormat-instansen.

Constructor: PngOptions()

 PngOptions() 

Initierar en ny instans av klassen PngOptions.

Constructor: PngOptions(png_options)

 PngOptions(png_options) 

Initierar en ny instans av klassen PngOptions.

Parameters:

ParameterTypBeskrivning
png_optionsPngOptionsPNG-alternativen.

Property: color_type

Hämtar eller anger färgens typ.

See also:

Example # 1: The following example shows how to compress a PNG image, using indexed color …

Property: compression_level

Hämtar eller anger komprimeringsnivån för PngImage.

See also:

Example # 1: The following example shows how to compress a PNG image, using indexed color …

Property: progressive

Hämtar eller anger ett värde som indikerar om en PngImage är progressiv.

See also:

Example # 1: The following example shows how to compress a PNG image, using indexed color …

Method: clone()

 clone() 

Skapar en medlemsvis klon av detta objekt.

Returns

TypBeskrivning
ImageOptionsBaseEn medlemsvis klon av detta objekt.

Method: try_set_metadata(metadata)

 try_set_metadata(metadata) 

Försöker sätta en metadata-instans, om detta Image-instans stödjer och implementerar IImageMetadataFormat-instansen.

Parameters:

ParameterTypBeskrivning
metadataIImageMetadataFormatMetadata.

Returns

TypBeskrivning
boolSant, om IMetadataContainer‑instansen stöder och/eller implementerar IImageMetadataFormat‑instansen; annars falskt.

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

#Skapar en instans av filström
with open(r"C:\temp\output.png", "w+b") as stream:
	#Skapa en instans av PngOptions och ange dess olika egenskaper
	pngOptions = PngOptions()
	#Ange källan för PngOptions
	pngOptions.source = StreamSource(stream)
	#Skapa en instans av Image
	with Image.create(pngOptions, 500, 500) as image:
		#Skapa och initiera en instans av Graphics-klassen
		graphics = Graphics(image)
		#Rensa Graphics-ytan
		graphics.clear(Color.wheat);
		#Rita en båge genom att ange Pen-objektet med svart färg, 
		#en rektangel som omger bågen, startvinkel och svepvinkel
		graphics.draw_arc(Pen(Color.black, 2.0), Rectangle(200, 200, 100, 200), 0, 300)
		#Rita en Bezier genom att ange Pen-objektet med blå färg och koordinatpunkter.
		graphics.draw_bezier(Pen(Color.blue, 2.0), Point(250, 100), Point(300, 30), Point(450, 100), Point(235, 25))
		#Rita en kurva genom att specificera Pen-objektet med grön färg och en array av punkter
		graphics.draw_curve(Pen(Color.green, 2.0), [Point(100, 200), Point(100, 350), Point(200, 450)])
		#Rita en ellips med Pen-objektet och en omgivande Rectangle
		graphics.draw_ellipse(Pen(Color.yellow, 2.0), Rectangle(300, 300, 100, 100))
		#Rita en linje
		graphics.draw_line(Pen(Color.violet, 2.0), Point(100, 100), Point(200, 200))
		#Rita ett pajsegment
		graphics.draw_pie(Pen(Color.silver, 2.0), Rectangle(Point(200, 20), Size(200, 200)), 0, 45);
		#Rita en polygon genom att specificera Pen-objektet med röd färg och en array av punkter
		graphics.draw_polygon(Pen(Color.red, 2.0), [Point(20, 100), Point(20, 200), Point(220, 20)])
		#Rita en Rectangle
		graphics.draw_rectangle(Pen(Color.orange, 2.0), Rectangle(Point(250, 250), Size(100, 100)))
		#Skapa ett SolidBrush-objekt och sätt dess olika egenskaper
		brush = SolidBrush()
		brush.color = Color.purple
		#Rita en String med SolidBrush-objektet och Font, vid en specifik Point
		graphics.draw_string("This image is created by Aspose.Imaging API", Font("Times New Roman", 16),
							 brush, PointF(50.0, 400.0))
		# spara alla ändringar.
		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\\"
#Läs in en befintlig gif-bild som en instans av Image-klassen.
with Image.load(path_join(directory, "sample.gif")) as image:
	# Exportera till BMP-filformat med standardalternativen.
	image.save(path_join(directory, "output.bmp"), BmpOptions())
	# Exportera till JPEG-filformat med standardalternativen.
	image.save(path_join(directory, "output.jpg"), JpegOptions())
	# Exportera till PNG-filformat med standardalternativen.
	image.save(path_join(directory, "output.png"), PngOptions())
	# Exportera till TIFF-filformat med standardalternativen.
	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

# Laddar png-bild        
sourceFilePath = "OriginalRings.png"
outputFilePath = "OriginalRingsOutput.png"
with Image.load(sourceFilePath) as image:
	png_options = PngOptions()
	png_options.progressive = True
	# Använd indexerad färgtyp
	png_options.color_type = PngColorType.INDEXED_COLOR
	# Använd maximal komprimering
	png_options.compression_level = 9
	# Hämta den närmaste 8-bitars färgpaletten, som täcker så många pixlar som möjligt, så att en bild
	# med palett är nästan visuellt omöjlig att skilja från en bild utan palett.
	png_options.palette = ColorPaletteHelper.get_close_image_palette(
						as_of(image, RasterImage), 256, 
						PaletteMiningMethod.HISTOGRAM)
		 
	image.save(outputFilePath, png_options);
}
# Utdatafilens storlek bör minskas avsevärt