2

私は2つの色をマージしようとしています。そうするために、非常に単純な関数を作成しました:

Public Function MixColors(color1 As Color, color2 As Color) As Color
    Dim a, r, g, b As Byte
    a = (color1.A + color2.A) \ 2
    r = (color1.R + color2.R) \ 2
    g = (color1.G + color2.G) \ 2
    b = (color1.B + color2.B) \ 2

    Return Color.FromArgb(a, r, g, b)
End Function

問題は、最初の操作で OverflowException が発生することであり、その理由がわかりません。

変数の型を最初に Integer に変更してから Double に変更しようとしましたが、結果は変わりませんでした。

\ 演算子から / 演算子に切り替えてみましたが、まだ変化はありません。

変数の型 (color.A) は実行に影響しますか?

4

1 に答える 1