PNG Görüntülerini Düzenleme

PNG Görüntüleri için Şeffaflığı Belirtme

PNG formatında resimleri kaydetmenin avantajlarından biri şeffaf arka plana sahip olabilmesidir. Aspose.PSD for Java, PngImage ve RasterImage sınıfları için şeffaflığı belirtme özelliği sağlar. Aspose.PSD for Java API, yeni PNG görüntüleri oluştururken veya mevcut görüntüleri PNG formatına dönüştürürken herhangi bir rengi şeffaf olarak belirtmek için kullanılabilir. Bu amaçlar için, Aspose.PSD for Java API’sı şeffaf renk özelliğini ve şeffaf olarak render edilmesi gereken herhangi bir rengi belirten ayarlanabilir PngColorType özelliğini sunmaktadır. Aşağıdaki kod parçası, mevcut bir PSD görüntüsünün PngImage aşırı yüklenmiş yapıcı kullanılarak PNG görüntüsüne dönüştürülmesini ve istenen rengin şeffaf olarak belirtilmesini göstermektedir.

String dataDir = Utils.getDataDir(SpecifyTransparency.class) + "ModifyingAndConvertingImages/";
try (PsdImage psdImage = (PsdImage) Image.load(dataDir + "sample.psd");
// Initialize PNG image with psd image pixel data.
PsdImage pngImage = new PsdImage(psdImage)) {
// specify the PNG image transparency options and save to file.
pngImage.setTransparentColor(Color.getWhite());
pngImage.setTransparentColor(true);
pngImage.save(dataDir + "Specify_Transparency_result.png");
}

PNG Görüntüleri için Çözünürlüğü Belirleme

Aspose.PSD for Java, horizontal ve dikey çözünürlük parametrelerini belirlemek için kullanılabilecek ResolutionSetting sınıfını sunar, PNG dahil tüm görüntü formatları için. Bu makale, Aspose.PSD for Java API’sını kullanarak PNG görüntü formatı için yatay ve dikey çözünürlük parametrelerini belirleme yöntemini göstermektedir. Aşağıdaki kod parçası, mevcut bir PSD görüntüsünü yükler ve PNG formatına dönüştürürken aynı zamanda çözünürlüğü değiştirir.

String dataDir = Utils.getDataDir(SettingResolution.class) + "ModifyingAndConvertingImages/";
try (PsdImage psdImage = (PsdImage) Image.load(dataDir + "sample.psd")) {
// Create an instance of PngOptions, Set the horizontal & vertical resolutions and Save the result on disc
PngOptions options = new PngOptions();
options.setResolutionSettings(new ResolutionSetting(72, 96));
psdImage.save(dataDir + "SettingResolution_output.png", options);
}

PNG Dosyalarını Sıkıştırma

Taşınabilir Ağ Grafik (PNG), bir bit eşiğinin üzerinden bir bit eşiğinden bir bit eşiğinden bir bit eşiğinden bir bit eşiğine doğru bir yollar. Bu değeri ayarlarken dosya boyutunu sıkıştırır ve resim kalitesini düşürmez. Bu makale, Aspose.PSD API’larının size PNG dosya boyutunu kontrol etme imkanı tanıdığını açıklar. Aspose.PSD API’ları, PNG dosya formatı için sıkıştırma seviyelerini belirlemek için int türü CompressionLevel özelliğine sahip olan PngOptions sınıfını kullanabilir. Bu özellik 0 ile 9 arasında bir değer kabul eder, 9 maksimum sıkıştırmadır. Aşağıdaki kod parçası, Aspose.PSD for Java API’sını kullanarak Sıkıştırma Seviyelerini belirlemenin nasıl yapıldığını göstermektedir.

String dataDir = Utils.getDataDir(ApplyFilterMethod.class) + "ModifyingAndConvertingImages/";
try (PsdImage psdImage = (PsdImage) Image.load(dataDir + "sample.psd")) {
// Loop over possible CompressionLevel range
for (int i = 0; i <= 9; i++) {
// Create an instance of PngOptions for each resultant PNG, Set CompressionLevel and Save result on disk
PngOptions options = new PngOptions();
options.setCompressionLevel(i);
psdImage.save(dataDir + i + "_out.png", options);
}
}

