Class ColorPaletteHelper
Namespace: Aspose.Imaging
Assembly: Aspose.Imaging.dll (25.2.0)
Classe helper per la manipolazione delle palette di colori.
public static class ColorPaletteHelper
Ereditarietà
Membri ereditati
object.GetType(), object.MemberwiseClone(), object.ToString(), object.Equals(object?), object.Equals(object?, object?), object.ReferenceEquals(object?, object?), object.GetHashCode()
Metodi
Create4Bit()
Crea la palette di colori a 4 bit.
public static IColorPalette Create4Bit()
Restituisce
La palette di colori a 4 bit.
Create4BitGrayscale(bool)
Crea la palette in scala di grigi a 4 bit.
public static IColorPalette Create4BitGrayscale(bool minIsWhite)
Parametri
minIsWhite
bool
se impostato su ```cstrue la palette inizia con il colore bianco, altrimenti inizia con il colore nero.
Restituisce
La palette in scala di grigi a 4 bit.
Create8Bit()
Crea la palette di colori a 8 bit.
public static IColorPalette Create8Bit()
Restituisce
La palette di colori a 8 bit.
Create8BitGrayscale(bool)
Crea la palette in scala di grigi a 8 bit.
public static IColorPalette Create8BitGrayscale(bool minIsWhite)
Parametri
minIsWhite
bool
se impostato su ```cstrue la palette inizia con il colore bianco, altrimenti inizia con il colore nero.
Restituisce
La palette in scala di grigi a 8 bit.
Esempi
Il seguente esempio crea un’immagine BMP in scala di grigi palettizzata e la salva in un file.```csharp [C#]
string dir = "c:\\temp\\";
Aspose.Imaging.ImageOptions.BmpOptions createOptions = new Aspose.Imaging.ImageOptions.BmpOptions();
// Salva in un file
createOptions.Source = new Aspose.Imaging.Sources.FileCreateSource(dir + "output.palette8bit.bmp", false);
// Usa 8 bit per pixel per ridurre la dimensione dell'immagine di output.
createOptions.BitsPerPixel = 8;
// Imposta la palette di colori in scala di grigi standard a 8 bit che copre tutti i colori in scala di grigi.
// Se l'immagine elaborata contiene solo colori in scala di grigi, allora la sua versione palettizzata
// è visivamente indistinguibile da una non palettizzata.
createOptions.Palette = Aspose.Imaging.ColorPaletteHelper.Create8BitGrayscale(false);
// Salva senza compressione.
// Puoi anche usare la compressione RLE-8 per ridurre la dimensione dell'immagine di output.
createOptions.Compression = Aspose.Imaging.FileFormats.Bmp.BitmapCompression.Rgb;
// Imposta la risoluzione orizzontale e verticale a 96 dpi.
createOptions.ResolutionSettings = new Aspose.Imaging.ResolutionSetting(96.0, 96.0);
// Crea un'immagine BMP di 100 x 100 px e salvala in un file.
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);
// Riempi l'immagine con un gradiente in scala di grigi
graphics.FillRectangle(gradientBrush, image.Bounds);
image.Save();
}
### <a id="Aspose_Imaging_ColorPaletteHelper_CreateGrayscale_System_Int32_"></a> CreateGrayscale\(int\)
Ottiene la palette in scala di grigi di un determinato numero di bit. I valori di bit consentiti sono 1, 2, 4, 8.
```csharp
public static IColorPalette CreateGrayscale(int bits)
Parametri
bits
int
Il numero di bit.
Restituisce
Palette in scala di grigi.
Eccezioni
bits
CreateMonochrome()
Crea una palette di colori monocromatica contenente solo 2 colori.
public static IColorPalette CreateMonochrome()
Restituisce
Palette di colori per immagini monocromatiche.
GetCloseImagePalette(RasterImage, int)
Ottiene la palette di colori da un’immagine raster (palettizza l’immagine) nel caso in cui l’immagine non ne abbia una. Nel caso in cui esista una palette, verrà utilizzata invece di eseguire calcoli.
public static IColorPalette GetCloseImagePalette(RasterImage image, int entriesCount)
Parametri
image
RasterImage
L’immagine raster.
entriesCount
int
Il numero desiderato di voci.
Restituisce
La palette di colori che inizia con i colori più frequenti dall’ image
e contiene entriesCount
voci.
Esempi
Il seguente esempio carica un’immagine BMP e la salva nuovamente in BMP utilizzando varie opzioni di salvataggio.```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;
// Crea BmpOptions
Aspose.Imaging.ImageOptions.BmpOptions saveOptions = new Aspose.Imaging.ImageOptions.BmpOptions();
// Usa 8 bit per pixel per ridurre la dimensione dell'immagine di output.
saveOptions.BitsPerPixel = 8;
// Imposta la palette di colori a 8 bit più vicina che copre il numero massimo di pixel dell'immagine, in modo che un'immagine palettizzata
// sia quasi visivamente indistinguibile da una non palettizzata.
saveOptions.Palette = Aspose.Imaging.ColorPaletteHelper.GetCloseImagePalette(rasterImage, 256);
// Salva senza compressione.
// Puoi anche usare la compressione RLE-8 per ridurre la dimensione dell'immagine di output.
saveOptions.Compression = Aspose.Imaging.FileFormats.Bmp.BitmapCompression.Rgb;
// Imposta la risoluzione orizzontale e verticale a 96 dpi.
saveOptions.ResolutionSettings = new Aspose.Imaging.ResolutionSetting(96.0, 96.0);
image.Save(dir + "sample.bmpoptions.bmp", saveOptions);
}
Il seguente esempio mostra come palettizzare un'immagine BMP per ridurre la sua dimensione di output.```csharp
[C#]
// Crea un'immagine BMP 100 x 100 px.
using (Aspose.Imaging.FileFormats.Bmp.BmpImage bmpImage = new Aspose.Imaging.FileFormats.Bmp.BmpImage(100, 100))
{
// Il gradiente lineare dall'angolo in alto a sinistra all'angolo in basso a destra dell'immagine.
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);
// Riempi l'intera immagine con il pennello a gradiente lineare.
Aspose.Imaging.Graphics gr = new Aspose.Imaging.Graphics(bmpImage);
gr.FillRectangle(brush, bmpImage.Bounds);
// Ottieni la palette di colori a 8 bit più vicina che copre il maggior numero possibile di pixel, in modo che un'immagine palettizzata
// sia quasi visivamente indistinguibile da una non palettizzata.
Aspose.Imaging.IColorPalette palette = Aspose.Imaging.ColorPaletteHelper.GetCloseImagePalette(bmpImage, 256);
// La palette a 8 bit contiene al massimo 256 colori.
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("La dimensione dell'immagine palettizzata è {0} bytes.", stream.Length);
}
using (System.IO.MemoryStream stream = new System.IO.MemoryStream())
{
bmpImage.Save(stream);
System.Console.WriteLine("La dimensione dell'immagine non palettizzata è {0} bytes.", stream.Length);
}
}
// L'output appare così:
// La dimensione dell'immagine palettizzata è 11078 bytes.
// La dimensione dell'immagine non palettizzata è 40054 bytes.
GetCloseImagePalette(RasterImage, int, PaletteMiningMethod)
Ottiene la palette di colori da un’immagine raster (palettizza l’immagine) nel caso in cui l’immagine non ne abbia una. La palette è ottimizzata per una migliore qualità dell’immagine indicizzata o presa “COSÌ COM’È” quando viene utilizzato PaletteMiningMethod.UseCurrentPalette.
public static IColorPalette GetCloseImagePalette(RasterImage image, int entriesCount, PaletteMiningMethod paletteMiningMethod)
Parametri
image
RasterImage
L’immagine raster.
entriesCount
int
Il numero desiderato di voci.
paletteMiningMethod
PaletteMiningMethod
Il metodo di estrazione della palette.
Restituisce
La palette di colori che inizia con i colori più frequenti dall’ image
e contiene entriesCount
voci.
Esempi
Il seguente esempio mostra come comprimere un’immagine PNG, utilizzando colori indicizzati con la palette di adattamento migliore```csharp [C#]
// Carica immagine 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,
// Usa il tipo di colore indicizzato
ColorType = Aspose.Imaging.FileFormats.Png.PngColorType.IndexedColor,
// Usa la compressione massima
CompressionLevel = 9,
// Ottieni la palette di colori a 8 bit più vicina che copre il maggior numero possibile di pixel, in modo che un'immagine palettizzata
// sia quasi visivamente indistinguibile da una non palettizzata.
Palette = Aspose.Imaging.ColorPaletteHelper.GetCloseImagePalette((Aspose.Imaging.RasterImage)image, 256, Aspose.Imaging.PaletteMiningMethod.Histogram)
});
}
// La dimensione del file di output dovrebbe essere significativamente ridotta
### <a id="Aspose_Imaging_ColorPaletteHelper_GetCloseImagePalette_Aspose_Imaging_RasterImage_Aspose_Imaging_Rectangle_System_Int32_"></a> GetCloseImagePalette\(RasterImage, Rectangle, int\)
Ottiene la palette di colori da un'immagine raster (palettizza l'immagine) nel caso in cui l'immagine non ne abbia una. Nel caso in cui esista una palette, verrà utilizzata invece di eseguire calcoli.
```csharp
public static IColorPalette GetCloseImagePalette(RasterImage image, Rectangle destBounds, int entriesCount)
Parametri
image
RasterImage
L’immagine raster.
destBounds
Rectangle
I limiti dell’immagine di destinazione.
entriesCount
int
Il numero desiderato di voci.
Restituisce
La palette di colori che inizia con i colori più frequenti dall’ image
e contiene entriesCount
voci.
GetCloseImagePalette(RasterImage, Rectangle, int, bool)
Ottiene la palette di colori da un’immagine raster (palettizza l’immagine) nel caso in cui l’immagine non ne abbia una. Nel caso in cui esista una palette, verrà utilizzata invece di eseguire calcoli.
public static IColorPalette GetCloseImagePalette(RasterImage image, Rectangle destBounds, int entriesCount, bool useImagePalette)
Parametri
image
RasterImage
L’immagine raster.
destBounds
Rectangle
I limiti dell’immagine di destinazione.
entriesCount
int
Il numero desiderato di voci.
useImagePalette
bool
Se impostato, utilizzerà la propria palette dell’immagine se disponibile.
Restituisce
La palette di colori che inizia con i colori più frequenti dall’ image
e contiene entriesCount
voci.
GetCloseImagePalette(RasterImage, Rectangle, int, bool, Color)
Ottiene la palette di colori da un’immagine raster (palettizza l’immagine) nel caso in cui l’immagine non ne abbia una. Nel caso in cui esista una palette, verrà utilizzata invece di eseguire calcoli.
public static IColorPalette GetCloseImagePalette(RasterImage image, Rectangle destBounds, int entriesCount, bool useImagePalette, Color alphaBlendInColor)
Parametri
image
RasterImage
L’immagine raster.
destBounds
Rectangle
I limiti dell’immagine di destinazione.
entriesCount
int
Il numero desiderato di voci.
useImagePalette
bool
Se impostato, utilizzerà la propria palette dell’immagine se disponibile.
alphaBlendInColor
Color
Il colore che dovrebbe essere utilizzato come colore di sfondo per la sostituzione dell’alpha semi-trasparente.
Restituisce
La palette di colori che inizia con i colori più frequenti dall’ image
e contiene entriesCount
voci.
GetCloseImagePalette(RasterImage, Rectangle, int, bool, Color, bool)
Ottiene la palette di colori da un’immagine raster (palettizza l’immagine) nel caso in cui l’immagine non ne abbia una. Nel caso in cui esista una palette, verrà utilizzata invece di eseguire calcoli.
public static IColorPalette GetCloseImagePalette(RasterImage image, Rectangle destBounds, int entriesCount, bool useImagePalette, Color alphaBlendInColor, bool keepTransparency)
Parametri
image
RasterImage
L’immagine raster.
destBounds
Rectangle
I limiti dell’immagine di destinazione.
entriesCount
int
Il numero desiderato di voci.
useImagePalette
bool
Se impostato, utilizzerà la propria palette dell’immagine se disponibile.
alphaBlendInColor
Color
Il colore che dovrebbe essere utilizzato come colore di sfondo per la sostituzione dell’alpha semi-trasparente.
keepTransparency
bool
Se impostato, considererà i bit del canale alpha dei colori dell’immagine.
Restituisce
La palette di colori che inizia con i colori più frequenti dall’ image
e contiene entriesCount
voci.
GetCloseTransparentImagePalette(RasterImage, int)
Ottiene la palette di colori da un’immagine raster (palettizza l’immagine) nel caso in cui l’immagine non ne abbia una. Nel caso in cui esista una palette, verrà utilizzata invece di eseguire calcoli.
public static IColorPalette GetCloseTransparentImagePalette(RasterImage image, int entriesCount)
Parametri
image
RasterImage
L’immagine raster.
entriesCount
int
Il numero desiderato di voci.
Restituisce
La palette di colori che inizia con i colori più frequenti dall’ image
e contiene entriesCount
voci.
GetDownscalePalette(RasterImage)
Ottiene una palette di 256 colori, composta dai bit superiori dei valori di colore dell’immagine iniziale.
public static ColorPalette GetDownscalePalette(RasterImage image)
Parametri
image
RasterImage
L’immagine.
Restituisce
La Aspose.Imaging.ColorPalette.
GetUniformColorPalette(RasterImage)
Ottiene una palette uniforme di 256 colori.
public static ColorPalette GetUniformColorPalette(RasterImage image)
Parametri
image
RasterImage
L’immagine.
Restituisce
La Aspose.Imaging.ColorPalette.
HasTransparentColors(IColorPalette)
Determina se la palette specificata ha colori trasparenti.
public static bool HasTransparentColors(IColorPalette palette)
Parametri
palette
IColorPalette
La palette.
Restituisce
cstrue</code> se la palette specificata ha colori trasparenti; altrimenti,
csfalse.
Eccezioni
palette
è null.