Редагування зображень у форматі PNG

Вказання прозорості для зображень PNG

Однією з переваг зберігання зображень у форматі PNG є можливість мати прозоре тло. Aspose.PSD для .NET надає функцію вказання прозорості для зображень PNG та растрових зображень, як показано в нижче наведеному розділі. Aspose.PSD для .NET API може бути використаний для встановлення будь-якого кольору як прозорого при створенні нових зображень PNG або конвертації існуючих зображень у формат PNG. У цій цілі, для API Aspose.PSD для .NET використовується властивість TransparentColor та перелічення PngColorType, які можуть бути встановлені для вказання будь-якого кольору, що буде відтворюватися як прозорий на PNG зображенні. Наведений нижче фрагмент коду демонструє, як конвертувати існуюче зображення PSD у зображення PNG, вказавши потрібний колір як прозорий.

// For complete examples and data files, please go to https://github.com/aspose-psd/Aspose.PSD-for-.NET
// Load a PSD file as an image and cast it into PsdImage
using (PsdImage psdImage = (PsdImage)Image.Load(dataDir + "sample.psd"))
{
// specify the PNG image transparency options and save to file.
psdImage.TransparentColor = Color.White;
psdImage.HasTransparentColor = true;
PngOptions opt = new PngOptions();
psdImage.Save(dataDir + "Specify_Transparency_result.png", new PngOptions());
}

Встановлення роздільної здатності для зображень PNG

Aspose.PSD для .NET використовує клас ResolutionSetting, який можна використовувати для встановлення роздільної здатності для всіх форматів зображень, включаючи PNG. Ця стаття демонструє використання API Aspose.PSD для .NET для встановлення параметрів горизонтальної та вертикальної роздільної здатності для формату зображення PNG. Наведений нижче фрагмент коду завантажує існуюче зображення PSD та конвертує його у формат PNG, також змінюючи роздільну здатність.

// For complete examples and data files, please go to https://github.com/aspose-psd/Aspose.PSD-for-.NET
// Load a PSD file as an image and cast it into PsdImage
using (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.ResolutionSettings = new ResolutionSetting(72, 96);
psdImage.Save(dataDir + "SettingResolution_output.png", options);
}

Стискання файлів PNG

Portable Network Graphic (PNG) - це формат стиснення без втрат для передачі бітової карти через мережу. При збереженні зображення у форматі PNG у будь-якій програмі вас можуть попросити вибрати рівень стиснення в діапазоні від 0 до максимального рівня. Встановлення цієї величини фактично стискає розмір файлу, не зменшуючи якість зображення. У цій статті описано, як API Aspose.PSD дозволяє вам контролювати розмір файлу PNG. API Aspose.PSD може бути використаний для встановлення рівнів стиснення для формату файлу PNG за допомогою класу PngOptions, який має властивість CompressionLevel типу int. Ця властивість приймає значення від 0 до 9, де 9 - це максимальне стиснення. Наведений нижче фрагмент коду демонструє, як встановити рівні стиснення за допомогою API Aspose.PSD для .NET.

// For complete examples and data files, please go to https://github.com/aspose-psd/Aspose.PSD-for-.NET
// Load a PSD file as an image and cast it into PsdImage
using (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.CompressionLevel = i;
psdImage.Save(dataDir + i + "_out.png", options);
}
}

Вказання глибини кольору для зображень PNG

Глибина кольору в мистецтві зображення - це кількість бітів, яка використовується для позначення кольору одного пікселя на бітовому зображенні. Як і для всіх інших форматів бітових зображень, глибина кольору PNG також виражена в бітах, наприклад, 1-бітова (2 кольори), 2-бітова (4 кольори), 4-бітова (16 кольорів) та 8-бітова (256 кольорів). Aspose.PSD для .NET API може бути використаний для встановлення глибини кольору для зображень PNG за допомогою властивості BitDepth, яка надається класом PngOptions. На даний момент властивість BitDepth може бути встановлена на значення 1, 2, 4 або 8 біт для відтінків сірого та індексованих кольорів. Для всіх інших типів кольорів підтримується лише 8 біт. Наведений нижче фрагмент коду демонструє, як встановити глибину кольору для зображення PNG.

// For complete examples and data files, please go to https://github.com/aspose-psd/Aspose.PSD-for-.NET
// Load a PSD file as an image and cast it into PsdImage
using (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.ColorType = PngColorType.Grayscale;
options.BitDepth = 1;
psdImage.Save(dataDir + "SpecifyBitDepth_out.png", options);
}

Застосування методів фільтрації до зображень PNG

Глибина кольору в мистецтві зображення - це кількість бітів, яка використовується для позначення кольору одного пікселя на бітовому зображенні. Як і для всіх інших форматів бітових зображень, глибина кольору PNG також виражена в бітах, наприклад, 1-бітова (2 кольори), 2-бітова (4 кольори), 4-бітова (16 кольорів) та 8-бітова (256 кольорів). Aspose.PSD для .NET API може бути використаний для встановлення глибини кольору для зображень PNG за допомогою властивості BitDepth, яка надається класом PngOptions. На даний момент властивість BitDepth може бути встановлена на значення 1, 2, 4 або 8 біт для відтінків сірого та індексованих кольорів. Для всіх інших типів кольорів підтримується лише 8 біт. Наведений нижче фрагмент коду демонструє, як встановити глибину кольору для зображення PNG.

// For complete examples and data files, please go to https://github.com/aspose-psd/Aspose.PSD-for-.NET
// Load a PSD file as an image and cast it into PsdImage
using (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.FilterType = PngFilterType.Paeth;
psdImage.Save(dataDir + "ApplyFilterMethod_out.png", options);
}

Зміна колірного фону прозорого зображення PNG

Зображення в форматі PNG можуть мати прозоре тло. Aspose.PSD для .NET надає можливість змінювати колір тла зображення PNG, яке має прозоре тло. Aspose.PSD для .NET API може бути використаний для встановлення/зміни кольору прозорого зображення PNG. Наведений нижче фрагмент коду демонструє, як встановити/змінити колір тла прозорого зображення PNG.

// For complete examples and data files, please go to https://github.com/aspose-psd/Aspose.PSD-for-.NET
// Load a PSD file as an image and cast it into PsdImage
using (PsdImage psdImage = (PsdImage)Image.Load(dataDir + "sample.psd"))
{
int[] pixels = psdImage.LoadArgb32Pixels(psdImage.Bounds);
// 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 = psdImage.TransparentColor.ToArgb();
int replacementColor = Color.Yellow.ToArgb();
for (int i = 0; i < pixels.Length; i++)
{
if (pixels[i] == transparent)
{
pixels[i] = replacementColor;
}
}
// Replace the pixel array into the image.
psdImage.SaveArgb32Pixels(psdImage.Bounds, pixels);
psdImage.Save(dataDir + "ChangeBackground_out.png", new PngOptions());
}