📄 controlpaint.cs
字号:
using System;
using System.Text;
using System.Windows.Forms;
using System.ComponentModel;
using System.Drawing.Drawing2D;
using System.Drawing.Imaging;
using System.Drawing.Text;
using System.Collections;
using System.Drawing;
namespace gowk.controls
{
/// <summary>
/// ControlPaint 的摘要说明。
/// </summary>
public class ControlPaint
{
public static void SetImageAlpha(Image img,int alpha)
{
Bitmap bm=new Bitmap(img);
}
public static Bitmap GetImage(Image img,int hue)
{
Bitmap bm=new Bitmap(img);
for(int i=0;i<bm.Width;i++)
{
for(int j=0;j<bm.Height;j++)
{
Color c=bm.GetPixel(i,j);
bm.SetPixel(i,j,GetNewColor(c,hue));
}
}
return bm;
}
public static Color GetNewColor(Color c,int hue)
{
if(hue>360)
hue=360;
else if(hue<0)
hue=0;
float r,g,b;
ConvertHSBToRGB(hue,c.GetSaturation(),c.GetBrightness(),out r,out g,out b);
r=r*255;
g=g*255;b=b*255;
return Color.FromArgb(c.A,(int)r,(int)g,(int)b);
}
public static void ConvertHSBToRGB(float h, float s, float v, out float r, out float g, out float b)
{
if (s == 0f)
{
// if s = 0 then h is undefined
r = v;
g = v;
b = v;
}
else
{
float hue = (float)h;
if (h == 360.0f)
{
hue = 0.0f;
}
hue /= 60.0f;
int i = (int)Math.Floor((double)hue);
float f = hue - i;
float p = v * (1.0f - s);
float q = v * (1.0f - (s * f));
float t = v * (1.0f - (s * (1 - f)));
switch(i)
{
case 0: r = v; g = t; b = p; break;
case 1: r = q; g = v; b = p; break;
case 2: r = p; g = v; b = t; break;
case 3: r = p; g = q; b = v; break;
case 4: r = t; g = p; b = v; break;
case 5: r = v; g = p; b = q; break;
default: r = 0.0f; g = 0.0f; b = 0.0f; break; /*Trace.Assert(false);*/ // hue out of range
}
}
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -