gpt4 book ai didi

c# - C# 中的快速每像素混合效果 "multiply"(适用于 android)

转载 作者:太空宇宙 更新时间:2023-11-03 16:25:45 24 4
gpt4 key购买 nike

我一直在寻找一种更快的方法来在我的位图上使用混合效果“相乘”。我已经尝试使用 PorterDuff.Multiply 但它在包含 Alpha channel 的位图上没有达到预期的结果,任何具有 0 alpha 的东西都会变成黑色。

我已经阅读过,似乎实现我想要的效果(photoshop/gimp 的“乘法”图层混合)的唯一方法是应用每个像素的效果。

OpenGL 不是应用程序的选项。

我不确定我是否正确理解维基百科建议的混合模式的算法。

TopColour * BottomColour/255

会是:

ColorC.R = ColorA.R * ColorB.R / 255;
ColorC.G = ColorA.G * ColorB.G / 255;
ColorC.B = ColorA.B * ColorB.B / 255;
// Alpha = Alpha?

// This example is suggesting Android.Graphics.Color.A/R/G/B is writeable,
// it's not - this is just for readability.
// ColorA = Top, ColorB = Bottom, ColorC = Result

转换 Color.ToArgb 并使用整数会更快吗?最后,我是否正确计算了乘法效应 - 它没有正确显示 :(

我被卡住了,任何帮助都会非常感激。

谢谢。

最佳答案

如果你想要快速,你需要查看 Renderscript,http://developer.android.com/guide/topics/renderscript/index.html .

这个来自 Google 的视频也或多或少地向您展示了您需要的一切,http://www.youtube.com/watch?v=gbQb1PVjfqM (Google IO 2012 - 少花钱多办事:做一个好的 Android 公民)。

关于c# - C# 中的快速每像素混合效果 "multiply"(适用于 android),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12636484/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com