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 dpi.
createOptions.ResolutionSettings = new Aspose.Imaging.ResolutionSetting(96.0, 96.0);
// ایجاد یک تصویر BMP با ابعاد 100 x 100 px و ذخیره آن در یک فایل.
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()
یک پالت رنگ مونوکروم که فقط شامل 2 رنگ است، ایجاد میکند.
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;
// ایجاد گزینههای Bmp
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 dpi.
saveOptions.ResolutionSettings = new Aspose.Imaging.ResolutionSetting(96.0, 96.0);
image.Save(dir + "sample.bmpoptions.bmp", saveOptions);
}
مثال زیر نشان میدهد که چگونه یک تصویر BMP را پالت دار کنیم تا اندازه خروجی آن کاهش یابد.```csharp
[C#]
// ایجاد یک تصویر BMP 100 x 100 px.
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
نال است.