ایجاد سوال
dark_mode
0 دوستدار 0 امتیاز منفی
17 visibility
موضوع: آفیس توسط:

باسل به فرمولی نیاز دارد که بتواند مقادیر رنگ HSL (مقادیر رنگ، اشباع و روشنایی) را به مقادیر رنگی RGB (مقادیر قرمز، آبی و سبز) تبدیل کند. او نمی داند آیا کسی می تواند به او فرمول کاربرگ را نشان دهد که این کار را انجام دهد یا راهی برای انجام آن در یک ماکرو.

تبدیل از مقادیر HSL به RGB یک کار پیش پا افتاده نیست. برای کسانی که علاقه مند به ریاضیات پشت آن هستند، می توانند مقاله ویکی پدیا را در این زمینه بررسی کنند.

اگر به ندرت نیاز به انجام تبدیل دارید، ساده ترین راه این است که مراحل زیر را دنبال کنید:

image

شکل 1. تب Custom از کادر محاوره ای Colors.

  1. تب Home نوار را نمایش دهید.
  2. روی فلش رو به پایین در سمت راست ابزار Fill Color در گروه Font کلیک کنید. اکسل یک پالت کوچک از رنگ ها و برخی گزینه های دیگر را نمایش می دهد.
  3. رنگ های بیشتر را انتخاب کنید اکسل کادر محاوره ای Colors را نمایش می دهد.
  4. مطمئن شوید که تب Custom نمایش داده شده است.
  5. با استفاده از لیست کشویی Color Model، HSL را انتخاب کنید. (شکل 1 را ببینید.)
  6. در پایین کادر محاوره ای می توانید مقادیر فردی Hue، Sat و Lum را مشاهده کنید. این مقادیر را به هر چیزی که می خواهید تغییر دهید.
  7. با استفاده از لیست کشویی Color Model، RGB را انتخاب کنید. مقادیر نشان داده شده در پایین کادر محاوره ای مقادیر HSL (وارد شده در مرحله 6) به RGB هستند.
  8. پس از اتمام روی Cancel کلیک کنید.

این رویکرد فرض می کند که هر یک از مقادیر HSL شما می تواند در محدوده 0 تا 255 بیان شود. با این حال، اگر مقادیر HSL شما یک زاویه (برای رنگ) یا یک درصد (برای اشباع و درخشندگی) باشد، باید تبدیل کنید. آنها را به صورت دستی قبل از وارد کردن آنها در مرحله 6. می توانید یک مقدار زاویه را با ضرب زاویه در 255 و سپس تقسیم بر 360 تبدیل کنید. درصدها را می توان با ضرب آنها در 2.55 تبدیل کرد.

اگر نیاز به دریافت مقادیر بیشتر دارید، ایجاد تابع تعریف شده توسط کاربر برای انجام تبدیل کمک خواهد کرد. مثال زیر سه پارامتر (Hue، Saturation و Luminance) را می پذیرد و رشته ای حاوی مقادیر RGB اعشاری که با کاما از هم جدا شده اند را برمی گرداند.

Function HSLtoRGB(Hue As Integer, Saturation As Integer, _
  Luminance As Integer) As String
    Dim r As Integer
    Dim g As Integer
    Dim b As Integer
    Dim C As Double
    Dim X As Double
    Dim m As Double
    Dim rfrac As Double
    Dim gfrac As Double
    Dim bfrac As Double
    Dim hangle As Double
    Dim hfrac As Double
    Dim sfrac As Double
    Dim lfrac As Double

    If (Saturation = 0) Then
        r = 255
        g = 255
        b = 255
    Else
        lfrac = Luminance / 255
        hangle = Hue / 255 * 360
        sfrac = Saturation / 255
        C = (1 - Abs(2 * lfrac - 1)) * sfrac
        hfrac = hangle / 60
        hfrac = hfrac - Int(hfrac / 2) * 2 fmod calc
        X = (1 - Abs(hfrac - 1)) * C
        m = lfrac - C / 2
        Select Case hangle
            Case Is < 60
                rfrac = C
                gfrac = X
                bfrac = 0
            Case Is 


                
اگر خواستی، با این لینک از ما حمایت کن

پاسخ شما

looks_5نام شما برای نمایش - اختیاری
حریم شخصی : آدرس ایمیل شما محفوظ میماند و برای استفاده های تجاری و تبلیغاتی به کار نمی رود
عدد چهار رقمی در تصویر را وارد کنید

برای جلوگیری از این تایید در آینده, لطفا وارد شده یا ثبت نام کنید.
اگر حساب گوگل دارید به راحتی وارید شوید

0 پاسخ وجود دارد

سوال مشابهی یافت نشد

برای دسترسی راحت به مطالب سایت ، اپلیکیشن سایت را نصب کنید
و لطفا بعد از نصب امتیاز دهید. با تشکر از حمایت شما

23.2k سوال

8.5k پاسخ

608 دیدگاه

9.7k کاربر

95 نفر آنلاین
0 عضو و 95 مهمان در سایت حاضرند
بازدید امروز: 11968
بازدید دیروز: 23384
بازدید کل: 15262867
...