gpt4 book ai didi

vb.net - 将 RGB 转换为 ARGB

转载 作者:行者123 更新时间:2023-12-01 13:41:46 24 4
gpt4 key购买 nike

我正在尝试在 VB6 中模拟 Color.ToArgb() Net 函数。

在我的尝试中,我选择了红色。

在 .NET 中我得到了结果

Color.Red.ToArgb() = -65536

但是,我无法在 VB6 中重现这一点。

我的函数 RGBToARGB(vbRed, 255) 返回 -16776961

Public Function RGBToARGB(ByVal uColor As Long, ByVal uAlpha As Integer) As Long

Dim newColor As Long

' To add an Alpha channel to the RGB, simply
If uAlpha > 127 Then
newColor = uColor Or ((uAlpha - 128) * &H1000000 Or &H80000000)
Else
newColor = uColor Or (uAlpha * &H1000000)
End If

RGBToARGB = newColor

End Function

有人看到我做错了什么/与 .NET 版本不同吗?

最佳答案

可能有更好的方法来做到这一点,但这应该可行:

Function RGB24ToARGB(ByVal RGB24 As Long, ByVal Alpha As Byte) As Long
RGB24ToARGB = CLng(Alpha And Not &H80) * &H1000000
If Alpha And &H80 Then RGB24ToARGB = RGB24ToARGB Or &H80000000
RGB24ToARGB = RGB24ToARGB _
Or (RGB24 And &HFF&) * &H10000 _
Or (RGB24 And &HFF00&) _
Or (RGB24 And &HFF0000) \ &H10000
End Function

关于vb.net - 将 RGB 转换为 ARGB,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39533374/

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