gpt4 book ai didi

.net - 使用 System.Drawing,如何绘制模仿黄色突出显示标记效果的东西?

转载 作者:行者123 更新时间:2023-12-03 00:46:10 25 4
gpt4 key购买 nike

我希望黄色“背后”的内容能够显示出来。

编辑 1:但是,如果我在“白色”上绘图,我希望标记颜色保留其纯黄色。

编辑2:@Kevin的答案可能是正确的,我将其标记为正确,即使我没有对其进行编码。在我的代码中,我使用 Color.FromArgb 接受 @Guffa 的答案。

编辑3:我发布的代码具有良好的性能。是的,减去蓝色是基本思想,但你无法使用高级 API 来做到这一点,而且 SetPixel 太慢了。性能好的方案使用Bitmap.LockBits、UnlockBits。

最佳答案

荧光笔是颜料,所以它本质上是减法——你想把白色变成黄色,但不是把黑色变成黄色。我不了解 .NET,但您想要的是非默认的“混合模式”,特别是减去。具体来说,将混合模式设置为减去,并将颜色设置为纯蓝色(要减去的颜色,留下黄色)。黑色将被保留,因为没有蓝色可减去,白色将变成黄色。

不幸的是,许多现代绘图界面都忽略了 Alpha 以外的混合模式,看起来这可能就是其中之一。如果您有权访问位图,则可以自己实现 - 获取每个像素值并将蓝色分量设置为零。或者,如果您要突出显示的区域很复杂,则:制作图像的副本,在副本中的突出显示区域上绘制黑色,然后将原始图像中的红色和绿色 channel 以及副本中的蓝色 channel 合并到最终图像中结果图像。

关于.net - 使用 System.Drawing,如何绘制模仿黄色突出显示标记效果的东西?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2257762/

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