问题标签 [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 回答
1333 浏览

android - android:如何像 Photoshop 一样创建叠加混合?

我正在我的 android 应用程序中实现覆盖混合(如 Photoshop)。我尝试了不同的 PorterDuff.Modes(即 SCREEN、MYLTIPLY 等)与不同的组合,但无法实现完美的叠加效果。有没有办法达到效果?

0 投票
1 回答
2094 浏览

android - PorterDuff.Mode.MULTIPLY - Android 中这种颜色转换的意义

在默认的 Android 主题下,我有三个自定义彩色按钮

按钮 http://img94.imageshack.us/img94/1723/themew.jpg

当我通过 /values-v11/styles.xml 切换到Theme.Holo

颜色更改为:

http://img710.imageshack.us/img710/1659/themeholo.jpg

正如我所怀疑的,默认按钮的颜色在新的 Holo 主题中发生了更改,并且使用相同的转换参数进行了转换,它给出了意想不到的颜色。我想保留初始颜色。为此,我必须了解PorterDuff.Mode.MULTIPLY的转换规则。我从 Android 文档中得到的只是

这是什么意思?可能,S是源位图的一个点(按钮可绘制 button.getBackground()),而D是我的 customColor 的一个“点”......我怎样才能从这个公式中重现新的变换颜色?这是否意味着新颜色N是:

或者是什么!?

更新: 我想:

  1. btn_default_normal.9.png用于简单 Android 主题中的上述按钮

  2. btn_default_normal_holo_dark.9.png用于 Android Holo 主题

为了解决 Holo 主题下的颜色问题,我想从第二种(Holo)颜色#66999999到第一种颜色#F2E1E1E1进行中间转换:

然后应用我在引入新的 Holo 主题之前使用的相同转换。要计算这种中间颜色,我必须在十六进制系统中求解两个丢番图方程,其中 Na、Nc 在区间 [0, FF] 中,m, n - 是整数:

因此,中间色为#23898989

不幸的是,实施获得的中间颜色我仍然没有得到想要的颜色......我错在哪里?

0 投票
1 回答
9612 浏览

android - 如何为透明覆盖创建蒙版?

我有以下场景:一个用作背景的位图和另一个用作覆盖的位图,可以是 50% 透明或不透明(在运行时可更改),第三个位图包含第二个位图的掩码。我尝试了不同的 Xfermodes 配置和绘图顺序,但找不到合适的。

我将掩码用作位图,因为我需要能够在两次程序运行之间或在配置更改之间保存它。它是在用户在屏幕上绘制时创建的,有效地清除了战争迷雾

最佳尝试的代码片段。唯一没有像我希望的那样起作用的是我的面具的透明度。

Paint对象:

这是我通过当前配置得到的更清楚的结果: 截屏

我不确定我是否能够在 Paint 对象上设置 alpha;如果不是,我不介意针对 alpha 问题的其他建议或解决方案,最好是不需要将位图重新用作战争迷雾的建议或解决方案。

编辑:

通过执行以下操作,我能够得到我想要的结果:

Paint对象:

但是绘制五次位图似乎是一种浪费。由于 Android 硬件加速,它在 OpenGL 纹理中运行(我将位图重新缩放到设备 GPU 接受的最高分辨率),并且我非常注意invalidates()它在我的 Nexus S 和我的 A500 上运行得非常流畅,但是我不确定其他设备(无论如何项目将是 4.0+)。

但我相信一定有更好的方法来做到这一点。我想要一种避免过多透支的方法,或者至少可以正确地向我解释那些 Xfermode 的含义并且我没有透支的东西。

0 投票
3 回答
21331 浏览

android - Android ColorFilter - Porter-Duff 模式

我正在尝试解决 android 的问题ColorFilters。文档很差,所以主要方法是尝试不同的变体。

问题:

有一个位图。有些像素的 alpha=255,有些像素的 alpha=0。我正在尝试用特定颜色绘制一个圆圈。我希望位图中的 alpha 通道保持不变,但是在绘制时我想将颜色与位图 alpha 相乘。

因此,在绘制圆圈时,我希望不绘制 alpha=0 的像素,但要以我想要的颜色绘制 alpha=255 的像素。Alpha 通道不应该改变。

我正在尝试使用 porter-duff ColorFilter(android sdk 中的 PorterDuffColorFilter 类)。

官方网站上有太多模式和无法理解的描述:http: //developer.android.com/reference/android/graphics/PorterDuff.Mode.html

我想我应该使用DST_ATOPor SRC_ATOP,但它们不像我描述的那样工作。

另外,porter-duff colorfilter 的构造函数中有一个奇怪的参数srcColor

我不明白公式中的“Sa”和“Sc”是什么意思[Da, Sc * Da + (1 - Sa) * Dc]。它可以来自传递给颜色过滤器构造函数的颜色,也可以由“paint.setColor”设置颜色。

有谁知道,它是如何工作的?

0 投票
2 回答
6442 浏览

graphics - 强光,柔光,颜色减淡,颜色燃烧的混合模式公式?

我正在尝试为 CSS 实现穷人的混合模式,以期待浏览器推出支持。(我使用的 CSS 预处理器是 Stylus,这对讨论并不重要。)我从 W3C SVG 规范中找到了混合模式计算的来源,但有些方程给出的结果与预期的结果大不相同 -具体来说,hard-lightsoft-lightcolor-dodgecolor-burn

有谁知道有关混合模式的更正确、更可靠的公式?我将每种颜色的 RGB 通道与它们的 alpha 相乘。

这是我到目前为止所得到的。 https://github.com/pdaoust/stylus-helpers/blob/master/blend.styl

0 投票
1 回答
2736 浏览

android - 当背景为黑色时,Android PorterDuff.Mode.CLEAR 无法正常工作

我需要一些关于我正在使用的应用程序的帮助。我正在尝试创建一个绘画应用程序,几天前我注意到了一个问题,现在我决定进行一些研究来解决它。当我使用PorterDuff.Mode.CLEAR我的刷子作为橡皮擦时,它在我的背景是白色的情况下正常工作。但是,如果我将背景设置为其他颜色(例如 Black like : mCanvas.drawColor(Color.BLACK);)并且在我使用橡皮擦后,我使用橡皮擦的地方会被涂成白色。这是我为橡皮擦设置变量的方式:

那么有什么想法为什么会发生,我该如何解决这个问题?

提前致谢!

0 投票
0 回答
327 浏览

java - Android:PorterDuff.Mode.CLEAR 自定义

使用 PorterDuff.Mode.CLEAR 在 Canvas 上绘图时,移动事件后会留下黑色痕迹。这可以定制吗,例如,我想改变轨迹的宽度和颜色?

0 投票
1 回答
1298 浏览

c# - PorterDuff.Mode.Multiply 没有按预期工作?黑色背景而不是透明

我对 PorterDuff.Mode.Multiply 有疑问,似乎所有 Alpha 通道都设置为“黑色”。这是预期的吗?在 Photoshop / gimp 等中,效果将透明度留在应有的位置。变暗只留下透明度,但仍将效果应用于具有 RGB 的值,这就是我想要的,但具有乘法的效果。

只是 PorterDuff.Mode.Multiply 导致叠加层出现黑色背景问题。

帮助?:)

这是用于 Android 的 Mono

编辑: DstIn 具有相同的不良影响。(阿尔法是黑色的)

0 投票
0 回答
892 浏览

android - 如何使用 Porterduff.mode.overlay

如何使用“覆盖”porterduff 模式?我想要的是类似于 gimp 中的覆盖模式。'Overlay' 列在 porterduff.mode 的文档页面中,但不能使用它。

ps“乘”不是我要找的。

0 投票
4 回答
48293 浏览

android - 掩蔽(裁剪)帧中的图像

有一个丰富的 UI 应用程序,我想在其中显示像这样复杂形状的图像

在此处输入图像描述

现在我想要的是根据蒙版图像裁剪我的图像,实际上图像是动态的,可以从相机或画廊(方形或矩形)导入,我希望该图像适合我的布局框架,如上面

所以只是想知道我是如何做到这一点的?欢迎任何想法/提示

背景框
在此处输入图像描述
遮罩
在此处输入图像描述

这样