Class ColorPaletteHelper

Class ColorPaletteHelper

Namespace: Aspose.Imaging
Assembly: Aspose.Imaging.dll (25.2.0)

Kelas pembantu untuk manipulasi palet warna.

public static class ColorPaletteHelper

Pewarisan

objectColorPaletteHelper

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

IColorPalette

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

IColorPalette

Palet grayscale 4 bit.

Create8Bit()

Membuat palet warna 8 bit.

public static IColorPalette Create8Bit()

Mengembalikan

IColorPalette

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

IColorPalette

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

IColorPalette

Palet grayscale.

Pengecualian

ArgumentOutOfRangeException

bits

CreateMonochrome()

Membuat palet warna monokrom yang hanya mengandung 2 warna.

public static IColorPalette CreateMonochrome()

Mengembalikan

IColorPalette

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

IColorPalette

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

IColorPalette

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

IColorPalette

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

IColorPalette

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

IColorPalette

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

IColorPalette

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

IColorPalette

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

ColorPalette

Aspose.Imaging.ColorPalette.

GetUniformColorPalette(RasterImage)

Mendapatkan palet warna 256 yang seragam.

public static ColorPalette GetUniformColorPalette(RasterImage image)

Parameter

image RasterImage

Gambar.

Mengembalikan

ColorPalette

Aspose.Imaging.ColorPalette.

HasTransparentColors(IColorPalette)

Menentukan apakah palet yang ditentukan memiliki warna transparan.

public static bool HasTransparentColors(IColorPalette palette)

Parameter

palette IColorPalette

Palet.

Mengembalikan

bool

cstrue</code> jika palet yang ditentukan memiliki warna transparan; jika tidak, csfalse.

Pengecualian

ArgumentNullException

palette adalah null.

 Indonesia