PNG Görüntüleri için Bit Derinliğini Belirtme

Görüntüleme bit derinliği, bir bit eşiğinin bir bitmap görüntüsünde tek bir pikselin rengini belirtmek için kullanılan bit sayısıdır. Diğer tüm bit eşiğleri formatlarında olduğu gibi, PNG renk derinliği de 1-bit (2 renk), 2-bit (4 renk), 4-bit (16 renk) ve 8-bit (256 renk) gibi bit şeklinde temsil edilir. Aspose.PSD for Java API’sı, PngOptions sınıfı tarafından sağlanan BitDepth özelliğini kullanarak PNG görüntüleri için bit derinliğini ayarlamak için kullanılabilir. Şu anda, BitDepth özelliği, grayscale ve dizinlenmiş renk türleri için 1, 2, 4 veya 8 bitler olarak ayarlanabilir. Diğer tüm renk türleri için yalnızca 8 bit desteklenmektedir. Aşağıdaki kod parçası, bir PNG görüntüsü için Bit Derinliğini nasıl ayarlayacağını göstermektedir.

String dataDir = Utils.getDataDir(SpecifyBitDepth.class) + "ModifyingAndConvertingImages/";
try (PsdImage psdImage = (PsdImage) Image.load(dataDir + "sample.psd")) {
// Create an instance of PngOptions, Set the desired ColorType, BitDepth according to the specified ColorType and save image
PngOptions options = new PngOptions();
options.setColorType(PngColorType.Grayscale);
options.setBitDepth((byte) 1);
psdImage.save(dataDir + "SpecifyBitDepth_out.png", options);
}

PNG Görüntülerine Filtre Yöntemleri Uygulama

Aspose.PSD for Java, PNG görüntüsü için filtre türünü belirlemede kullanılabilecek PngFilterType türünü sunar. Aşağıdaki kod parçası, bir PSD dosyasına filtre uygulanarak PNG görüntüsüne nasıl dönüştürüleceğini göstermektedir.

String dataDir = Utils.getDataDir(ApplyFilterMethod.class) + "ModifyingAndConvertingImages/";
try (PsdImage psdImage = (PsdImage) Image.load(dataDir + "sample.psd")) {
// Create an instance of PngOptions, Set the PNG filter method and Save changes to the disc
PngOptions options = new PngOptions();
options.setFilterType(PngFilterType.Paeth);
psdImage.save(dataDir + "ApplyFilterMethod_out.png", options);
}

Şeffaf Bir PNG Görüntüsünün Arka Plan Rengini Değiştirme

PNG formatındaki görüntüler şeffaf arka plana sahip olabilir. Aspose.PSD for Java, şeffaf arka plana sahip bir PNG görüntüsünün arka plan rengini değiştirme özelliği sağlar. Aspose.PSD for Java API, şeffaf bir PNG görüntüsünün rengini ayarlamak/değiştirmek için kullanılabilir. Aşağıdaki kod parçası, şeffaf bir PNG görüntüsünün arka plan rengini nasıl ayarlayacağını göstermektedir.

String dataDir = Utils.getDataDir(ChangeBackgroundColor.class) + "ModifyingAndConvertingImages/";
try (PsdImage psdImage = (PsdImage) Image.load(dataDir + "sample.psd");
// Convert to PngImage based on PsdImage.
PsdImage pngImage = new PsdImage(psdImage)) {
int[] pixels = pngImage.loadArgb32Pixels(pngImage.getBounds());
// Iterate through the pixel array and Check the pixel information
//that if it is a transparent color pixel and Change the pixel color to white
int transparent = pngImage.getTransparentColor().toArgb();
int replacementColor = Color.getYellow().toArgb();
for (int i = 0; i < pixels.length; i++) {
if (pixels[i] == transparent) {
pixels[i] = replacementColor;
}
}
// Replace the pixel array into the image.
pngImage.saveArgb32Pixels(pngImage.getBounds(), pixels);
pngImage.save(dataDir + "ChangeBackground_out.png");
}