这是情况,我有一个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上更改位图的图像色调吗?所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)