Class ColorPaletteHelper
Namespace: Aspose.Imaging
Assembly: Aspose.Imaging.dll (25.2.0)
Hjälarklass för manipulation av färgpaletter.
public static class ColorPaletteHelper
Arv
Arvade Medlemmar
object.GetType(), object.MemberwiseClone(), object.ToString(), object.Equals(object?), object.Equals(object?, object?), object.ReferenceEquals(object?, object?), object.GetHashCode()
Metoder
Create4Bit()
Skapar den 4-bitars färgpaletten.
public static IColorPalette Create4Bit()
Returer
Den 4-bitars färgpaletten.
Create4BitGrayscale(bool)
Skapar den 4-bitars gråskalepaletten.
public static IColorPalette Create4BitGrayscale(bool minIsWhite)
Parametrar
minIsWhite
bool
om den är inställd på ```cstrue börjar paletten med vit färg, annars börjar den med svart färg.
Returer
Den 4-bitars gråskalepaletten.
Create8Bit()
Skapar den 8-bitars färgpaletten.
public static IColorPalette Create8Bit()
Returer
Den 8-bitars färgpaletten.
Create8BitGrayscale(bool)
Skapar den 8-bitars gråskalepaletten.
public static IColorPalette Create8BitGrayscale(bool minIsWhite)
Parametrar
minIsWhite
bool
om den är inställd på ```cstrue börjar paletten med vit färg, annars börjar den med svart färg.
Returer
Den 8-bitars gråskalepaletten.
Exempel
Följande exempel skapar en palettiserad gråskala BMP-bild och sparar den sedan till en fil.```csharp [C#]
string dir = "c:\\temp\\";
Aspose.Imaging.ImageOptions.BmpOptions createOptions = new Aspose.Imaging.ImageOptions.BmpOptions();
// Spara till en fil
createOptions.Source = new Aspose.Imaging.Sources.FileCreateSource(dir + "output.palette8bit.bmp", false);
// Använd 8 bitar per pixel för att minska storleken på utdata bilden.
createOptions.BitsPerPixel = 8;
// Ställ in den standard 8-bitars gråskale färgpaletten som täcker alla gråskale färger.
// Om den bearbetade bilden endast innehåller gråskale färger, är dess palettiserade version
// visuellt omöjlig att särskilja från en icke-palettiserad.
createOptions.Palette = Aspose.Imaging.ColorPaletteHelper.Create8BitGrayscale(false);
// Spara utan kompression.
// Du kan också använda RLE-8 kompression för att minska storleken på utdata bilden.
createOptions.Compression = Aspose.Imaging.FileFormats.Bmp.BitmapCompression.Rgb;
// Ställ in den horisontella och vertikala upplösningen till 96 dpi.
createOptions.ResolutionSettings = new Aspose.Imaging.ResolutionSetting(96.0, 96.0);
// Skapa en BMP-bild av 100 x 100 px och spara den till en fil.
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);
// Fyll bilden med en gråskala gradient
graphics.FillRectangle(gradientBrush, image.Bounds);
image.Save();
}
### <a id="Aspose_Imaging_ColorPaletteHelper_CreateGrayscale_System_Int32_"></a> CreateGrayscale\(int\)
Hämtar gråskalepaletten med angiven bitantal. Tillåtna bitvärden är 1, 2, 4, 8.
```csharp
public static IColorPalette CreateGrayscale(int bits)
Parametrar
bits
int
Bitantalet.
Returer
Gråskalepalett.
Undantag
bits
CreateMonochrome()
Skapar en monokrom färgpalett som endast innehåller 2 färger.
public static IColorPalette CreateMonochrome()
Returer
Färgpalett för monokroma bilder.
GetCloseImagePalette(RasterImage, int)
Hämtar färgpaletten från rasterbild (palettiserar bilden) om bilden inte har en. Om paletten finns kommer den att användas istället för att utföra beräkningar.
public static IColorPalette GetCloseImagePalette(RasterImage image, int entriesCount)
Parametrar
image
RasterImage
Rasterbilden.
entriesCount
int
Det önskade antalet poster.
Returer
Färgpaletten som börjar med de mest frekventa färgerna från image
och innehåller entriesCount
poster.
Exempel
Följande exempel laddar en BMP-bild och sparar den tillbaka till BMP med olika spara alternativ.```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;
// Skapa BmpOptions
Aspose.Imaging.ImageOptions.BmpOptions saveOptions = new Aspose.Imaging.ImageOptions.BmpOptions();
// Använd 8 bitar per pixel för att minska storleken på utdata bilden.
saveOptions.BitsPerPixel = 8;
// Ställ in den närmaste 8-bitars färgpaletten som täcker det maximala antalet bildpixlar, så att en palettiserad bild
// är nästan visuellt omöjlig att särskilja från en icke-palettiserad.
saveOptions.Palette = Aspose.Imaging.ColorPaletteHelper.GetCloseImagePalette(rasterImage, 256);
// Spara utan kompression.
// Du kan också använda RLE-8 kompression för att minska storleken på utdata bilden.
saveOptions.Compression = Aspose.Imaging.FileFormats.Bmp.BitmapCompression.Rgb;
// Ställ in den horisontella och vertikala upplösningen till 96 dpi.
saveOptions.ResolutionSettings = new Aspose.Imaging.ResolutionSetting(96.0, 96.0);
image.Save(dir + "sample.bmpoptions.bmp", saveOptions);
}
Följande exempel visar hur man palettiserar en BMP-bild för att minska dess utdata storlek.```csharp
[C#]
// Skapa en BMP-bild 100 x 100 px.
using (Aspose.Imaging.FileFormats.Bmp.BmpImage bmpImage = new Aspose.Imaging.FileFormats.Bmp.BmpImage(100, 100))
{
// Den linjära gradienten från vänster-övre till höger-nedre hörn av bilden.
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);
// Fyll hela bilden med den linjära gradientborsten.
Aspose.Imaging.Graphics gr = new Aspose.Imaging.Graphics(bmpImage);
gr.FillRectangle(brush, bmpImage.Bounds);
// Hämta den närmaste 8-bitars färgpaletten som täcker så många pixlar som möjligt, så att en palettiserad bild
// är nästan visuellt omöjlig att särskilja från en icke-palettiserad.
Aspose.Imaging.IColorPalette palette = Aspose.Imaging.ColorPaletteHelper.GetCloseImagePalette(bmpImage, 256);
// 8-bitars palett innehåller högst 256 färger.
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("Den palettiserade bildens storlek är {0} bytes.", stream.Length);
}
using (System.IO.MemoryStream stream = new System.IO.MemoryStream())
{
bmpImage.Save(stream);
System.Console.WriteLine("Den icke-palettiserade bildens storlek är {0} bytes.", stream.Length);
}
}
// Utdata ser ut så här:
// Den palettiserade bildens storlek är 11078 bytes.
// Den icke-palettiserade bildens storlek är 40054 bytes.
GetCloseImagePalette(RasterImage, int, PaletteMiningMethod)
Hämtar färgpaletten från rasterbild (palettiserar bilden) om bilden inte har en. Paletten är på väg att optimeras för bättre indexerad bildkvalitet eller tas “AS IS” när PaletteMiningMethod.UseCurrentPalette används.
public static IColorPalette GetCloseImagePalette(RasterImage image, int entriesCount, PaletteMiningMethod paletteMiningMethod)
Parametrar
image
RasterImage
Rasterbilden.
entriesCount
int
Det önskade antalet poster.
paletteMiningMethod
PaletteMiningMethod
Metoden för palettbrytning.
Returer
Färgpaletten som börjar med de mest frekventa färgerna från image
och innehåller entriesCount
poster.
Exempel
Följande exempel visar hur man komprimerar en PNG-bild, med indexerad färg med bästa passande palett```csharp [C#]
// Laddar png bild
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()
{
Progressiv = true,
// Använd indexerad färgtyp
ColorType = Aspose.Imaging.FileFormats.Png.PngColorType.IndexedColor,
// Använd maximal kompression
CompressionLevel = 9,
// Hämta den närmaste 8-bitars färgpaletten som täcker så många pixlar som möjligt, så att en palettiserad bild
// är nästan visuellt omöjlig att särskilja från en icke-palettiserad.
Palette = Aspose.Imaging.ColorPaletteHelper.GetCloseImagePalette((Aspose.Imaging.RasterImage)image, 256, Aspose.Imaging.PaletteMiningMethod.Histogram)
});
}
// Utdatafilens storlek bör minskas avsevärt
### <a id="Aspose_Imaging_ColorPaletteHelper_GetCloseImagePalette_Aspose_Imaging_RasterImage_Aspose_Imaging_Rectangle_System_Int32_"></a> GetCloseImagePalette\(RasterImage, Rectangle, int\)
Hämtar färgpaletten från rasterbild (palettiserar bilden) om bilden inte har en. Om paletten finns kommer den att användas istället för att utföra beräkningar.
```csharp
public static IColorPalette GetCloseImagePalette(RasterImage image, Rectangle destBounds, int entriesCount)
Parametrar
image
RasterImage
Rasterbilden.
destBounds
Rectangle
Mått för destination bilden.
entriesCount
int
Det önskade antalet poster.
Returer
Färgpaletten som börjar med de mest frekventa färgerna från image
och innehåller entriesCount
poster.
GetCloseImagePalette(RasterImage, Rectangle, int, bool)
Hämtar färgpaletten från rasterbild (palettiserar bilden) om bilden inte har en. Om paletten finns kommer den att användas istället för att utföra beräkningar.
public static IColorPalette GetCloseImagePalette(RasterImage image, Rectangle destBounds, int entriesCount, bool useImagePalette)
Parametrar
image
RasterImage
Rasterbilden.
destBounds
Rectangle
Mått för destination bilden.
entriesCount
int
Det önskade antalet poster.
useImagePalette
bool
Om den är inställd, kommer den att använda sin egen bildpalett om den är tillgänglig.
Returer
Färgpaletten som börjar med de mest frekventa färgerna från image
och innehåller entriesCount
poster.
GetCloseImagePalette(RasterImage, Rectangle, int, bool, Color)
Hämtar färgpaletten från rasterbild (palettiserar bilden) om bilden inte har en. Om paletten finns kommer den att användas istället för att utföra beräkningar.
public static IColorPalette GetCloseImagePalette(RasterImage image, Rectangle destBounds, int entriesCount, bool useImagePalette, Color alphaBlendInColor)
Parametrar
image
RasterImage
Rasterbilden.
destBounds
Rectangle
Mått för destination bilden.
entriesCount
int
Det önskade antalet poster.
useImagePalette
bool
Om den är inställd, kommer den att använda sin egen bildpalett om den är tillgänglig.
alphaBlendInColor
Color
Färgen som ska användas som bakgrundsfärg för semi-transparent alpha ersättning.
Returer
Färgpaletten som börjar med de mest frekventa färgerna från image
och innehåller entriesCount
poster.
GetCloseImagePalette(RasterImage, Rectangle, int, bool, Color, bool)
Hämtar färgpaletten från rasterbild (palettiserar bilden) om bilden inte har en. Om paletten finns kommer den att användas istället för att utföra beräkningar.
public static IColorPalette GetCloseImagePalette(RasterImage image, Rectangle destBounds, int entriesCount, bool useImagePalette, Color alphaBlendInColor, bool keepTransparency)
Parametrar
image
RasterImage
Rasterbilden.
destBounds
Rectangle
Mått för destination bilden.
entriesCount
int
Det önskade antalet poster.
useImagePalette
bool
Om den är inställd, kommer den att använda sin egen bildpalett om den är tillgänglig.
alphaBlendInColor
Color
Färgen som ska användas som bakgrundsfärg för semi-transparent alpha ersättning.
keepTransparency
bool
Om den är inställd, kommer den att beakta alpha-kanalens bitar av bildfärgerna.
Returer
Färgpaletten som börjar med de mest frekventa färgerna från image
och innehåller entriesCount
poster.
GetCloseTransparentImagePalette(RasterImage, int)
Hämtar färgpaletten från rasterbild (palettiserar bilden) om bilden inte har en. Om paletten finns kommer den att användas istället för att utföra beräkningar.
public static IColorPalette GetCloseTransparentImagePalette(RasterImage image, int entriesCount)
Parametrar
image
RasterImage
Rasterbilden.
entriesCount
int
Det önskade antalet poster.
Returer
Färgpaletten som börjar med de mest frekventa färgerna från image
och innehåller entriesCount
poster.
GetDownscalePalette(RasterImage)
Hämtar 256-färgspaletten, sammansatt av de övre bitarna av initiala bildfärg värden.
public static ColorPalette GetDownscalePalette(RasterImage image)
Parametrar
image
RasterImage
Bilden.
Returer
Aspose.Imaging.ColorPalette.
GetUniformColorPalette(RasterImage)
Hämtar en enhetlig 256-färgspalett.
public static ColorPalette GetUniformColorPalette(RasterImage image)
Parametrar
image
RasterImage
Bilden.
Returer
Aspose.Imaging.ColorPalette.
HasTransparentColors(IColorPalette)
Bestämmer om den angivna paletten har transparenta färger.
public static bool HasTransparentColors(IColorPalette palette)
Parametrar
palette
IColorPalette
Paletten.
Returer
cstrue</code> om den angivna paletten har transparenta färger; annars
csfalse.
Undantag
palette
är null.