Class ColorPaletteHelper
Namespace: Aspose.Imaging
Assembly: Aspose.Imaging.dll (25.2.0)
색상 팔레트 조작을 위한 헬퍼 클래스입니다.
public static class ColorPaletteHelper
상속
상속된 멤버
object.GetType(), object.MemberwiseClone(), object.ToString(), object.Equals(object?), object.Equals(object?, object?), object.ReferenceEquals(object?, object?), object.GetHashCode()
메서드
Create4Bit()
4비트 색상 팔레트를 생성합니다.
public static IColorPalette Create4Bit()
반환 값
4비트 색상 팔레트입니다.
Create4BitGrayscale(bool)
4비트 그레이스케일 팔레트를 생성합니다.
public static IColorPalette Create4BitGrayscale(bool minIsWhite)
매개변수
minIsWhite
bool
#### 반환 값
[IColorPalette](/imaging/aspose.imaging.icolorpalette)
4비트 그레이스케일 팔레트입니다.
### <a id="Aspose_Imaging_ColorPaletteHelper_Create8Bit"></a> Create8Bit\(\)
8비트 색상 팔레트를 생성합니다.
```csharp
public static IColorPalette Create8Bit()
반환 값
8비트 색상 팔레트입니다.
Create8BitGrayscale(bool)
8비트 그레이스케일 팔레트를 생성합니다.
public static IColorPalette Create8BitGrayscale(bool minIsWhite)
매개변수
minIsWhite
bool
#### 반환 값
[IColorPalette](/imaging/aspose.imaging.icolorpalette)
8비트 그레이스케일 팔레트입니다.
#### 예제
다음 예제는 팔레트화된 그레이스케일 BMP 이미지를 생성한 다음 파일로 저장합니다.```csharp
[C#]
string dir = "c:\\temp\\";
Aspose.Imaging.ImageOptions.BmpOptions createOptions = new Aspose.Imaging.ImageOptions.BmpOptions();
// 파일로 저장
createOptions.Source = new Aspose.Imaging.Sources.FileCreateSource(dir + "output.palette8bit.bmp", false);
// 출력 이미지의 크기를 줄이기 위해 픽셀당 8비트를 사용합니다.
createOptions.BitsPerPixel = 8;
// 모든 그레이스케일 색상을 포함하는 표준 8비트 그레이스케일 색상 팔레트를 설정합니다.
// 처리된 이미지가 그레이스케일 색상만 포함하는 경우, 그 팔레트화된 버전은
// 비팔레트화된 버전과 시각적으로 구별할 수 없습니다.
createOptions.Palette = Aspose.Imaging.ColorPaletteHelper.Create8BitGrayscale(false);
// 압축 없이 저장합니다.
// 출력 이미지의 크기를 줄이기 위해 RLE-8 압축을 사용할 수도 있습니다.
createOptions.Compression = Aspose.Imaging.FileFormats.Bmp.BitmapCompression.Rgb;
// 수평 및 수직 해상도를 96 dpi로 설정합니다.
createOptions.ResolutionSettings = new Aspose.Imaging.ResolutionSetting(96.0, 96.0);
// 100 x 100 px의 BMP 이미지를 생성하고 파일로 저장합니다.
using (Aspose.Imaging.Image image = Aspose.Imaging.Image.Create(createOptions, 100, 100))
{
Aspose.Imaging.Graphics graphics = new Aspose.Imaging.Graphics(image);
Aspose.Imaging.Brushes.LinearGradientBrush gradientBrush = new Aspose.Imaging.Brushes.LinearGradientBrush(
new Aspose.Imaging.Point(0, 0),
new Aspose.Imaging.Point(image.Width, image.Height),
Aspose.Imaging.Color.Black,
Aspose.Imaging.Color.White);
// 그레이스케일 그라데이션으로 이미지를 채웁니다.
graphics.FillRectangle(gradientBrush, image.Bounds);
image.Save();
}
CreateGrayscale(int)
지정된 비트 수의 그레이스케일 팔레트를 가져옵니다. 허용되는 비트 값은 1, 2, 4, 8입니다.
public static IColorPalette CreateGrayscale(int bits)
매개변수
bits
int
비트 수입니다.
반환 값
그레이스케일 팔레트입니다.
예외
bits
CreateMonochrome()
2가지 색상만 포함된 단색 팔레트를 생성합니다.
public static IColorPalette CreateMonochrome()
반환 값
단색 이미지용 색상 팔레트입니다.
GetCloseImagePalette(RasterImage, int)
이미지에 색상 팔레트가 없는 경우 래스터 이미지에서 색상 팔레트를 가져옵니다(이미지를 팔레트화함). 팔레트가 존재하는 경우 계산을 수행하는 대신 사용됩니다.
public static IColorPalette GetCloseImagePalette(RasterImage image, int entriesCount)
매개변수
image
RasterImage
래스터 이미지입니다.
entriesCount
int
원하는 항목 수입니다.
반환 값
가장 빈번한 색상으로 시작하고 entriesCount
항목을 포함하는 색상 팔레트입니다.
예제
다음 예제는 BMP 이미지를 로드하고 다양한 저장 옵션을 사용하여 다시 BMP로 저장합니다.```csharp [C#]
string dir = "c:\\temp\\";
using (Aspose.Imaging.Image image = Aspose.Imaging.Image.Load(dir + "sample.bmp"))
{
Aspose.Imaging.RasterImage rasterImage = (Aspose.Imaging.RasterImage)image;
// BmpOptions 생성
Aspose.Imaging.ImageOptions.BmpOptions saveOptions = new Aspose.Imaging.ImageOptions.BmpOptions();
// 출력 이미지의 크기를 줄이기 위해 픽셀당 8비트를 사용합니다.
saveOptions.BitsPerPixel = 8;
// 최대 이미지 픽셀 수를 포함하는 가장 가까운 8비트 색상 팔레트를 설정하여 팔레트화된 이미지가
// 비팔레트화된 이미지와 거의 시각적으로 구별되지 않도록 합니다.
saveOptions.Palette = Aspose.Imaging.ColorPaletteHelper.GetCloseImagePalette(rasterImage, 256);
// 압축 없이 저장합니다.
// 출력 이미지의 크기를 줄이기 위해 RLE-8 압축을 사용할 수도 있습니다.
saveOptions.Compression = Aspose.Imaging.FileFormats.Bmp.BitmapCompression.Rgb;
// 수평 및 수직 해상도를 96 dpi로 설정합니다.
saveOptions.ResolutionSettings = new Aspose.Imaging.ResolutionSetting(96.0, 96.0);
image.Save(dir + "sample.bmpoptions.bmp", saveOptions);
}
다음 예제는 BMP 이미지를 팔레트화하여 출력 크기를 줄이는 방법을 보여줍니다.```csharp
[C#]
// 100 x 100 px의 BMP 이미지를 생성합니다.
using (Aspose.Imaging.FileFormats.Bmp.BmpImage bmpImage = new Aspose.Imaging.FileFormats.Bmp.BmpImage(100, 100))
{
// 이미지의 왼쪽 상단에서 오른쪽 하단 모서리까지 선형 그라데이션입니다.
Aspose.Imaging.Brushes.LinearGradientBrush brush =
new Aspose.Imaging.Brushes.LinearGradientBrush(
new Aspose.Imaging.Point(0, 0),
new Aspose.Imaging.Point(bmpImage.Width, bmpImage.Height),
Aspose.Imaging.Color.Red,
Aspose.Imaging.Color.Green);
// 선형 그라데이션 브러시로 전체 이미지를 채웁니다.
Aspose.Imaging.Graphics gr = new Aspose.Imaging.Graphics(bmpImage);
gr.FillRectangle(brush, bmpImage.Bounds);
// 가능한 한 많은 픽셀을 포함하는 가장 가까운 8비트 색상 팔레트를 가져와서 팔레트화된 이미지가
// 비팔레트화된 이미지와 거의 시각적으로 구별되지 않도록 합니다.
Aspose.Imaging.IColorPalette palette = Aspose.Imaging.ColorPaletteHelper.GetCloseImagePalette(bmpImage, 256);
// 8비트 팔레트는 최대 256 색상을 포함합니다.
Aspose.Imaging.ImageOptions.BmpOptions saveOptions = new Aspose.Imaging.ImageOptions.BmpOptions();
saveOptions.Palette = palette;
saveOptions.BitsPerPixel = 8;
using (System.IO.MemoryStream stream = new System.IO.MemoryStream())
{
bmpImage.Save(stream, saveOptions);
System.Console.WriteLine("팔레트화된 이미지 크기는 {0} 바이트입니다.", stream.Length);
}
using (System.IO.MemoryStream stream = new System.IO.MemoryStream())
{
bmpImage.Save(stream);
System.Console.WriteLine("비팔레트화된 이미지 크기는 {0} 바이트입니다.", stream.Length);
}
}
// 출력 결과는 다음과 같습니다:
// 팔레트화된 이미지 크기는 11078 바이트입니다.
// 비팔레트화된 이미지 크기는 40054 바이트입니다.
GetCloseImagePalette(RasterImage, int, PaletteMiningMethod)
이미지에 색상 팔레트가 없는 경우 래스터 이미지에서 색상 팔레트를 가져옵니다(이미지를 팔레트화함). 팔레트는 더 나은 인덱스 이미지 품질을 위해 최적화되거나 PaletteMiningMethod.UseCurrentPalette가 사용될 때 “있는 그대로” 사용됩니다.
public static IColorPalette GetCloseImagePalette(RasterImage image, int entriesCount, PaletteMiningMethod paletteMiningMethod)
매개변수
image
RasterImage
래스터 이미지입니다.
entriesCount
int
원하는 항목 수입니다.
paletteMiningMethod
PaletteMiningMethod
팔레트 마이닝 방법입니다.
반환 값
가장 빈번한 색상으로 시작하고 entriesCount
항목을 포함하는 색상 팔레트입니다.
예제
다음 예제는 PNG 이미지를 압축하는 방법을 보여줍니다. 인덱스 색상과 최적의 팔레트를 사용합니다.```csharp [C#]
// png 이미지 로드
string sourceFilePath="OriginalRings.png";
string outputFilePath="OriginalRingsOutput.png";
using (Aspose.Imaging.Image image = Aspose.Imaging.Image.Load(sourceFilePath))
{
image.Save(outputFilePath, new Aspose.Imaging.ImageOptions.PngOptions()
{
Progressive = true,
// 인덱스 색상 유형 사용
ColorType = Aspose.Imaging.FileFormats.Png.PngColorType.IndexedColor,
// 최대 압축 사용
CompressionLevel = 9,
// 가능한 한 많은 픽셀을 포함하는 가장 가까운 8비트 색상 팔레트를 가져와서 팔레트화된 이미지가
// 비팔레트화된 이미지와 거의 시각적으로 구별되지 않도록 합니다.
Palette = Aspose.Imaging.ColorPaletteHelper.GetCloseImagePalette((Aspose.Imaging.RasterImage)image, 256, Aspose.Imaging.PaletteMiningMethod.Histogram)
});
}
// 출력 파일 크기는 상당히 줄어들어야 합니다.
### <a id="Aspose_Imaging_ColorPaletteHelper_GetCloseImagePalette_Aspose_Imaging_RasterImage_Aspose_Imaging_Rectangle_System_Int32_"></a> GetCloseImagePalette\(RasterImage, Rectangle, int\)
이미지에 색상 팔레트가 없는 경우 래스터 이미지에서 색상 팔레트를 가져옵니다(이미지를 팔레트화함). 팔레트가 존재하는 경우 계산을 수행하는 대신 사용됩니다.
```csharp
public static IColorPalette GetCloseImagePalette(RasterImage image, Rectangle destBounds, int entriesCount)
매개변수
image
RasterImage
래스터 이미지입니다.
destBounds
Rectangle
대상 이미지 경계입니다.
entriesCount
int
원하는 항목 수입니다.
반환 값
가장 빈번한 색상으로 시작하고 entriesCount
항목을 포함하는 색상 팔레트입니다.
GetCloseImagePalette(RasterImage, Rectangle, int, bool)
이미지에 색상 팔레트가 없는 경우 래스터 이미지에서 색상 팔레트를 가져옵니다(이미지를 팔레트화함). 팔레트가 존재하는 경우 계산을 수행하는 대신 사용됩니다.
public static IColorPalette GetCloseImagePalette(RasterImage image, Rectangle destBounds, int entriesCount, bool useImagePalette)
매개변수
image
RasterImage
래스터 이미지입니다.
destBounds
Rectangle
대상 이미지 경계입니다.
entriesCount
int
원하는 항목 수입니다.
useImagePalette
bool
설정하면 사용 가능한 경우 자체 이미지 팔레트를 사용합니다.
반환 값
가장 빈번한 색상으로 시작하고 entriesCount
항목을 포함하는 색상 팔레트입니다.
GetCloseImagePalette(RasterImage, Rectangle, int, bool, Color)
이미지에 색상 팔레트가 없는 경우 래스터 이미지에서 색상 팔레트를 가져옵니다(이미지를 팔레트화함). 팔레트가 존재하는 경우 계산을 수행하는 대신 사용됩니다.
public static IColorPalette GetCloseImagePalette(RasterImage image, Rectangle destBounds, int entriesCount, bool useImagePalette, Color alphaBlendInColor)
매개변수
image
RasterImage
래스터 이미지입니다.
destBounds
Rectangle
대상 이미지 경계입니다.
entriesCount
int
원하는 항목 수입니다.
useImagePalette
bool
설정하면 사용 가능한 경우 자체 이미지 팔레트를 사용합니다.
alphaBlendInColor
Color
반투명 알파 대체를 위한 배경색으로 사용해야 하는 색상입니다.
반환 값
가장 빈번한 색상으로 시작하고 entriesCount
항목을 포함하는 색상 팔레트입니다.
GetCloseImagePalette(RasterImage, Rectangle, int, bool, Color, bool)
이미지에 색상 팔레트가 없는 경우 래스터 이미지에서 색상 팔레트를 가져옵니다(이미지를 팔레트화함). 팔레트가 존재하는 경우 계산을 수행하는 대신 사용됩니다.
public static IColorPalette GetCloseImagePalette(RasterImage image, Rectangle destBounds, int entriesCount, bool useImagePalette, Color alphaBlendInColor, bool keepTransparency)
매개변수
image
RasterImage
래스터 이미지입니다.
destBounds
Rectangle
대상 이미지 경계입니다.
entriesCount
int
원하는 항목 수입니다.
useImagePalette
bool
설정하면 사용 가능한 경우 자체 이미지 팔레트를 사용합니다.
alphaBlendInColor
Color
반투명 알파 대체를 위한 배경색으로 사용해야 하는 색상입니다.
keepTransparency
bool
설정하면 이미지 색상의 알파 채널 비트를 고려합니다.
반환 값
가장 빈번한 색상으로 시작하고 entriesCount
항목을 포함하는 색상 팔레트입니다.
GetCloseTransparentImagePalette(RasterImage, int)
이미지에 색상 팔레트가 없는 경우 래스터 이미지에서 색상 팔레트를 가져옵니다(이미지를 팔레트화함). 팔레트가 존재하는 경우 계산을 수행하는 대신 사용됩니다.
public static IColorPalette GetCloseTransparentImagePalette(RasterImage image, int entriesCount)
매개변수
image
RasterImage
래스터 이미지입니다.
entriesCount
int
원하는 항목 수입니다.
반환 값
가장 빈번한 색상으로 시작하고 entriesCount
항목을 포함하는 색상 팔레트입니다.
GetDownscalePalette(RasterImage)
초기 이미지 색상 값의 상위 비트로 구성된 256 색상 팔레트를 가져옵니다.
public static ColorPalette GetDownscalePalette(RasterImage image)
매개변수
image
RasterImage
이미지입니다.
반환 값
Aspose.Imaging.ColorPalette입니다.
GetUniformColorPalette(RasterImage)
균일한 256 색상 팔레트를 가져옵니다.
public static ColorPalette GetUniformColorPalette(RasterImage image)
매개변수
image
RasterImage
이미지입니다.
반환 값
Aspose.Imaging.ColorPalette입니다.
HasTransparentColors(IColorPalette)
지정된 팔레트에 투명 색상이 있는지 여부를 확인합니다.
public static bool HasTransparentColors(IColorPalette palette)
매개변수
palette
IColorPalette
팔레트입니다.
반환 값
지정된 팔레트에 투명 색상이 있으면 cstrue</code>를, 그렇지 않으면
csfalse를 반환합니다.
예외
palette
가 null입니다.