首页 > 其他分享 >Android Imageview 图片置灰,图片特殊节日去真彩色

Android Imageview 图片置灰,图片特殊节日去真彩色

时间:2023-04-11 10:31:39浏览次数:39  
标签:ColorMatrix float 真彩色 ColorMatrixColorFilter invSat Imageview 图片 sat


ImageView

ImageView是Android中的一个图片显示控件,用来加载网络或者本地图片资源。好看的图片可以让应用更被用户接收,如果图片作为应用的装饰,已成为主流,但不是所有的图片显示都符合要求,比如一些特殊时间,特别靓丽的色彩不符合当下假日要求,这个时候如果能让图片变成灰色,这样用助于达到效果。

由于图片基本都是人工在处理,一张图可以直接换资源,如果是千人千面,几十万或者上百张资源根本来不及处理。这时,如果我们能通过色彩过滤,对一些色彩进行置灰,这样在显示上依旧可以达到效果。

ImageView提供了setColorFilter(ColorMatrixColorFilter)方法,通过该方法,对颜色进行过滤。

public ColorMatrixColorFilter(@NonNull ColorMatrix matrix)又是一个Bean类,真正处理色彩的是ColorMatrix 

ColorMatrix :

4x5矩阵,用于变换位图的颜色和alpha分量。矩阵可以作为单个数组传递,并按如下方式处理

setSaturation(float sat)方法就是对颜色进行处理,针对的是R/G/B三原色进行混淆

sat:取值是0到1,值越大,色彩饱和越量,为1,是图片的原色,越小,越灰

Android中的color基本有三原色,RGB组成,

000000是黑色,

FFFFFF:白色

源码如下:

public void setSaturation(float sat) {
    reset();
    float[] m = mArray;

    final float invSat = 1 - sat;
    final float R = 0.213f * invSat;
    final float G = 0.715f * invSat;
    final float B = 0.072f * invSat;

    m[0] = R + sat; m[1] = G;       m[2] = B;
    m[5] = R;       m[6] = G + sat; m[7] = B;
    m[10] = R;      m[11] = G;      m[12] = B + sat;
}

测试代码:

ColorMatrix colorMatrix = new ColorMatrix();
           //0-1
          colorMatrix.setSaturation(progress * 1.0f / 100.0f);
          ColorMatrixColorFilter colorFilter = new     
           ColorMatrixColorFilter(colorMatrix);
           imageView.setColorFilter(colorFilter);

Android Imageview 图片置灰,图片特殊节日去真彩色_节日

Android Imageview 图片置灰,图片特殊节日去真彩色_Android_02

标签:ColorMatrix,float,真彩色,ColorMatrixColorFilter,invSat,Imageview,图片,sat
From: https://blog.51cto.com/u_16065093/6182727

相关文章

  • 图片修复和无损放大工具
    【图片修复和无损放大工具】waifu2x:网页链接ARC(人像修复):网页链接PixFix:网页链接Upscale.media:网页链接​​​......
  • 在图片上编辑文字的软件分享!这个几个很不错!​
    在图片上编辑文字的软件!图片上编辑文字指的是在一张图片上添加或编辑文字的过程。这个过程可以使用各种软件和工具来完成,用户可以选择不同的字体、字号、颜色、对齐方式等样式设置,并将文字添加到图片上的指定位置。这个过程通常用于创建海报、广告、卡片、漫画等需要文字和图片结合......
  • python抓取星巴克图片案例
    importrequestsfrombs4importBeautifulSoupr=requests.get('https://www.starbucks.com.cn')soup=BeautifulSoup(r.text,'lxml')imgs=soup.select('.padded-2>aimg[src]')num=0forimginimgs:num+=1#......
  • js:四个方向无跳动/无缝滚动,支持图片/html串,支持延时缓慢翻页,ff/ie测试 -- 2012-1-
    ----------代码----------<!DOCTYPEhtml><html><head><metahttp-equiv="Content-Type"content="text/html;charset=gb2312"/><title></title></head><body><divid="gg"><......
  • ci添加任意图片验证码方式
    验证码类需要放到用户类库中只是注意的一点就是记得要清空输出缓存,否则就会造成图片不能显示D:\ProgramFiles\Apache\htdocs\edm\application\libraries\captcha.php------------<?phpif(!defined('BASEPATH'))exit('Nodirectscriptaccessallowed');classcaptcha......
  • v6-在首页点击图片显示,然后图片子啊弹框中显示
    1.效果  2.代码        3.后端代码  4.跳转页面 ......
  • 使用C#创建WPS EXCEL单元格内联图片的一些个人纪录
    在WPS中单元格内插入图片会生成一个公式,该公式MSExcel中没有,通过录制宏的方式也无法得知具体的生成API,只会录制出硬编码的设置单元格的公式的代码例如  通过解压缩单元格内嵌图片保存的xlsx文件,可以大概得知如下关系(重新压缩回去并且将扩展名改回xlsx是行不通的,我试......
  • 如何拿到图片的hash值,
    fromPILimportImage#获得图像的hash值defget_hash(img):img=img.resize((16,16),Image.Resampling.LANCZOS).convert('L')#抗锯齿灰度#img.show()avg=sum(list(img.getdata()))/256#计算像素平均值s=''.join(map(lambdai:&......
  • MAUI 实现图片上传
    MAUI实现图片上传功能 1、Mainpage.xmal中进行调用代码如下<Imagex:Name="Image_Upload"Source="{BindingUser.HeaderImg}"/><ButtonText="上传"Clicked="UploadImage_Clicked"/>2,创建一个UploadImage类实现选择图片并上传的方法publ......
  • windows下无法访问静态图片,报错java.net.UnknownHostException
    如果你是这种方式映射静态文件的,那可以继续看下去了@Value("${prop.me.hddir}")privateStringhddir;privatevoidaddstatic(ResourceHandlerRegistryregistry){Stringdir=hddir+"/static/";log.info("启动加资源路径...addResourceHa......