PngOptions
Inheritance: java.lang.Object, com.aspose.imaging.DisposableObject, com.aspose.imaging.ImageOptionsBase
public class PngOptions extends ImageOptionsBase
API’mizle yüksek kaliteli Portable Network Graphics (PNG) raster görüntülerini zahmetsizce oluşturun; sıkıştırma seviyeleri, piksel başına bit derinlikleri ve alfa bitleri için özelleştirilebilir seçenekler sunar. XMP meta veri kapsayıcılarını sorunsuz bir şekilde işleyerek kapsamlı görüntü meta verisi yönetimini sağlar ve PNG görüntülerini tam olarak istediğiniz şekilde kolayca özelleştirmenize olanak tanır.
Yapıcılar
| Yapıcı | Açıklama |
|---|---|
| PngOptions() | Yeni bir PngOptions sınıfı örneği başlatır. |
| PngOptions(PngOptions pngOptions) | Yeni bir PngOptions sınıfı örneği başlatır. |
Alanlar
| Alan | Açıklama |
|---|---|
| DEFAULT_COMPRESSION_LEVEL | Varsayılan sıkıştırma seviyesi. |
Yöntemler
| Yöntem | Açıklama |
|---|---|
| getColorType() | Renk tipini alır. |
| setColorType(int value) | Renk tipini ayarlar. |
| getProgressive() | Bir PngImage nesnesinin ilerlemeli olup olmadığını gösteren bir değer alır. |
| setProgressive(boolean value) | Bir PngImage nesnesinin ilerlemeli olup olmadığını gösteren bir değeri ayarlar. |
| getFilterType() | png dosyası kaydetme işlemi sırasında kullanılan filtre türünü alır. |
| setFilterType(int value) | png dosyası kaydetme işlemi sırasında kullanılan filtre türünü ayarlar. |
| getCompressionLevel() | PngImage sıkıştırma seviyesini alır. |
| setCompressionLevel(int value) | PngImage sıkıştırma seviyesini ayarlar. |
| getPngCompressionLevel() | PngImage sıkıştırma seviyesini alır. |
| setPngCompressionLevel(int value) | PngImage sıkıştırma seviyesini ayarlar. |
| getBitDepth() | 1, 2, 4, 8, 16 aralığındaki bit derinliği değerlerini alır. |
| setBitDepth(byte value) | 1, 2, 4, 8, 16 aralığındaki bit derinliği değerlerini ayarlar. |
Example: This example demonstrates the use of different classes from SaveOptions Namespace for export purposes.
Bu örnek, dışa aktarma amaçları için SaveOptions ad alanındaki farklı sınıfların kullanımını gösterir. Gif türünde bir görüntü, Image sınıfının bir örneğine yüklenir ve ardından çeşitli formatlara dışa aktarılır.
String dir = "c:\\temp\\";
//Image sınıfının bir örneğine mevcut bir görüntüyü (Gif türünde) yükleyin
com.aspose.imaging.Image image = com.aspose.imaging.Image.load(dir + "sample.gif");
try {
//Varsayılan seçenekleri kullanarak BMP dosya formatına dışa aktar
image.save(dir + "output.bmp", new com.aspose.imaging.imageoptions.BmpOptions());
//Varsayılan seçenekleri kullanarak JPEG dosya formatına dışa aktar
image.save(dir + "output.jpeg", new com.aspose.imaging.imageoptions.JpegOptions());
//Varsayılan seçenekleri kullanarak PNG dosya formatına dışa aktar
image.save(dir + "output.png", new com.aspose.imaging.imageoptions.PngOptions());
//Varsayılan seçenekleri kullanarak TIFF dosya formatına dışa aktar
image.save(dir + "output.tif", new com.aspose.imaging.imageoptions.TiffOptions(com.aspose.imaging.fileformats.tiff.enums.TiffExpectedFormat.Default));
} finally {
image.dispose();
}
Example: The following example shows how to convert a multipage vector image to PNG format in general way without referencing to a particular image type.
String dir = "C:\\aspose.imaging\\net\\misc\\ImagingReleaseQATester\\Tests\\testdata\\2548";
String inputFilePath = (dir + "Multipage.cdr");
String outputFilePath = (dir + "Multipage.cdr.png");
com.aspose.imaging.ImageOptionsBase exportOptions = new com.aspose.imaging.imageoptions.PngOptions();
try (com.aspose.imaging.Image image = com.aspose.imaging.Image.load(inputFilePath))
{
exportOptions.setMultiPageOptions(null);
// Yalnızca ilk iki sayfayı dışa aktar. Aslında, PNG çok sayfalı bir format olmadığından yalnızca bir sayfa rasterleştirilecektir.
com.aspose.imaging.IMultipageImage multipageImage = (image instanceof com.aspose.imaging.IMultipageImage) ? (com.aspose.imaging.IMultipageImage) image : null;
if (multipageImage != null && (multipageImage.getPages() != null && multipageImage.getPageCount() > 2))
{
exportOptions.setMultiPageOptions(new com.aspose.imaging.imageoptions.MultiPageOptions(new com.aspose.imaging.IntRange(0, 2)));
}
if (image instanceof com.aspose.imaging.VectorImage)
{
com.aspose.imaging.imageoptions.VectorRasterizationOptions defaultOptions = (com.aspose.imaging.imageoptions.VectorRasterizationOptions) image.getDefaultOptions(new Object[]{Color.getWhite(), image.getWidth(), image.getHeight()});
exportOptions.setVectorRasterizationOptions(defaultOptions);
defaultOptions.setTextRenderingHint(com.aspose.imaging.TextRenderingHint.SingleBitPerPixel);
defaultOptions.setSmoothingMode(com.aspose.imaging.SmoothingMode.None);
}
image.save(outputFilePath, exportOptions);
}
PngOptions()
public PngOptions()
Yeni bir PngOptions sınıfı örneği başlatır.
PngOptions(PngOptions pngOptions)
public PngOptions(PngOptions pngOptions)
Yeni bir PngOptions sınıfı örneği başlatır.
Parameters:
| Parametre | Tür | Açıklama |
|---|---|---|
| pngOptions | PngOptions | PNG seçenekleri. |
DEFAULT_COMPRESSION_LEVEL
public static final int DEFAULT_COMPRESSION_LEVEL
Varsayılan sıkıştırma seviyesi.
getColorType()
public final int getColorType()
Renk tipini alır.
Değer: Rengin tipi.
Returns: int - renk tipi.
setColorType(int value)
public final void setColorType(int value)
Renk tipini ayarlar.
Değer: Rengin tipi.
Parameters:
| Parametre | Tür | Açıklama |
|---|---|---|
| değer | int | renk tipi. |
Example: The following example shows how to compress a PNG image, using indexed color with best fit palette
// PNG görüntüsünü yükler
String sourceFilePath = "OriginalRings.png";
String outputFilePath = "OriginalRingsOutput.png";
try (com.aspose.imaging.Image image = com.aspose.imaging.Image.load(sourceFilePath))
{
com.aspose.imaging.imageoptions.PngOptions options = new com.aspose.imaging.imageoptions.PngOptions();
options.setProgressive(true);
// Dizinli renk türünü kullan
options.setColorType(com.aspose.imaging.fileformats.png.PngColorType.IndexedColor);
// Maksimum sıkıştırmayı kullan
options.setCompressionLevel(9);
// Mümkün olduğunca çok pikseli kapsayan en yakın 8-bit renk paletini al, böylece paletli bir görüntü
// neredeyse paletlenmemiş bir görüntüden görsel olarak ayırt edilemez.
options.setPalette(com.aspose.imaging.ColorPaletteHelper.getCloseImagePalette((com.aspose.imaging.RasterImage)image,
256, Aspose.Imaging.PaletteMiningMethod.Histogram));
image.save(outputFilePath, options);
}
// Çıktı dosya boyutu önemli ölçüde azaltılmalıdır
Example: The following example shows how to save an image to PNG format using various options.
String dir = "c:\\temp\\";
// 100x100 piksel boyutunda bir PNG görüntüsü oluşturun.
// Herhangi bir desteklenen formatta görüntüyü bir dosyadan veya akıştan da yükleyebilirsiniz.
com.aspose.imaging.fileformats.png.PngImage pngImage = new com.aspose.imaging.fileformats.png.PngImage(100, 100);
try {
com.aspose.imaging.brushes.LinearGradientBrush gradientBrush = new com.aspose.imaging.brushes.LinearGradientBrush(
new com.aspose.imaging.Point(0, 0),
new com.aspose.imaging.Point(pngImage.getWidth(), pngImage.getHeight()),
com.aspose.imaging.Color.getBlue(),
com.aspose.imaging.Color.getTransparent());
com.aspose.imaging.Graphics graphics = new com.aspose.imaging.Graphics(pngImage);
// Görüntüyü mavi-şeffaf degrade ile doldurun.
graphics.fillRectangle(gradientBrush, pngImage.getBounds());
com.aspose.imaging.imageoptions.PngOptions saveOptions = new com.aspose.imaging.imageoptions.PngOptions();
// İlerlemeli yüklemeyi kullanın.
saveOptions.setProgressive(true);
// Yatay ve dikey çözünürlüğü inç başına 96 piksel olarak ayarlayın.
saveOptions.setResolutionSettings(new com.aspose.imaging.ResolutionSetting(96.0, 96.0));
// Her piksel, alfa bileşeni izleyen bir (kırmızı, yeşil, mavi) üçlüsüdür.
saveOptions.setColorType(com.aspose.imaging.fileformats.png.PngColorType.TruecolorWithAlpha);
// Maksimum sıkıştırma seviyesini ayarlayın.
saveOptions.setCompressionLevel(9);
// Bu en iyi sıkıştırmadır, ancak en yavaş yürütme süresine sahiptir.
// Uyarlamalı filtreleme, kaydetme işleminin her veri satırı için en uygun filtreyi seçeceği anlamına gelir.
saveOptions.setFilterType(com.aspose.imaging.fileformats.png.PngFilterType.Adaptive);
// Kanal başına bit sayısı.
saveOptions.setBitDepth((byte) 8);
// Bir dosyaya kaydet.
pngImage.save(dir + "output.png", saveOptions);
} finally {
pngImage.dispose();
}
getProgressive()
public final boolean getProgressive()
Bir PngImage nesnesinin ilerlemeli olup olmadığını gösteren bir değer alır.
Değer: eğer ilerlemeli; aksi takdirde,.
Returns: boolean - bir PngImage nesnesinin ilerlemeli olup olmadığını gösteren bir değer.
setProgressive(boolean value)
public final void setProgressive(boolean value)
Bir PngImage nesnesinin ilerlemeli olup olmadığını gösteren bir değeri ayarlar.
Değer: eğer ilerlemeli; aksi takdirde,.
Parameters:
| Parametre | Tür | Açıklama |
|---|---|---|
| value | boolean | Bir PngImage nesnesinin ilerlemeli olup olmadığını gösteren bir değer. |
Example: The following example shows how to compress a PNG image, using indexed color with best fit palette
// PNG görüntüsünü yükler
String sourceFilePath = "OriginalRings.png";
String outputFilePath = "OriginalRingsOutput.png";
try (com.aspose.imaging.Image image = com.aspose.imaging.Image.load(sourceFilePath))
{
com.aspose.imaging.imageoptions.PngOptions options = new com.aspose.imaging.imageoptions.PngOptions();
options.setProgressive(true);
// Dizinli renk türünü kullan
options.setColorType(com.aspose.imaging.fileformats.png.PngColorType.IndexedColor);
// Maksimum sıkıştırmayı kullan
options.setCompressionLevel(9);
// Mümkün olduğunca çok pikseli kapsayan en yakın 8-bit renk paletini al, böylece paletli bir görüntü
// neredeyse paletlenmemiş bir görüntüden görsel olarak ayırt edilemez.
options.setPalette(com.aspose.imaging.ColorPaletteHelper.getCloseImagePalette((com.aspose.imaging.RasterImage)image,
256, Aspose.Imaging.PaletteMiningMethod.Histogram));
image.save(outputFilePath, options);
}
// Çıktı dosya boyutu önemli ölçüde azaltılmalıdır
Example: This example shows how to create a PNG image with the specified options, fill it with a linear gradient colors and save it to a file.
String dir = "c:\\temp\\";
com.aspose.imaging.imageoptions.PngOptions createOptions = new com.aspose.imaging.imageoptions.PngOptions();
// Renk kanalı başına bit sayısı
createOptions.setBitDepth((byte) 8);
// Her piksel, alfa bileşeni izleyen bir (kırmızı, yeşil, mavi) üçlüsüdür.
createOptions.setColorType(com.aspose.imaging.fileformats.png.PngColorType.TruecolorWithAlpha);
// Maksimum sıkıştırma seviyesi.
createOptions.setCompressionLevel(9);
// Filtrelerin kullanımı, sürekli tonlu görüntüleri daha etkili bir şekilde sıkıştırmayı sağlar.
createOptions.setFilterType(com.aspose.imaging.fileformats.png.PngFilterType.Sub);
// İlerlemeli yüklemeyi kullanın
createOptions.setProgressive(true);
// Özel parametrelerle bir PNG görüntüsü oluşturun.
com.aspose.imaging.fileformats.png.PngImage pngImage = new com.aspose.imaging.fileformats.png.PngImage(createOptions, 100, 100);
try {
com.aspose.imaging.brushes.LinearGradientBrush gradientBrush = new com.aspose.imaging.brushes.LinearGradientBrush(
new com.aspose.imaging.Point(0, 0),
new com.aspose.imaging.Point(pngImage.getWidth(), pngImage.getHeight()),
com.aspose.imaging.Color.getBlue(),
com.aspose.imaging.Color.getTransparent());
com.aspose.imaging.Graphics graphics = new com.aspose.imaging.Graphics(pngImage);
// Görüntüyü yarı saydam bir degrade ile doldurun.
graphics.fillRectangle(gradientBrush, pngImage.getBounds());
// Bir dosyaya kaydet.
pngImage.save(dir + "output.explicitoptions.png");
} finally {
pngImage.dispose();
}
getFilterType()
public final int getFilterType()
png dosyası kaydetme işlemi sırasında kullanılan filtre türünü alır.
Returns: int - png dosyası kaydetme işlemi sırasında kullanılan filtre türü.
setFilterType(int value)
public final void setFilterType(int value)
png dosyası kaydetme işlemi sırasında kullanılan filtre türünü ayarlar.
Parameters:
| Parametre | Tür | Açıklama |
|---|---|---|
| değer | int | png dosyası kaydetme işlemi sırasında kullanılan filtre türü. |
Example: The following example shows how different filter types affect the size of the output PNG image.
// Yardımcı sınıf
class Utils {
public String getPngFilterTypeString(int filterType) {
switch (filterType) {
case com.aspose.imaging.fileformats.png.PngFilterType.None:
return "None";
case com.aspose.imaging.fileformats.png.PngFilterType.Up:
return "Up";
case com.aspose.imaging.fileformats.png.PngFilterType.Sub:
return "Sub";
case com.aspose.imaging.fileformats.png.PngFilterType.Paeth:
return "Paeth";
case com.aspose.imaging.fileformats.png.PngFilterType.Avg:
return "Avg";
case com.aspose.imaging.fileformats.png.PngFilterType.Adaptive:
return "Adaptive";
default:
throw new IllegalArgumentException("filterType");
}
}
}
// İşte ana örnek.
Utils utils = new Utils();
int[] filterTypes = new int[]
{
com.aspose.imaging.fileformats.png.PngFilterType.None,
com.aspose.imaging.fileformats.png.PngFilterType.Up,
com.aspose.imaging.fileformats.png.PngFilterType.Sub,
com.aspose.imaging.fileformats.png.PngFilterType.Paeth,
com.aspose.imaging.fileformats.png.PngFilterType.Avg,
com.aspose.imaging.fileformats.png.PngFilterType.Adaptive,
};
for (int filterType : filterTypes) {
com.aspose.imaging.imageoptions.PngOptions options = new com.aspose.imaging.imageoptions.PngOptions();
com.aspose.imaging.Image image = com.aspose.imaging.Image.load("c:\\temp\\sample.png");
try {
// Bir filtre türü ayarlayın
options.setFilterType(filterType);
java.io.ByteArrayOutputStream stream = new java.io.ByteArrayOutputStream();
try {
image.save(stream, options);
System.out.printf("The filter type is %s, the output image size is %s bytes.", utils.getPngFilterTypeString(filterType), stream.size());
} finally {
stream.close();
}
} finally {
image.dispose();
}
}
//Çıktı şöyle görünebilir:
//Filtre türü None, çıktı görüntü boyutu 116845 bayttır.
//Filtre türü Up, çıktı görüntü boyutu 86360 bayttır.
//Filtre türü Sub, çıktı görüntü boyutu 94907 bayttır.
//Filtre türü Paeth, çıktı görüntü boyutu 86403 bayttır.
//Filtre türü Avg, çıktı görüntü boyutu 89956 bayttır.
//Filtre türü Adaptive, çıktı görüntü boyutu 97248 bayttır.
getCompressionLevel()
public final int getCompressionLevel()
PngImage sıkıştırma seviyesini alır.
Returns: int - PngImage sıkıştırma seviyesi.
setCompressionLevel(int value)
public final void setCompressionLevel(int value)
PngImage sıkıştırma seviyesini ayarlar.
Parameters:
| Parametre | Tür | Açıklama |
|---|---|---|
| value | int | PngImage sıkıştırma seviyesi. |
Example: The following example shows how to compress a PNG image, using indexed color with best fit palette
// PNG görüntüsünü yükler
String sourceFilePath = "OriginalRings.png";
String outputFilePath = "OriginalRingsOutput.png";
try (com.aspose.imaging.Image image = com.aspose.imaging.Image.load(sourceFilePath))
{
com.aspose.imaging.imageoptions.PngOptions options = new com.aspose.imaging.imageoptions.PngOptions();
options.setProgressive(true);
// Dizinli renk türünü kullan
options.setColorType(com.aspose.imaging.fileformats.png.PngColorType.IndexedColor);
// Maksimum sıkıştırmayı kullan
options.setCompressionLevel(9);
// Mümkün olduğunca çok pikseli kapsayan en yakın 8-bit renk paletini al, böylece paletli bir görüntü
// neredeyse paletlenmemiş bir görüntüden görsel olarak ayırt edilemez.
options.setPalette(com.aspose.imaging.ColorPaletteHelper.getCloseImagePalette((com.aspose.imaging.RasterImage)image,
256, Aspose.Imaging.PaletteMiningMethod.Histogram));
image.save(outputFilePath, options);
}
// Çıktı dosya boyutu önemli ölçüde azaltılmalıdır
Example: The following example shows how to save an image to PNG format using various options.
String dir = "c:\\temp\\";
// 100x100 piksel boyutunda bir PNG görüntüsü oluşturun.
// Herhangi bir desteklenen formatta görüntüyü bir dosyadan veya akıştan da yükleyebilirsiniz.
com.aspose.imaging.fileformats.png.PngImage pngImage = new com.aspose.imaging.fileformats.png.PngImage(100, 100);
try {
com.aspose.imaging.brushes.LinearGradientBrush gradientBrush = new com.aspose.imaging.brushes.LinearGradientBrush(
new com.aspose.imaging.Point(0, 0),
new com.aspose.imaging.Point(pngImage.getWidth(), pngImage.getHeight()),
com.aspose.imaging.Color.getBlue(),
com.aspose.imaging.Color.getTransparent());
com.aspose.imaging.Graphics graphics = new com.aspose.imaging.Graphics(pngImage);
// Görüntüyü mavi-şeffaf degrade ile doldurun.
graphics.fillRectangle(gradientBrush, pngImage.getBounds());
com.aspose.imaging.imageoptions.PngOptions saveOptions = new com.aspose.imaging.imageoptions.PngOptions();
// İlerlemeli yüklemeyi kullanın.
saveOptions.setProgressive(true);
// Yatay ve dikey çözünürlüğü inç başına 96 piksel olarak ayarlayın.
saveOptions.setResolutionSettings(new com.aspose.imaging.ResolutionSetting(96.0, 96.0));
// Her piksel, alfa bileşeni izleyen bir (kırmızı, yeşil, mavi) üçlüsüdür.
saveOptions.setColorType(com.aspose.imaging.fileformats.png.PngColorType.TruecolorWithAlpha);
// Maksimum sıkıştırma seviyesini ayarlayın.
saveOptions.setCompressionLevel(9);
// Bu en iyi sıkıştırmadır, ancak en yavaş yürütme süresine sahiptir.
// Uyarlamalı filtreleme, kaydetme işleminin her veri satırı için en uygun filtreyi seçeceği anlamına gelir.
saveOptions.setFilterType(com.aspose.imaging.fileformats.png.PngFilterType.Adaptive);
// Kanal başına bit sayısı.
saveOptions.setBitDepth((byte) 8);
// Bir dosyaya kaydet.
pngImage.save(dir + "output.png", saveOptions);
} finally {
pngImage.dispose();
}
getPngCompressionLevel()
public final int getPngCompressionLevel()
PngImage sıkıştırma seviyesini alır.
Returns: int - PngImage sıkıştırma seviyesi.
setPngCompressionLevel(int value)
public final void setPngCompressionLevel(int value)
PngImage sıkıştırma seviyesini ayarlar.
Parameters:
| Parametre | Tür | Açıklama |
|---|---|---|
| value | int | PngImage sıkıştırma seviyesi. |
getBitDepth()
public final byte getBitDepth()
1, 2, 4, 8, 16 aralığındaki bit derinliği değerlerini alır.
Sonraki sınırlara dikkat edin:
PngColorType.IndexedColor supports bit depth of 1, 2, 4, 8.
PngColorType.Grayscale, PngColorType.GrayscaleWithAlpha support bits depth of 8.
PngColorType.Truecolor, PngColorType.TruecolorWithAlpha support bits depth of 8, 16.
Returns: byte - 1, 2, 4, 8, 16 aralığındaki bit derinliği değerleri.
setBitDepth(byte value)
public final void setBitDepth(byte value)
1, 2, 4, 8, 16 aralığındaki bit derinliği değerlerini ayarlar.
Sonraki sınırlara dikkat edin:
PngColorType.IndexedColor supports bit depth of 1, 2, 4, 8.
PngColorType.Grayscale, PngColorType.GrayscaleWithAlpha support bits depth of 8.
PngColorType.Truecolor, PngColorType.TruecolorWithAlpha support bits depth of 8, 16.
Parameters:
| Parametre | Tür | Açıklama |
|---|---|---|
| değer | byte | 1, 2, 4, 8, 16 aralığındaki bit derinliği değerleri. |
Example: The following example shows how to save an image to PNG format using various options.
String dir = "c:\\temp\\";
// 100x100 piksel boyutunda bir PNG görüntüsü oluşturun.
// Herhangi bir desteklenen formatta görüntüyü bir dosyadan veya akıştan da yükleyebilirsiniz.
com.aspose.imaging.fileformats.png.PngImage pngImage = new com.aspose.imaging.fileformats.png.PngImage(100, 100);
try {
com.aspose.imaging.brushes.LinearGradientBrush gradientBrush = new com.aspose.imaging.brushes.LinearGradientBrush(
new com.aspose.imaging.Point(0, 0),
new com.aspose.imaging.Point(pngImage.getWidth(), pngImage.getHeight()),
com.aspose.imaging.Color.getBlue(),
com.aspose.imaging.Color.getTransparent());
com.aspose.imaging.Graphics graphics = new com.aspose.imaging.Graphics(pngImage);
// Görüntüyü mavi-şeffaf degrade ile doldurun.
graphics.fillRectangle(gradientBrush, pngImage.getBounds());
com.aspose.imaging.imageoptions.PngOptions saveOptions = new com.aspose.imaging.imageoptions.PngOptions();
// İlerlemeli yüklemeyi kullanın.
saveOptions.setProgressive(true);
// Yatay ve dikey çözünürlüğü inç başına 96 piksel olarak ayarlayın.
saveOptions.setResolutionSettings(new com.aspose.imaging.ResolutionSetting(96.0, 96.0));
// Her piksel, alfa bileşeni izleyen bir (kırmızı, yeşil, mavi) üçlüsüdür.
saveOptions.setColorType(com.aspose.imaging.fileformats.png.PngColorType.TruecolorWithAlpha);
// Maksimum sıkıştırma seviyesini ayarlayın.
saveOptions.setCompressionLevel(9);
// Bu en iyi sıkıştırmadır, ancak en yavaş yürütme süresine sahiptir.
// Uyarlamalı filtreleme, kaydetme işleminin her veri satırı için en uygun filtreyi seçeceği anlamına gelir.
saveOptions.setFilterType(com.aspose.imaging.fileformats.png.PngFilterType.Adaptive);
// Kanal başına bit sayısı.
saveOptions.setBitDepth((byte) 8);
// Bir dosyaya kaydet.
pngImage.save(dir + "output.png", saveOptions);
} finally {
pngImage.dispose();
}