Zitat:
D.h. du musst deine function Rgb2Alpha(colrRGB: Colorref): Byte; nur genau dann aufrufen, wenn p=0 ist.
Ich mache nichts anderes nur wo ich die Berechnung ausführe ist gehüpft wie gesprungen..
Delphi-Quellcode:
function Rgb2Alpha(colrRGB: Colorref): Byte;
begin
if colrRGB <> 0 then
Nur dann hole ich mir die werte.
Einen 0 wert berechnen zu wollen macht keinen sinn der bleibt immer 0.
s := round( a + b + c )
Jo ist sinnvoll wenn es ginge.
Denn ich multiplizier zu Colorref einen single type deshalb muss ich bei jedem
(colrRGB * 0.2989) ein Round vorsetzen.
Das! Wird nix
Delphi-Quellcode:
Result := Round(LOBYTE(colrRGB * 0.2989) + LOBYTE((colrRGB shr 8) * 0.5870) +
LOBYTE((colrRGB shr 16) * 0.114)))
Zitat:
Richtig! auch die Annahme das mich nur <> 0 interessiert.
Zitat:
Nur ist es bei dir fehlerhaft programmiert.
Quatsch..
gruss