图片处理流程梳理

做图片处理必须要懂的基础知识

我们所见的图片其实是填满颜色的不规则图像(通常情况下是矩形//     如果不是矩形也可以当成矩形补足矩形即可)

所以要处理图片只需要打印出矩形然后拿到对应点的颜色二进制数组即可
                                                图片矩阵  ----->比如是一个  16*16      的一个矩阵                                
                                                    以图片w  为x轴
                                                    以图片h  为y轴    
                                                
                                                通过循环去提取图片矩阵每个颜色点    
                                                打印一个矩阵需要两个循环
                                                    
                                                x轴与y轴的交点为一个颜色点
                                                根据当前颜色点计算对应的ARGB(这个是Java层的排列)   
                                                C层机制刚好相反排列是ABGR(所以C层计算颜色分量值时需要C层的机制去取值)
                                                
                                                eg:(一个颜色点的二进制值表示)
                                                ***延伸的知识点  置于为什么会用4个二进制去表达一个颜色点 
                                                因为图片有对应的格式  ARGB_8888/RGB_656、ARGB_4444等等 
                                                其中ARGB就是4个字节的(然后一个字节对应一个二进制)
                                                其他的自行查阅对应的字节数    
                                                    为了方便理解以下三种表达方式是同一种颜色
                                                以"|" 间隔表示方式
                                                    1111    1111 |     0100 1001 |    0001 0101 | 1101 0010                        
                                                连续表示方式
                                                    11111111 01001001 00010101 11010010
                                                         A              R               G              B     
                                                        
                                                各个偏量的计算公式(具体的推导过程是根据颜色的分量排列移动的位数
                                                "与&"上颜色的最大值(0xFF 也就是 255)计算得出对应位置的值)
                                                ***注意这里是C层的推导  java层的推导需要按java层的排列来推导这里不展示
                                                color 表示当前颜色点的数组    
                                                A(alpha 透明)   (color>>24)&0xFF 
                                                B(blue蓝色)     (color>>16)&0xFF                                
                                                G(green 绿色)    (color>>8)&0XFF                                
                                                R(red 红色)         color & 0xFF    

                                              android NDK 支持Bitmap对象的库
                                                            jnigraphics #JNI层,添加bitmap支持
                                              api支持
                                                            AndroidBitmapInfo 
                                                            通过 AndroidBitmap_getInfo() 将AndroidBitmapInfo指针地址赋值

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值