问题标签 [porter-duff]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
1168 浏览

iphone - 将 CoreGraphics 混合模式映射到 Porter-Duff

我有一个 iPhone 应用程序,它UIImage通过 CoreGraphics 混合两个对象来进行图像处理,特别是CGContextSetBlendMode. 我目前正在研究将其移植到 Android 上。我已经完成了Bitmap使用 PorterDuff 模式在 Android 上组合对象的过程。但是,我想要更复杂的合成。例如,我kCGBlendModeHardLight用于许多混合:

根据源图像样本颜色,乘以或筛选颜色。如果源图像样本颜色浅于 50% 灰色,则背景变亮,类似于加网。如果源图像样本颜色比 50% 灰色深,则背景变暗,类似于相乘。如果源图像样本颜色等于 50% 灰度,则源图像不会更改。等于纯黑色或纯白色的图像样本会产生纯黑色或纯白色。整体效果类似于通过将强烈的聚光灯照射在源图像上所达到的效果。使用它为场景添加高光。

但是无论如何都不知道(如果可能的话)通过 Porter-Duff 来模拟这个。Android 是否不支持开箱即用的更好的图像处理算法?是否可以以某种方式使用 Porter-Duff 来模拟更高级的混合模式?

0 投票
1 回答
5421 浏览

java - 安卓刮刮卡应用

我正在为大学做一个小项目,想知道是否有人可以告诉我如何去做一个刮刮卡应用程序。这个应用程序应该有一个图像覆盖另一个。顶部的那个应该允许用户根据他们在图像上摩擦的位置来移除图像,因此被移除的部分图像会显示下面的图像。和刮刮卡差不多。任何帮助都会很棒!

这是我目前使用的代码。

现在正如您在上面看到的,有很多关于我们尝试过的事情的评论。理想情况下,我希望能够创建 Panel 类的实例,将workinggraphics类 contextview 设置为 XML LinearLayout(或者 SurfaceView w/e 将被使用,我真的不知道),然后只需在定义LinearLayout的当画布擦除我们设置的位图图像时要显示的 XML。

无论如何,任何建议都会被应用,非常感谢!

0 投票
2 回答
2663 浏览

android - Android 圆圈操作

我有一个完整圆圈的PNG。我想做一个通过每个象限绘制的圆的动画(因为它是顺时针绘制的)。我怎样才能做到这一点?有人举个例子吗?

0 投票
1 回答
1222 浏览

android - Android Alpha Masking 问题

在我重写的 onDraw() 函数中,我有一个带有两个仪表的画布(仪表是 PNG)。仪表堆叠在彼此的顶部。我希望只显示顶部的一半仪表,同时显示另一半的底部仪表。这是我到目前为止所拥有的:

似乎不起作用,有人有任何想法吗?

0 投票
2 回答
13958 浏览

android - Android仪表动画问题

好的,所以我已经尝试了几天,但我无处可去。所以我有以下两张图片:

第一个是转速计

转速计

第二张图片是一个全白图形,表示转速表已满:

全尺寸

我想做以下事情:

  1. 询问用户 RPM 输入,例如,如果他们输入 1.2,仪表将按如下方式填充:

输出

我有用户输入工作我需要动画方面的帮助。这是我尝试过的:

  1. 我曾尝试使用 PorterDuff,但它还会在背景中夹住仪表,而不仅仅是白条
  2. 我尝试将图像拆分为小位图并将它们存储到数组中,以便我可以回忆部分,但这很慢并且经常崩溃
  3. 我通过首先将 Gauge 应用到画布然后保存画布取得了一些进展:canvas.save(); 然后在白色图像上剪切路径,然后恢复画布。但是我不知道如何以圆形方式从左下角到右下角 (CW) 180 度进行剪辑。这是最好的方法吗?

我知道可能有一种更简单或更有效的方法来做到这一点,我只是不知道。有人有什么好主意吗?

*注意所有图片都是PNG的

提前致谢!

0 投票
4 回答
14429 浏览

android - 将两个图像与乘法和不透明度混合在一起

我正在尝试使用类似 Multiply 的混合模式将两个图像与 Android 混合在一起。

这行得通,但我无法控制完成的乘法“数量”——它总是一个完整的乘法传输。理想情况下,0% 的乘法将与基本图像 (img1) 相同,没有任何更改,但 100% 的乘法将是我使用上面的代码得到的结果。

paint.setAlpha()似乎对此不起作用。

还有其他方法可以设置新“图层”的不透明度百分比吗?

PS我猜有一些方法可以LightingColorFilter通过预乘并将颜色偏移为白色来使乘法工作(使用a),但它对乘法模式非常具体..我正在尝试找到一种方法来应用不透明度/ % 也适用于所有其他传输模式。

0 投票
1 回答
2297 浏览

android - 波特达夫和路径

在我的项目中,我有一个填充整个屏幕的位图。在这个位图上,我画了一条路径

设置油漆是为了描边和填充路径的内容。我要实现的是擦除与路径相交的位放大器部分。我已经设法使用另一个位图而不是路径来获得相同的行为,并使用搬运工 duff 规则。有没有机会对路径做同样的事情?

0 投票
1 回答
14912 浏览

android - Android 颜色叠加 - PorterDuff 模式

我有一个可绘制的黑白 Ninepatch 作为视图的背景,我想在它上面应用一种颜色,就像一个半透明的叠加层,它使绘图可见但在其上应用所需的颜色。

我认为drawable.setColorFilter(color,mode)可能会成功,但我无法弄清楚不同模式的含义。

谁能给我一个提示?

0 投票
5 回答
66018 浏览

android - 我想在图像视图中添加一个滤色器

我想添加一个ColorFilterImageView.

目前我正在使用:

我已经检查了多种模式,PotterDuff例如SRC_INSRC等等,但我在任何模式中都没有任何区别......所有模式都将整体变成ImageView完美的红色。

我需要在现有图像中混合红色,以便图像看起来带有红色色调......

0 投票
2 回答
60407 浏览

android - PorterDuff.Mode 在 android graphics 中是什么意思。它有什么作用?

我想知道PorterDuff.Mode在 android 图形中的含义。

我知道这是一种传输模式

我也知道,它具有 DST_IN、Multiply 等属性。