Das liegt daran, das Pixel die wirklich Schwarz sind (Red=0, Green=0, Blue=0), halt auch bei deiner Implementierung 0 bleiben, weil 0, mit was auch immer multipliziert, 0 bleibt. Zufall also.
Aber du kannst ja mal erklären was deine RGB2Alpha tatsächlich rechnen soll. Ich würde das gerne verstehen.