在.net(C#)中随机生成较深的颜色
2014-07-19 20:20
190 查看
原文地址:/article/2814418.html
有时为了满足现实的需要,我们想生成随机的较深的颜色,比如:彩色二维码,为了让手机、二维码识别设备可以正确识别,必须使用较深的颜色。
如下图所示:
那么,如何实现呢?
以下为源码:
//C# Code:
using System;
using System.Drawing;
namespace Lgms.Net.QRCode.Codec.Util
{
public class ColorUtil
{
public static System.Drawing.Color GetRandomColor()
{
Random randomNum_1 = new Random(Guid.NewGuid().GetHashCode());
System.Threading.Thread.Sleep(randomNum_1.Next(1));
int int_Red = randomNum_1.Next(255);
Random randomNum_2 = new Random((int)DateTime.Now.Ticks);
int int_Green = randomNum_2.Next(255);
Random randomNum_3 = new Random(Guid.NewGuid().GetHashCode());
int int_Blue = randomNum_3.Next(255);
int_Blue = (int_Red + int_Green > 380) ? int_Red + int_Green - 380 : int_Blue;
int_Blue = (int_Blue > 255) ? 255 : int_Blue;
return GetDarkerColor(System.Drawing.Color.FromArgb(int_Red, int_Green, int_Blue));
}
//获取加深颜色
public static Color GetDarkerColor(Color color)
{
const int max = 255;
int increase = new Random(Guid.NewGuid().GetHashCode()).Next(30, 255); //还可以根据需要调整此处的值
int r = Math.Abs(Math.Min(color.R - increase, max));
int g = Math.Abs(Math.Min(color.G - increase, max));
int b = Math.Abs(Math.Min(color.B - increase, max));
return Color.FromArgb(r, g, b);
}
}
希望对有需要的朋友有用。
有时为了满足现实的需要,我们想生成随机的较深的颜色,比如:彩色二维码,为了让手机、二维码识别设备可以正确识别,必须使用较深的颜色。
如下图所示:
那么,如何实现呢?
以下为源码:
//C# Code:
using System;
using System.Drawing;
namespace Lgms.Net.QRCode.Codec.Util
{
public class ColorUtil
{
public static System.Drawing.Color GetRandomColor()
{
Random randomNum_1 = new Random(Guid.NewGuid().GetHashCode());
System.Threading.Thread.Sleep(randomNum_1.Next(1));
int int_Red = randomNum_1.Next(255);
Random randomNum_2 = new Random((int)DateTime.Now.Ticks);
int int_Green = randomNum_2.Next(255);
Random randomNum_3 = new Random(Guid.NewGuid().GetHashCode());
int int_Blue = randomNum_3.Next(255);
int_Blue = (int_Red + int_Green > 380) ? int_Red + int_Green - 380 : int_Blue;
int_Blue = (int_Blue > 255) ? 255 : int_Blue;
return GetDarkerColor(System.Drawing.Color.FromArgb(int_Red, int_Green, int_Blue));
}
//获取加深颜色
public static Color GetDarkerColor(Color color)
{
const int max = 255;
int increase = new Random(Guid.NewGuid().GetHashCode()).Next(30, 255); //还可以根据需要调整此处的值
int r = Math.Abs(Math.Min(color.R - increase, max));
int g = Math.Abs(Math.Min(color.G - increase, max));
int b = Math.Abs(Math.Min(color.B - increase, max));
return Color.FromArgb(r, g, b);
}
}
希望对有需要的朋友有用。
相关文章推荐
- 在.net(C#)中随机生成较深的颜色
- C#基于XNA生成随机颜色的方法
- C#生成随机颜色
- C#生成随机颜色,返回16进制字符串
- 用C#生成随机中文汉字验证码的基本原理
- C#随机生成数字、字母
- 用C#生成随机中文汉字验证码的基本原理
- 在.NET下生成随机(不重复)文件名
- 用C#生成随机中文汉字验证码的基本原理
- 用C#生成随机中文汉字验证码的基本原理(转)
- 生成随机验证码--C#
- 用C#生成随机中文汉字验证码的基本原理
- 用C#生成随机中文汉字验证码的基本原理
- C#生成随机中文汉字验证码
- 用C#生成随机中文汉字验证码的基本原理
- 用C#生成随机中文汉字验证码的基本原理
- 用C#生成随机中文汉字验证码的基本原理
- 用C#生成随机中文汉字验证码的基本原理
- 用C#生成随机中文汉字验证码的基本原理
- 用C#生成随机中文汉字验证码