Обработка изображений PNG
Указание прозрачности изображений PNG
Одним из преимуществ сохранения изображений в формате PNG является возможность использования прозрачного фона. Aspose.PSD для .NET предоставляет функцию указания прозрачности для изображений PNG и растровых изображений, как показано в следующем разделе. Aspose.PSD для .NET API может использоваться для установки любого цвета в качестве прозрачного при создании новых изображений PNG или конвертации существующих изображений в формат PNG. Для этого Aspose.PSD для .NET API предоставляет свойства 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. В этой статье демонстрируется использование Aspose.PSD для .NET API для установки параметров горизонтального и вертикального разрешения для изображения в формате 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 до максимального уровня. Установка этого значения фактически сжимает размер файла и не ухудшает качество изображения. В этой статье описывается, как Aspose.PSD APIs позволяют управлять размером файла PNG. С помощью Aspose.PSD APIs можно устанавливать уровни сжатия для формата файла PNG с использованием класса PngOptions, который имеет свойство int CompressionLevel. Это свойство принимает значение от 0 до 9, где 9 - максимальное сжатие. Ниже приведен фрагмент кода, демонстрирующий, как установить уровни сжатия с использованием Aspose.PSD для .NET API.
// 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()); | |
} |