Zitat von
Medium:
PS: Dennoch ist mir dein else-Zweig schleierhaft. "in" geht da ja garnicht mit ein
Wozu auch? Nach seiner Tabelle kann man es als 128 - 255 sehen bei maske zwischen 128-255. Mehr macht meine Routine nicht, man kann im Else Zweig sogar direkt Maske zurück geben um auf's Gleiche zu kommen. Du willst bestimmt auf sowas hinaus:
Delphi-Quellcode:
if maske <= 128 then
out := round(in * (maske/128))
else
out := 128 + round(in*((maske-128)/128));