颜色的相关
0x|ff|ff00ff
- 此为int类型的数据,0x便是颜色整数的标记,ff表示透明度,0x后面必须是8位的颜色表示
任何一种颜色的范围都是0到255(00到ff)
-
00完全透明,ff完全不透明
-
表达式顺序是“aabbggrr”,
其中“aa=alpha”(00到ff);“bb=blue”(00到ff);“gg=green”(00到ff);“rr=red”(00到ff)
RGB888:(24位3字节)256,256,256,每个色彩值都是256(因为是从0开始,所以是0到255),
每个颜色占8位
RGB565:(16位2字节)5位,6位,5位,每个颜色占2的5次方,2的6次方,2的5次方
由于人眼对绿色分辨比较明显,所以G比其他多一个位是6
RGB8888:(32位4字节)所有四位的是有透明通道的
每个颜色8位:2的8次方=256,
每个颜色5位:2的5次方=32,
每个颜色6位:2的5次方=64,
0到255是代表量化的色彩的显示范围
如果显示位数的高地的区别是范围是相同的,区别在于细腻与粗糙的区别,
2的8次方是256 与 2的5次方是32
获取ImageView中某点的像素值
int pixel = mBitmap.getPixel(像素值x,像素值y);
//获取RGB颜色每个RGB的值
int redValue = Color.red(pixel);
int greenValue = Color.green(pixel);
int blueValue = Color.blue(pixel);
//将int类型转换成String类型
String hr = Integer.toHexString(redValue);
String hg = Integer.toHexString(greenValue);
String hb = Integer.toHexString(blueValue);
//可以直接拼接,就是16进制的颜色值
mSelectColor = "#" + hr + hg + hb;
//16进制颜色类型转换成int类型
Color.parseColor(mSelectColor)
BitmapFactory.Options options = new BitmapFactory.Options();
mBitmap = BitmapFactory.decodeResource(getResources(), R.mipmap.set_title, options);
options使用注意点:
- 第一点
如果图片放入xxxhdpi时,inDensity的值就是640
1. ldpi 120
2. mdpi 160
3. hdpi 240
4. xhdpi 320
5. xxhdpi 480
6. xxxhdpi 640
上面的示例中是通过R.mipmap.set_title的方式获取,所以加载出来的bitmap即使没有设置缩放比例系数inDensity的值,得到的bitmap宽高也不是原始的大小。
由于是在xhdpi,xxhdpi,xxxhdpi中获取,所以获取到的bitmap时是自动按照默认的比例压缩
- 第二点
options.inJustDecodeBounds = true;
options.outHeight
options.outWidth
如果图片是放入asset文件夹中的
通过此方法获取到的图片的宽高为原始的宽高(在没有设置缩放比例的前提下)
所以自定义view中加载图片时,需要注意的点是是否是原始图片bitmap还是有压缩过的bitmap
图片大小的计算方法就是:图片尺寸*
其他一些小总结:
关键词:色彩管理,颜色空间,sRGB,CMYK,LAB,YUV
网友评论