কিভাবে Asp.net মধ্যে এইচএসএল ব্যবহার

এইচএসএল রংয়ের সাথে কাজ করার জন্য কোন টুল ব্যবহার করা হয়?

0
ro fr hi

3 উত্তর

রং স্ট্রাক্ট তিনটি পদ্ধতি প্রদান করে: GetHue, GetSaturation এবং GetBrightness।

বব পাওয়েল একটি এটির একটি আকর্ষণীয় অংশ লিখেছে বেশ কয়েক বছর আগে.

বিজেরর ঐতিহাসিক নোট - "এইচএসএল" (এবং সম্পর্কিত "এইচএসভি") হল জেরক্সের পালো আল্টো রিসার্চ সেন্টার (প্যারিস) থেকে 70 এর দশকের শুরুতে অনেকগুলি বিষয়ের এক, আলভি রে স্মিথ

0
যোগ
ধন্যবাদ ডেরেক, আমি আর্কাইভ.অর্গ এর নিবন্ধটির কপিটির সাথে এটির আপডেট করেছি।
যোগ লেখক Leon Bambrick, উৎস
বব পাওয়েল এর কোড সত্যিই সহজ হয়। আমি যেহেতু এটি আমার নিজের স্টাফ ব্যবহার করেছি এবং এটি System.Windows.Media.Color class এ এক্সটেনশন পদ্ধতি সরবরাহ করার জন্য রূপান্তরিত করেছি।
যোগ লেখক Mal Ross, উৎস
bobpowell.net/RGBHSB.htm এর লিঙ্কটি একটি মৃত লিঙ্ক
যোগ লেখক Derek Tomes, উৎস

গোপনগইকের উত্তর ছাড়াও, এইচএসএল মানগুলির (অথবা বিপরীতভাবে) একটি রঙ পেতে, আপনি এই নেটিভ ফাংশন কল ব্যবহার করতে পারেন (ভিসুয়াল বেসিকের নমুনা কোড):

Public Declare Sub ColorRGBToHLS Lib "shlwapi.dll" _
                                    (ByVal clrRGB As UInteger, _
                                     ByRef pwHue As Short, _
                                     ByRef pwLuminance As Short, _
                                     ByRef pwSaturation As Short)
Public Declare Function ColorHLSToRGB Lib "shlwapi.dll" _
                                        (ByVal wHue As Short, _
                                         ByVal wLuminance As Short, _
                                         ByVal wSaturation As Short) As UInteger

( ColorTranslator.ToWin32 এবং ColorTranslator.FromWin32 ব্যবহার করে রঙ বিন্যাস / ফলাফল পাওয়ার পর)

0
যোগ

এই ColorRGB শ্রেণীর সিস্টেমগুলি এবং সিস্টেম থেকে অন্তর্নিহিত রূপান্তরগুলি সহ এইচএসএল পেতে এবং সেট করার উপায়গুলি প্রদান করে। ড্রেজিং। রঙ। এটি GeekMonkey.com থেকে একটি চমৎকার উদাহরণের উপর ভিত্তি করে তৈরি।

using System;
using System.Drawing;

namespace RMA.Drawing
{
  public class ColorRGB
  {
    public byte R;
    public byte G;
    public byte B;
    public byte A;

    public ColorRGB()
    {
      R = 255;
      G = 255;
      B = 255;
      A = 255;
    }

    public ColorRGB(Color value)
    {
      this.R = value.R;
      this.G = value.G;
      this.B = value.B;
      this.A = value.A;
    }

    public static implicit operator Color(ColorRGB rgb)
    {
      Color c = Color.FromArgb(rgb.A, rgb.R, rgb.G, rgb.B);
      return c;
    }

    public static explicit operator ColorRGB(Color c)
    {
      return new ColorRGB(c);
    }

    // Given H,S,L in range of 0-1
    // Returns a Color (RGB struct) in range of 0-255
    public static ColorRGB FromHSL(double H, double S, double L)
    {
      return FromHSLA(H, S, L, 1.0);
    }

    // Given H,S,L,A in range of 0-1
    // Returns a Color (RGB struct) in range of 0-255
    public static ColorRGB FromHSLA(double H, double S, double L, double A)
    {
      double v;
      double r, g, b;

      if (A > 1.0)
        A = 1.0;

      r = L;   // default to gray
      g = L;
      b = L;
      v = (L <= 0.5) ? (L * (1.0 + S)) : (L + S - L * S);

      if (v > 0)
      {
        double m;
        double sv;
        int sextant;
        double fract, vsf, mid1, mid2;

        m = L + L - v;
        sv = (v - m) / v;
        H *= 6.0;
        sextant = (int)H;
        fract = H - sextant;
        vsf = v * sv * fract;
        mid1 = m + vsf;
        mid2 = v - vsf;

        switch (sextant)
        {
          case 0:
            r = v;
            g = mid1;
            b = m;
            break;

          case 1:
            r = mid2;
            g = v;
            b = m;
            break;

          case 2:
            r = m;
            g = v;
            b = mid1;
            break;

          case 3:
            r = m;
            g = mid2;
            b = v;
            break;

          case 4:
            r = mid1;
            g = m;
            b = v;
            break;

          case 5:
            r = v;
            g = m;
            b = mid2;
            break;
        }
      }

      ColorRGB rgb = new ColorRGB();
      rgb.R = Convert.ToByte(r * 255.0f);
      rgb.G = Convert.ToByte(g * 255.0f);
      rgb.B = Convert.ToByte(b * 255.0f);
      rgb.A = Convert.ToByte(A * 255.0f);
      return rgb;
    }

    // Hue in range from 0.0 to 1.0
    public float H
    {
      get
      {
        // Use System.Drawing.Color.GetHue, but divide by 360.0F 
        // because System.Drawing.Color returns hue in degrees (0 - 360)
        // rather than a number between 0 and 1.
        return ((Color)this).GetHue() / 360.0F;
      }
    }

    // Saturation in range 0.0 - 1.0
    public float S
    {
      get
      {
        return ((Color)this).GetSaturation();
      }
    }

    // Lightness in range 0.0 - 1.0
    public float L
    {
      get
      {
        return ((Color)this).GetBrightness();
      }
    }
  }
}
0
যোগ
না, আপনি আলফা clamping স্থির। সমস্যা হচ্ছে হিউ 1.0 হতে পারে, যা 6 এর একটি সিক্সটান্ট মান দেয়, যা মামলা বিবৃতিতে পরিচালিত হয় না।
যোগ লেখক Glenn Slayden, উৎস
আপনার fromHSLA h = 1.0 এর ক্ষেত্রে হ্যান্ডেল করে না।
যোগ লেখক Don Reba, উৎস
আমি কোড আপডেট; সুইচ বিবৃতিটি এখন h = 1.0 পরিচালনা করে
যোগ লেখক Paul d'Aoust, উৎস