RGB色的图片有255*255*255=16581375种颜色,如果再加上透明度ARGB就要再乘以255,这么多的颜色在图形处理中有时不需要使用那么多的颜色,只需要转化成8色、16色或者256色就可以了,而透明度则作特殊处理,比如在阀值80以下的定为透明,80以上的定为不透明,透明的则用0号索引色,不透明的就用大于0的索引色,这样就在一定程度上转化了图片的颜色同时又保留了一定的透明度,在有些场景中是可以用的。下面是转化的代码.
#region To8Color
/// <summary>
/// 8色化
/// </summary>
/// <returns></returns>
public int To8Color()
{
//8色化处理,取RGB的高1位相与。
var r1 = (R >> 5) & 0x4;
var g1 = (G >> 6) & 0x2;
var b1 = (B >> 7);
var c = (r1 | g1 | b1) + 1;//0表示透明,1-8表示颜色索引。
return c;
}
#endregion
#region To8Color
/// <summary>
/// 16色化
/// </summary>
/// <returns></returns>
public int To16Color()
{