flash网络社区游戏开发
专注于flash游戏及应用开发。技术博客
-
RGB值转HSL值 - [AS3.0]
2008-11-28
版权声明:转载时请以超链接形式标明文章原始出处和作者信息及本声明
http://asfox.blogbus.com/logs/31921515.html

在网上找了那么多公式 就这个准!
//如:r=104 g=10 b=200
function rgbToHsl(r:Number, g:Number, b:Number):Object {
var h:Number,s:Number,l:Number;
trace("r: ",r);
trace("g: ",g);
trace("b: ",b);
r/=255;
g/=255;
b/=255;
var max : Number=Math.max(Math.max(r, g), b);
var min : Number=Math.min(Math.min(r, g), b);
l=(max+min)*0.5;
if(max==min){
h=0;
s=0;
}else{
var d:Number=max-min;
if(l<0.5){
s=d/(max+min);
}else {
s=d/(2-(max+min));
}
if(max==r){
h=(g-b)/d;
}else if(max==g){
h=2+(b-r)/d;
}else if(max==b){
h=4+(r-g)/d;
}
h*=0.16666666666666666666666666666667;
if(h<0){
h+=1;
}
}
trace("h: ",Math.round(h*240));
trace("s: ",Math.round(s*240));
trace("l: ",Math.round(l*240));
var obj:Object=new Object();
obj.h=Math.round(h*240);
obj.s=Math.round(s*240);
obj.l=Math.round(l*240);
return obj;
}随机文章:
移除事件侦听 2008-12-18as3.0 效率优化文章 2008-11-30error #2012: 无法实例化 SharedObject 类 2008-06-15checkbox的selected属性不好使 2008-06-13用AS3.0写的 一个简单火焰效果及原理 2008-02-04
收藏到:Del.icio.us








