仿photoshop拾色器调整颜色
主要功能:对图片调整色调和混合模式。调色界面仿photoshop。
关于加载图片和控件在这里不进行说明了,对使用过FLEX和AS3的人来说都是基础了。
这里只说明下如何调整色调以及利用这种友好的界面方式进行调色:选择颜色以及明暗度来进行调色
混合模式
直接利用flashAPI的显示对象的blendMode属性即可调整混合模式,其实就是预先制定好的颜色叠加的一种计算公式,例如变为加法混合模式:
sp.blendMode = BlendMode.ADD;关于混合模式的相关内容在这里只是简单一提,具体的可以自行查询相关资料,这个是比较多的。
sp.transform.colorTransform = new ColorTransform(1,1,1,1,transR,transG,transB,0);也就是说上图中我们必须通过“拾色器”来确定transR,transG,transB的值,在这里我就直接截了PS的拾色器界面的图并稍加PS了一下得到的这个图片来当做界面使用,所以这里的颜色图片也仅仅是一张图片,我们取色的时候可以通过取得这个图片的某个像素点的颜色值(BitmapData的方法)来获得颜色RGB,到此为止实际上我们已经可以调色了,但取值范围RGB都是0~255,你无法调暗色,所以有一个明暗度的调整,来将颜色转为-255~255。我们这里的明暗度由于高度刚好是256像素,为了简化计算就取值为0-255,这样根据当前指向的高度就直接获得了当前明暗度的数值。那么如何通过已知的明暗度(0-255,0表示最亮,255表示最暗)以及当前选中的R(0-255)、G(0-255)、B(0-255)来计算获得一个正确的最终transR(-255~255)、transG(-255~255)、transB(-255~255)呢?
transR = R - 明暗度*2; transG = G - 明暗度*2; transB = B - 明暗度*2;
transR = 255 - 127*2; transG = 0 - 127*2; transB = 0 - 127*2;最终得到的结果就是(1,-254,-254),实际效果为暗红色。