颜色ARGB学习
来源:互联网 发布:盒饭网络销售怎么做 编辑:程序博客网 时间:2024/06/08 09:39
1.图像概述
描述一幅图像需要使用图像的属性:分辨率、像素、大小、颜色、位深
- 分辨率:每英寸图像内有多少个像素点,单位为PPI(Pixels Per Inch),通常叫做:像素每英寸。例如
- 像素:当图片尺寸以像素为单位时,我们需要指定其固定的分辨率,才能将图片尺寸与现实中的实际尺寸相互转换。
分辨率为72PPI,表示每英寸像素为72 1inch = 2.54cm 1cm约等于28像素 一幅分辨率为72的1×1英寸的图像,它包含的像素数目为5184,而一幅分辨率为300的同样大小的图像,它包含的像素数目则为90000
- 像素深度:指存储每个像素所用的位数。像素深度决定彩色图像的每个像素可能有的颜色数
8位色,每个像素所能显示的彩色数为2的8次方,即256种颜色。 16位增强色,16位彩色,每个像素所能显示的彩色数为2的16次方,即65536种颜色。 24位真彩色,每个像素所能显示的彩色数为24位,即2的24次方,约1680万种颜色。达到人眼分辨的极限. 32位真彩色,即在24位真彩色图像的基础上再增加一个表示图像透明度信息的Alpha通道。其实每个像素所能显示的彩色数也为24位,不过它增加了256阶颜色的灰度,为了方便称呼,就规定它为32位色
- 真彩色:一幅彩色图像的每个像素值中,有R,G,B三个基色分量,每个基色分量直接决定显示设备的基色强度,这样产生的彩色称为真彩色。像素深度24位及以上的都是真彩。
若每个基色分量用8位,即RGB 8:8:8,那么一个像素共用24位表示,就说像素的深度为24,每个像素可以是16 777 216(2的24次方)种颜色中的一种
- Alpha通道:是一个8位的灰度通道,该通道用256级灰度来记录图像中的透明度信息。
一个像素深度为16位的图片,RGB 5∶5∶5,其最高位为Alpha,表示透明度,这时Alpha只能为1或0,0表示完全透明(图完全看不到),1表示不透明 一个像素深度为32位的图片,RGB 8:8:8,剩下的8位为Alpha,这时不仅表示透明还是不透明,还可以表示256级的半透明度,因为Alpha通道有8位可以有256种不同的数据表示可能性,0表示透明,255表示不透明
2.颜色
Color 类用于封装默认 sRGB 颜色空间中的颜色,或者用于封装由 颜色空间(ColorSpace )标识的任意颜色空间中的颜色。sRGB(standard Red GreenBlue)是通用色彩标准
颜色在Color类内部以int的形式存着:
24-31位表示alpha
16-23位表示R
8 - 15位表示G
0 - 7 位表示B
Color.java /** * 如#aabbcc * 则r=0xaa, g=0xbb,b=0xcc */ public Color(int r, int g, int b) { this(r, g, b, 255); } /** * 0xffaabbcc * 则r=0xaa, g=0xbb,b=0xcc, a = 0xff * a & 0xff 确保a有8位,再左移24位,控制是否透明 * r & 0xff 确保a有8位,再左移16位,控制红色 * g & 0xff 确保a有8位,再左移16位,控制绿色 * b & 0xff 确保a有8位,再左移16位,控制蓝色 */ public Color(int r, int g, int b, int a) { value = ((a & 0xFF) << 24) | ((r & 0xFF) << 16) | ((g & 0xFF) << 8) | ((b & 0xFF) << 0); testColorValueRange(r,g,b,a); }
3.实例
十六进制表示颜色1.白色:#FFFFFF - R:FF; G:FF; B:FF2.红色:#FF0000 - R:FF; G:00; B:003.黑色:#000000 - R:00; G:00; B:00
* corlor十六进制:ARGB<br> * A : 24-31位, alpha值定义了颜色的透明度,可用一个在 0.0-1.0或 0-255范围内的浮点值表示它,alpha为0.0或0表示完全透明, 1.0或 255表示完全不透明<br> * R : 16-23位,红色通道,256级亮度,同数字0.1.2...255表示<br> * G : 8-15位,绿色通道,256级亮度,同数字0.1.2...255表示<br> * B : 0- 7位,蓝色通道,256级亮度,同数字0.1.2...255表示<br> * <p> * 透明度不是用RGB值来控制的,而是依赖alpha值来控制<br> * 如果是透明,只要设置alpha为0,无论rgb是什么数值,都显示为透明(即完全看不见)<br> * 如果是不透明,需设置alpha为1或255,都显示为不透明<br> * <p> * 6位: FFFFFF - 就是RGB<br> * 0xFFFFFF - 白色, 0x000000 - 黑色, 0xFF0000 - 红色<br> * 8位:00FFFFFF - 头两位00就表示透明度,00表示完全透明,FF表示完全不透明<br> * 0x00****** - 表示透明色, 0xFF****** - 表示******本身的颜色
阅读全文
0 0
- 颜色ARGB学习
- 【Android】ARGB颜色值
- ARGB,RGB颜色值表示
- Android 透明颜色值ARGB
- ARGB
- ARGB
- ARGB
- ARGB颜色合成与提取公式
- ARGB颜色合成与提取公式
- ARGB 颜色取值与透明度搭配
- 十六进制颜色转换ARGB/RGB-整理
- 十六进制颜色值和ARGB颜色值的转换
- 十六进制颜色值和ARGB颜色值的转换
- 十六进制颜色值和ARGB颜色值的转换
- C语言struct和union构建ARGB颜色通道
- duilib 颜色 是 ARGB ,不是RGB,前两位是透明度
- Android中argb颜色值与int互转
- 把16进制颜色值转换为RGB或ARGB颜色
- C语言中对二叉树的操作(递归算法)
- 我的Maven开发环境
- 负极大值搜索引擎
- 基于ruby语言selenium3安装与环境搭建---菜鸟分享坑爹经验
- hht变换
- 颜色ARGB学习
- js原生学习-初级-练习05
- epoll介绍
- Mac pro使用的那些坑(三)git打开指定文件的窗口
- GIT介绍及常用命令
- AS更新Gradle方法
- 即将逝去的Delphi前景在何方
- 电影推荐实例--基于协同过滤和DL特征提取的比较
- git基础学习