你能在android ImageView上更改位图的图像色调吗?

你能在android ImageView上更改位图的图像色调吗?,第1张

概述这是情况,我有一个SeekBar,当我滑动它时,我想要改变ImageView中图像的色调.我所看到的关于改变色调的所有事情都需要使用ColorMatrix,但我不知道如何将位图与颜色矩阵相关联.建议?解决方法:publicstaticvoidadjustHue(ColorMatrixcm,floatvalue){value=c

这是情况,我有一个Seekbar,当我滑动它时,我想要改变ImageVIEw中图像的色调.我所看到的关于改变色调的所有事情都需要使用colorMatrix,但我不知道如何将位图与颜色矩阵相关联.建议?

解决方法:

    public static voID adjustHue(colorMatrix cm, float value)    {        value = cleanValue(value, 180f) / 180f * (float) Math.PI;        if (value == 0)        {            return;        }        float cosVal = (float) Math.cos(value);        float sinVal = (float) Math.sin(value);        float lumR = 0.213f;        float lumG = 0.715f;        float lumB = 0.072f;        float[] mat = new float[]        {                 lumR + cosVal * (1 - lumR) + sinVal * (-lumR), lumG + cosVal * (-lumG) + sinVal * (-lumG), lumB + cosVal * (-lumB) + sinVal * (1 - lumB), 0, 0,                 lumR + cosVal * (-lumR) + sinVal * (0.143f), lumG + cosVal * (1 - lumG) + sinVal * (0.140f), lumB + cosVal * (-lumB) + sinVal * (-0.283f), 0, 0,                lumR + cosVal * (-lumR) + sinVal * (-(1 - lumR)), lumG + cosVal * (-lumG) + sinVal * (lumG), lumB + cosVal * (1 - lumB) + sinVal * (lumB), 0, 0,                 0f, 0f, 0f, 1f, 0f,                 0f, 0f, 0f, 0f, 1f };        cm.postConcat(new colorMatrix(mat));    }    private static float cleanValue(float p_val, float p_limit)    {        return Math.min(p_limit, Math.max(-p_limit, p_val));    }-------while drawing from canvas ... create an object of paint and ... set... colorMatrix mat = new colorMatrix();`adjustHue(mat, 110);paint.setcolorFilter(new colorMatrixcolorFilter(mat));----canvas.draw(bmp, 0,0,paint);

总结

以上是内存溢出为你收集整理的你能在android ImageView上更改位图的图像色调吗?全部内容,希望文章能够帮你解决你能在android ImageView上更改位图的图像色调吗?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/web/1109734.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-29
下一篇 2022-05-29

发表评论

登录后才能评论

评论列表(0条)

保存