问题标签 [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.
android - 如何仅在未绘制的像素上绘制位图?
我有一个 32 位位图,我想在映射到 32 位屏幕外位图的画布上绘制它。离屏位图通常是空的(刚创建的),但有时我已经画了一些东西。在这种情况下,我希望我绘制的东西在绘制另一个位图时保持不变。
因此,如果设置了目标像素 (x,y),我希望调用drawBitmap跳过绘制其源像素 (x,y)。
这可以做到吗?
java - Porterduff,设置阿尔法/强度水平
我目前在我的 android 应用程序中试用 porterduff-modes。我用这些行来做这个:
当我使用 PorterDuff 模式将叠加层混合到其中时,我有我的位图。现在,我想知道是否有任何功能可以设置混合的强度级别。
如果没有 porterduffmode,我可以通过仅更改叠加层的 Alpha 值来获得混合效果。
我怎样才能得到与 porterduff 的硬/软混合?
谢谢!
android - Android Porter-Duff 合成性能
我一直找不到任何关于使用不同 Porter-Duff 模式合成位图的相对性能的互联网文章或 Google 文档。在编程时对我来说非常明显的是,传统的 SRC/DST 前缀模式的执行速度比 Android Mode.DARKEN、Mode.LIGHTEN、Mode.MULTIPLY 模式快得多(快 3 - 4 倍)。在 720p 屏幕上渲染光照遮罩时,使用后一种模式可以将我的游戏引擎的性能从 40+ 降低到 13 FPS 左右。
我的问题是:
- 有没有比提供的 Porter-Duff 模式更快的方法来使用变暗/变亮属性合成图像?是否值得切换到 OpenGL?
- 是否有关于不同合成模式的相对速度的数据?
android - 如何使用另一个位图作为蒙版在位图上绘制?
我想使用另一个位图作为掩码在位图上绘制。蒙版是一个黑色位图,其中有一个透明对象。我希望这个透明部分填充任意颜色并添加到我的原始图像中。如何才能做到这一点?
+
+ 蓝色 =
android - 在画布上绘图 - PorterDuff.Mode.CLEAR 绘制黑色!为什么?
我正在尝试创建一个简单的自定义视图:有一个由弧路径显示的位图 - 从 0° 到 360°。度数会随着一些 FPS 而变化。
所以我用重写的onDraw()
方法制作了一个自定义视图:
arcPaint
初始化如下:
现在,一切都画得很好,但是……整个视图中的背景都是黑色的。
如果我设置canvas.drawColor(..., PorterDuff.Mode.DST)
并省略canvas.drawBitmap()
- 在透明背景上正确绘制弧线。
我的问题是 - 如何设置PorterDuff
模式以使其具有透明度?
当然bitmap
是带有 alpha 通道的 32 位 PNG。
android - android中的PorterDuff颜色效果用于给定视图下的视图
在android中是否可以设置一个视图,将一些颜色过滤器应用于其边界内可见的所有内容?就像在这个例子中一样:
只是一个简单的矩形视图,它可以反转其下方所有内容的颜色。当然,当用户滚动列表时,它也会反映在倒置框中。有没有一些简单的方法可以使用滤色器、PorterDuff 模式等?
android - 从android中的蒙版图像中删除白色背景
我想裁剪在该位图上方绘制的多边形形状的位图。我正在使用位图的掩码来做到这一点。操作成功,不幸的是,蒙版后的位图在裁剪区域有白色背景,如图所示:
通过在图像周围拖动矩形并在图像上方创建多边形形状来创建运行时的蒙版如下:
我想删除这个不需要的白色背景。有谁知道我该怎么做。非常感谢任何关于我该怎么做的线索或帮助。提前致谢。
android - 画布中的 Android Eraser 不会擦除
我有以下代码来激活/停用橡皮擦:
setPaint 来自我的 customView:
和 onDraw 我使用:
如果我停用橡皮擦,它会画一条红线,但是,如果我激活橡皮擦,它不会擦除,而是画一条黑线。我怎样才能解决这个问题
android - PortedDuff Clear 在 Android 2.3.6 下不起作用。用黑色绘制
现在我已经尝试了大约 6-7 种此代码的变体,但有些地方是不对的。我有几乎相同的代码(只是 ondraw 部分有点不同,准备捕捉手指输入)并且它可以工作。但在这里它只是用黑色绘制。我需要创建一个类似于时钟的计时器。所以我用红色画了一个圆圈,然后根据经过的时间,它将用 PorterDuff.Mode.CLEAR 在该圆圈上绘制以从中删除。现在我通常不这样做,但我有点绝望并且需要快速得到答案,所以我会发布我课程中的所有代码,因为真诚地我不明白我做错了什么,所以我的错误可能在我的活动或视图中的任何位置:
这是我为添加到相对布局中而创建的自定义视图:
这是将 TimeView 添加到其中的活动:
android - 在填充的 android 画布上绘制一个透明圆圈
我正在尝试做一些非常简单的事情(见上文)。我希望画布的所有像素都是纯色,除了填充中心圆的像素。我已经阅读了数百篇关于这个主题的堆栈溢出帖子,并尝试了数百种方法,包括设置 PorterDuff.Mode。这是我当前的 MyView 的 onDraw() 扩展视图:
我是不是误会了什么,为什么我不能用透明涂料在现有像素上绘画。当我这样做时,像素保持不变。当我使用 PorterDuff 时,像素变为黑色。请帮忙。