Class ColorPaletteHelper
Namespace: Aspose.Imaging
Assembly: Aspose.Imaging.dll (25.2.0)
Kelas pembantu untuk manipulasi palet warna.
public static class ColorPaletteHelper
Pewarisan
Anggota yang Dwarisi
object.GetType(), object.MemberwiseClone(), object.ToString(), object.Equals(object?), object.Equals(object?, object?), object.ReferenceEquals(object?, object?), object.GetHashCode()
Metode
Create4Bit()
Membuat palet warna 4 bit.
public static IColorPalette Create4Bit()
Mengembalikan
Palet warna 4 bit.
Create4BitGrayscale(bool)
Membuat palet grayscale 4 bit.
public static IColorPalette Create4BitGrayscale(bool minIsWhite)
Parameter
minIsWhite
bool
Jika diatur ke ```cstrue palet dimulai dengan warna putih, jika tidak dimulai dengan warna hitam.
Mengembalikan
Palet grayscale 4 bit.
Create8Bit()
Membuat palet warna 8 bit.
public static IColorPalette Create8Bit()
Mengembalikan
Palet warna 8 bit.
Create8BitGrayscale(bool)
Membuat palet grayscale 8 bit.
public static IColorPalette Create8BitGrayscale(bool minIsWhite)
Parameter
minIsWhite
bool
Jika diatur ke ```cstrue palet dimulai dengan warna putih, jika tidak dimulai dengan warna hitam.
Mengembalikan
Palet grayscale 8 bit.
Contoh
Contoh berikut membuat gambar BMP bergradasi palet dan kemudian menyimpannya ke file.```csharp [C#]
string dir = "c:\\temp\\";
Aspose.Imaging.ImageOptions.BmpOptions createOptions = new Aspose.Imaging.ImageOptions.BmpOptions();
// Simpan ke file
createOptions.Source = new Aspose.Imaging.Sources.FileCreateSource(dir + "output.palette8bit.bmp", false);
// Gunakan 8 bit per piksel untuk mengurangi ukuran gambar keluaran.
createOptions.BitsPerPixel = 8;
// Atur palet warna grayscale 8-bit standar yang mencakup semua warna grayscale.
// Jika gambar yang diproses hanya mengandung warna grayscale, maka versi paletnya
// secara visual tidak dapat dibedakan dari yang tidak dipalet.
createOptions.Palette = Aspose.Imaging.ColorPaletteHelper.Create8BitGrayscale(false);
// Simpan tanpa kompresi.
// Anda juga dapat menggunakan kompresi RLE-8 untuk mengurangi ukuran gambar keluaran.
createOptions.Compression = Aspose.Imaging.FileFormats.Bmp.BitmapCompression.Rgb;
// Atur resolusi horizontal dan vertikal ke 96 dpi.
createOptions.ResolutionSettings = new Aspose.Imaging.ResolutionSetting(96.0, 96.0);
// Buat gambar BMP berukuran 100 x 100 px dan simpan ke 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);
// Isi gambar dengan gradasi grayscale
graphics.FillRectangle(gradientBrush, image.Bounds);
image.Save();
}
### <a id="Aspose_Imaging_ColorPaletteHelper_CreateGrayscale_System_Int32_"></a> CreateGrayscale\(int\)
Mengambil palet grayscale dengan jumlah bit yang ditentukan. Nilai bit yang diizinkan adalah 1, 2, 4, 8.
```csharp
public static IColorPalette CreateGrayscale(int bits)
Parameter
bits
int
Jumlah bit.
Mengembalikan
Palet grayscale.
Pengecualian
bits
CreateMonochrome()
Membuat palet warna monokrom yang hanya mengandung 2 warna.
public static IColorPalette CreateMonochrome()
Mengembalikan
Palet warna untuk gambar monokrom.
GetCloseImagePalette(RasterImage, int)
Mengambil palet warna dari gambar raster (mempalet gambar) jika gambar tidak memiliki satu. Jika palet ada, itu akan digunakan alih-alih melakukan perhitungan.
public static IColorPalette GetCloseImagePalette(RasterImage image, int entriesCount)
Parameter
image
RasterImage
Gambar raster.
entriesCount
int
Jumlah entri yang diinginkan.
Mengembalikan
Palet warna yang dimulai dengan warna yang paling sering dari image
dan mengandung entriesCount
entri.
Contoh
Contoh berikut memuat gambar BMP dan menyimpannya kembali ke BMP menggunakan berbagai opsi simpan.```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;
// Buat BmpOptions
Aspose.Imaging.ImageOptions.BmpOptions saveOptions = new Aspose.Imaging.ImageOptions.BmpOptions();
// Gunakan 8 bit per piksel untuk mengurangi ukuran gambar keluaran.
saveOptions.BitsPerPixel = 8;
// Atur palet warna 8-bit terdekat yang mencakup jumlah maksimal piksel gambar, sehingga gambar yang dipalet
// hampir tidak dapat dibedakan secara visual dari yang tidak dipalet.
saveOptions.Palette = Aspose.Imaging.ColorPaletteHelper.GetCloseImagePalette(rasterImage, 256);
// Simpan tanpa kompresi.
// Anda juga dapat menggunakan kompresi RLE-8 untuk mengurangi ukuran gambar keluaran.
saveOptions.Compression = Aspose.Imaging.FileFormats.Bmp.BitmapCompression.Rgb;
// Atur resolusi horizontal dan vertikal ke 96 dpi.
saveOptions.ResolutionSettings = new Aspose.Imaging.ResolutionSetting(96.0, 96.0);
image.Save(dir + "sample.bmpoptions.bmp", saveOptions);
}
Contoh berikut menunjukkan bagaimana mempalet gambar BMP untuk mengurangi ukuran keluarannya.```csharp
[C#]
// Buat gambar BMP 100 x 100 px.
using (Aspose.Imaging.FileFormats.Bmp.BmpImage bmpImage = new Aspose.Imaging.FileFormats.Bmp.BmpImage(100, 100))
{
// Gradasi linier dari sudut kiri atas ke sudut kanan bawah gambar.
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);
// Isi seluruh gambar dengan kuas gradasi linier.
Aspose.Imaging.Graphics gr = new Aspose.Imaging.Graphics(bmpImage);
gr.FillRectangle(brush, bmpImage.Bounds);
// Dapatkan palet warna 8-bit terdekat yang mencakup sebanyak mungkin piksel, sehingga gambar yang dipalet
// hampir tidak dapat dibedakan secara visual dari yang tidak dipalet.
Aspose.Imaging.IColorPalette palette = Aspose.Imaging.ColorPaletteHelper.GetCloseImagePalette(bmpImage, 256);
// Palet 8-bit mengandung paling banyak 256 warna.
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("Ukuran gambar yang dipalet adalah {0} bytes.", stream.Length);
}
using (System.IO.MemoryStream stream = new System.IO.MemoryStream())
{
bmpImage.Save(stream);
System.Console.WriteLine("Ukuran gambar yang tidak dipalet adalah {0} bytes.", stream.Length);
}
}
// Keluaran terlihat seperti ini:
// Ukuran gambar yang dipalet adalah 11078 bytes.
// Ukuran gambar yang tidak dipalet adalah 40054 bytes.
GetCloseImagePalette(RasterImage, int, PaletteMiningMethod)
Mengambil palet warna dari gambar raster (mempalet gambar) jika gambar tidak memiliki satu. Palet akan dioptimalkan untuk kualitas gambar terindeks yang lebih baik atau diambil “SEBAGAIMANA ADANYA” saat PaletteMiningMethod.UseCurrentPalette digunakan.
public static IColorPalette GetCloseImagePalette(RasterImage image, int entriesCount, PaletteMiningMethod paletteMiningMethod)
Parameter
image
RasterImage
Gambar raster.
entriesCount
int
Jumlah entri yang diinginkan.
paletteMiningMethod
PaletteMiningMethod
Metode penambangan palet.
Mengembalikan
Palet warna yang dimulai dengan warna yang paling sering dari image
dan mengandung entriesCount
entri.
Contoh
Contoh berikut menunjukkan bagaimana mengompres gambar PNG, menggunakan warna terindeks dengan palet yang paling sesuai.```csharp [C#]
// Memuat gambar 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,
// Gunakan tipe warna terindeks
ColorType = Aspose.Imaging.FileFormats.Png.PngColorType.IndexedColor,
// Gunakan kompresi maksimal
CompressionLevel = 9,
// Dapatkan palet warna 8-bit terdekat yang mencakup sebanyak mungkin piksel, sehingga gambar yang dipalet
// hampir tidak dapat dibedakan secara visual dari yang tidak dipalet.
Palette = Aspose.Imaging.ColorPaletteHelper.GetCloseImagePalette((Aspose.Imaging.RasterImage)image, 256, Aspose.Imaging.PaletteMiningMethod.Histogram)
});
}
// Ukuran file keluaran harus berkurang secara signifikan
### <a id="Aspose_Imaging_ColorPaletteHelper_GetCloseImagePalette_Aspose_Imaging_RasterImage_Aspose_Imaging_Rectangle_System_Int32_"></a> GetCloseImagePalette\(RasterImage, Rectangle, int\)
Mengambil palet warna dari gambar raster (mempalet gambar) jika gambar tidak memiliki satu. Jika palet ada, itu akan digunakan alih-alih melakukan perhitungan.
```csharp
public static IColorPalette GetCloseImagePalette(RasterImage image, Rectangle destBounds, int entriesCount)
Parameter
image
RasterImage
Gambar raster.
destBounds
Rectangle
Batas gambar tujuan.
entriesCount
int
Jumlah entri yang diinginkan.
Mengembalikan
Palet warna yang dimulai dengan warna yang paling sering dari image
dan mengandung entriesCount
entri.
GetCloseImagePalette(RasterImage, Rectangle, int, bool)
Mengambil palet warna dari gambar raster (mempalet gambar) jika gambar tidak memiliki satu. Jika palet ada, itu akan digunakan alih-alih melakukan perhitungan.
public static IColorPalette GetCloseImagePalette(RasterImage image, Rectangle destBounds, int entriesCount, bool useImagePalette)
Parameter
image
RasterImage
Gambar raster.
destBounds
Rectangle
Batas gambar tujuan.
entriesCount
int
Jumlah entri yang diinginkan.
useImagePalette
bool
Jika diatur, akan menggunakan palet gambar sendiri jika tersedia.
Mengembalikan
Palet warna yang dimulai dengan warna yang paling sering dari image
dan mengandung entriesCount
entri.
GetCloseImagePalette(RasterImage, Rectangle, int, bool, Color)
Mengambil palet warna dari gambar raster (mempalet gambar) jika gambar tidak memiliki satu. Jika palet ada, itu akan digunakan alih-alih melakukan perhitungan.
public static IColorPalette GetCloseImagePalette(RasterImage image, Rectangle destBounds, int entriesCount, bool useImagePalette, Color alphaBlendInColor)
Parameter
image
RasterImage
Gambar raster.
destBounds
Rectangle
Batas gambar tujuan.
entriesCount
int
Jumlah entri yang diinginkan.
useImagePalette
bool
Jika diatur, akan menggunakan palet gambar sendiri jika tersedia.
alphaBlendInColor
Color
Warna yang harus digunakan sebagai warna latar belakang untuk penggantian alpha semi-transparan.
Mengembalikan
Palet warna yang dimulai dengan warna yang paling sering dari image
dan mengandung entriesCount
entri.
GetCloseImagePalette(RasterImage, Rectangle, int, bool, Color, bool)
Mengambil palet warna dari gambar raster (mempalet gambar) jika gambar tidak memiliki satu. Jika palet ada, itu akan digunakan alih-alih melakukan perhitungan.
public static IColorPalette GetCloseImagePalette(RasterImage image, Rectangle destBounds, int entriesCount, bool useImagePalette, Color alphaBlendInColor, bool keepTransparency)
Parameter
image
RasterImage
Gambar raster.
destBounds
Rectangle
Batas gambar tujuan.
entriesCount
int
Jumlah entri yang diinginkan.
useImagePalette
bool
Jika diatur, akan menggunakan palet gambar sendiri jika tersedia.
alphaBlendInColor
Color
Warna yang harus digunakan sebagai warna latar belakang untuk penggantian alpha semi-transparan.
keepTransparency
bool
Jika diatur, akan mempertimbangkan bit saluran alpha dari warna gambar.
Mengembalikan
Palet warna yang dimulai dengan warna yang paling sering dari image
dan mengandung entriesCount
entri.
GetCloseTransparentImagePalette(RasterImage, int)
Mengambil palet warna dari gambar raster (mempalet gambar) jika gambar tidak memiliki satu. Jika palet ada, itu akan digunakan alih-alih melakukan perhitungan.
public static IColorPalette GetCloseTransparentImagePalette(RasterImage image, int entriesCount)
Parameter
image
RasterImage
Gambar raster.
entriesCount
int
Jumlah entri yang diinginkan.
Mengembalikan
Palet warna yang dimulai dengan warna yang paling sering dari image
dan mengandung entriesCount
entri.
GetDownscalePalette(RasterImage)
Mendapatkan palet 256 warna, yang terdiri dari bit atas nilai warna gambar awal.
public static ColorPalette GetDownscalePalette(RasterImage image)
Parameter
image
RasterImage
Gambar.
Mengembalikan
Aspose.Imaging.ColorPalette.
GetUniformColorPalette(RasterImage)
Mendapatkan palet warna 256 yang seragam.
public static ColorPalette GetUniformColorPalette(RasterImage image)
Parameter
image
RasterImage
Gambar.
Mengembalikan
Aspose.Imaging.ColorPalette.
HasTransparentColors(IColorPalette)
Menentukan apakah palet yang ditentukan memiliki warna transparan.
public static bool HasTransparentColors(IColorPalette palette)
Parameter
palette
IColorPalette
Palet.
Mengembalikan
cstrue</code> jika palet yang ditentukan memiliki warna transparan; jika tidak,
csfalse.
Pengecualian
palette
adalah null.