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
إذا تم تعيينه على ```cstrue، تبدأ اللوحة بلون أبيض، وإلا تبدأ بلون أسود.
الإرجاع
لوحة ألوان رمادية 4 بت.
Create8Bit()
ينشئ لوحة ألوان 8 بت.
public static IColorPalette Create8Bit()
الإرجاع
لوحة ألوان 8 بت.
Create8BitGrayscale(bool)
ينشئ لوحة ألوان رمادية 8 بت.
public static IColorPalette Create8BitGrayscale(bool minIsWhite)
المعاملات
minIsWhite
bool
إذا تم تعيينه على ```cstrue، تبدأ اللوحة بلون أبيض، وإلا تبدأ بلون أسود.
الإرجاع
لوحة ألوان رمادية 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 نقطة في البوصة.
createOptions.ResolutionSettings = new Aspose.Imaging.ResolutionSetting(96.0, 96.0);
// إنشاء صورة BMP بحجم 100 × 100 بكسل وحفظها في ملف.
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();
}
### <a id="Aspose_Imaging_ColorPaletteHelper_CreateGrayscale_System_Int32_"></a> CreateGrayscale\(int\)
يحصل على لوحة ألوان رمادية بعدد بتات محدد. القيم المسموح بها هي 1، 2، 4، 8.
```csharp
public static IColorPalette CreateGrayscale(int bits)
المعاملات
bits
int
عدد البتات.
الإرجاع
لوحة ألوان رمادية.
الاستثناءات
bits
CreateMonochrome()
ينشئ لوحة ألوان أحادية تحتوي على لونين فقط.
public static IColorPalette CreateMonochrome()
الإرجاع
لوحة ألوان للصور الأحادية.
GetCloseImagePalette(RasterImage, int)
يحصل على لوحة ألوان من صورة نقطية (يحول الصورة إلى لوحة ملونة) في حالة عدم وجود واحدة. إذا كانت اللوحة موجودة، فسيتم استخدامها بدلاً من إجراء الحسابات.
public static IColorPalette GetCloseImagePalette(RasterImage image, int entriesCount)
المعاملات
image
RasterImage
الصورة النقطية.
entriesCount
int
عدد الإدخالات المرغوب فيه.
الإرجاع
لوحة الألوان التي تبدأ بأكثر الألوان تكرارًا من image
وتحتوي على 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 نقطة في البوصة.
saveOptions.ResolutionSettings = new Aspose.Imaging.ResolutionSetting(96.0, 96.0);
image.Save(dir + "sample.bmpoptions.bmp", saveOptions);
}
المثال التالي يوضح كيفية تحويل صورة BMP إلى لوحة ملونة لتقليل حجمها الناتج.```csharp
[C#]
// إنشاء صورة BMP بحجم 100 × 100 بكسل.
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
طريقة استخراج اللوحة.
الإرجاع
لوحة الألوان التي تبدأ بأكثر الألوان تكرارًا من image
وتحتوي على 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
عدد الإدخالات المرغوب فيه.
الإرجاع
لوحة الألوان التي تبدأ بأكثر الألوان تكرارًا من image
وتحتوي على 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
إذا تم تعيينه، فسيستخدم لوحة الصورة الخاصة به إذا كانت متاحة.
الإرجاع
لوحة الألوان التي تبدأ بأكثر الألوان تكرارًا من image
وتحتوي على 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
اللون الذي يجب استخدامه كلون خلفية لاستبدال الشفافية شبه.
الإرجاع
لوحة الألوان التي تبدأ بأكثر الألوان تكرارًا من image
وتحتوي على 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
إذا تم تعيينه، فسوف يأخذ في الاعتبار بتات قناة ألفا من ألوان الصورة.
الإرجاع
لوحة الألوان التي تبدأ بأكثر الألوان تكرارًا من image
وتحتوي على entriesCount
إدخالات.
GetCloseTransparentImagePalette(RasterImage, int)
يحصل على لوحة ألوان من صورة نقطية (يحول الصورة إلى لوحة ملونة) في حالة عدم وجود واحدة. إذا كانت اللوحة موجودة، فسيتم استخدامها بدلاً من إجراء الحسابات.
public static IColorPalette GetCloseTransparentImagePalette(RasterImage image, int entriesCount)
المعاملات
image
RasterImage
الصورة النقطية.
entriesCount
int
عدد الإدخالات المرغوب فيه.
الإرجاع
لوحة الألوان التي تبدأ بأكثر الألوان تكرارًا من image
وتحتوي على 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.