setInputType(InputType。TYPE_CLASS_NUMBER | InputType。TYPE_NUMBER_FLAG_DECIMAL); mEts[i] = et; matrixLayout。addView(et, mEtWidth, mEtHeight); } } //初始化颜色矩阵 private void initMatrix() { for (int i = 0; i < 20; i++) { if (i % 6 == 0) { mEts[i]。setText(String。valueOf(1)); } else { mEts[i]。setText(String。valueOf(0)); } } } //获取矩阵值 private void getMatrix() { for (int i = 0; i < 20; i++) { String matrix = mEts[i]。getText()。toString(); boolean isNone = null == matrix || ""。equals(matrix); mColorMatrix[i] = isNone ? 0。
0f : Float。valueOf(matrix); if (isNone) { mEts[i]。setText("0"); } } } //将矩阵设置到图像 private void setImageMatrix() { Bitmap bmp = Bitmap。createBitmap(bitmap。getWidth(), bitmap。getHeight(), Bitmap。Config。ARGB_8888); ColorMatrix colorMatrix = new ColorMatrix(); colorMatrix。set(mColorMatrix);//将一维数组设置到ColorMatrix Canvas canvas = new Canvas(bmp); Paint paint = new Paint(); paint。setColorFilter(new ColorMatrixColorFilter(colorMatrix)); canvas。drawBitmap(bitmap, 0, 0, paint); iv_photo。setImageBitmap(bmp); } @Override public void onClick(View v) { switch (v。getId()) { case R。id。灰度图像数据量btn_change: //作用矩阵效果 break; case R。id。btn_reset: //重置矩阵效果 initMatrix(); break; } //作用矩阵效果 getMatrix(); setImageMatrix(); }}
如果有人不想自己敲代码的,可以到下面地址下载:Demo下载地址
图像的色光属性
在色彩处理中,通常使用以下三个角度来描述一个图像。
色调:物体传播的颜色
饱和度:颜色的纯度,从0(灰)到100%(饱和)来进行描述
亮度:颜色的相对明暗程度 在Android 的 ColorMatrix 颜色矩阵中也封装了一些 API 来快速调整上面这三个颜色参数,而不用每次都去计算矩阵的值。详情可参考这个文档 :https://developer.android.com/reference/android/graphics/ColorMatrix.html
本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/jisuanjixue/article-84905-4.html
千千棒棒哒
你脸红了吗