当前位置: 首页 > 知识库问答 >
问题:

ColorFilter仅特定颜色

吕德惠
2023-03-14

关于ColorFilter()函数的一个简短问题;我正在尝试用新颜色替换图像的特定颜色:

所以在这个例子中,我只想用蓝色代替红色。但不要修改此图像的黑色。

int color=color.parsecolor(“#0000FF”);IV1.SetColorFilter(color,porterduff.mode.src_atop);

从“porterduff”模式的描述来看,我应该使用“srv_atop”。但是我应该如何使用这个模式以便只替换红色呢?

共有1个答案

左丘成仁
2023-03-14

我现在找到了一个完美的方法。所以对于每个面临同样问题的人来说...下面是适合我的代码:

            //Decode *.png file to Bitmap
            Bitmap Bitmap_temp = BitmapFactory.decodeResource(getResources(), R.drawable.image_1);
            Bitmap Bitmap_final = Bitmap_temp.copy(android.graphics.Bitmap.Config.ARGB_8888, true);

            //Get Pixel and change color if pixel color match
            int [] allpixels = new int [Bitmap_final.getHeight() * Bitmap_final.getWidth()];
            Bitmap_final.getPixels(allpixels, 0, Bitmap_final.getWidth(), 0, 0, Bitmap_final.getWidth(), Bitmap_final.getHeight());
            for(int i = 0; i < allpixels.length; i++)
            {
                if(allpixels[i] == Color.parseColor("#fff000"))
                {
                    allpixels[i] = Color.parseColor("#0D0D0D");
                }
            }
            Bitmap_final.setPixels(allpixels,0,Bitmap_final.getWidth(),0, 0, Bitmap_final.getWidth(),Bitmap_final.getHeight());

            //Set Bitmap to ImageView
            iv_image1.setImageBitmap(Bitmap_final);
 类似资料:
  • 主要内容:本节引言:,1.测试代码示例:,2.本节示例代码下载:,本节小结:本节引言: 嗯,本来说好今天不写的,还是写吧,毕竟难得空闲哈~,本节给大家带来的是 ColorFilter的第三个子类:PorterDuffColorFilter,看到PorterDuff大家一定不会 陌生吧,假如你看过前面的 Android基础入门教程——8.3.5 Paint API之—— Xfermode与PorterDuff详解(二) 其实效果都是一样的,只是这里用的是颜色,而且直接设置就

  • 主要内容:本节引言:,1.代码示例:,3.本节代码下载,本节小结:本节引言: 上一节中我们讲解了Android中Paint API中的ColorFilter(颜色过滤器)的第一个子类: ColorMatrixColorFilter(颜色矩阵颜色过滤器),相信又开阔了大家的Android图像处理视野, 而本节我们来研究它的第二个子类:LightingColorFilter(光照色彩颜色过滤器),先上一发 官方API文档:LightingColorFilter,文档

  • 主要内容:本节引言:,1.相关常识的普及:,2.ColorMatrix的解读,3.写代码来验证ColorMatrix所起的作用,4.使用ColorMatrix的三个方法处理图像,5.本节代码示例下载:,本节小结:本节引言: 上节我们学习了MaskFilter(面具),用它的两个子类BlurMaskFilter弄了下模糊效果,EmbossMaskFilter 弄了下浮雕效果,而本节我们来学习的是另一个API——ColorFilter(颜色过滤器),和MaskFilter一样, 我们并不直接使用该类

  • 问题内容: 我正在使用for循环读取文件,但是我只想读取特定的行,例如26号和30号行。是否有任何内置功能可实现此目的? 问题答案: 如果要读取的文件很大,并且你不想一次读取内存中的整个文件: 注意,对于nth行。 在Python 2.6或更高版本中:

  • 我正在使用引导4,我有一个导航栏,上面有一些使用导航链接类的链接,还有一个使用导航链接的侧边栏导航。我需要改变一个链接的悬停颜色。最好的方法是什么?

  • 问题内容: 从gluOrtho角度看,我已经在OpenGL中渲染了3D场景。在我的应用程序中,我正在查看体积为100x70x60mm(我为1000x700x600像素)的立方体的正面。在此立方体内部,我绘制了一个简单的蓝色球体,该球体恰好位于中间并“填充”立方体(半径300像素)。 现在,我想读取立方体内特定点的像素的颜色值(以3D表示);即我想知道说点(100,100,-200)是蓝色还是空白(