Forum: GUI-Design mit VCL / FireMonkey / Common Controls
Delphi
by Namenloser,
21. Feb 2014
Ok, versteh ich nicht so wirklich und ohne Delphi kann ich es jetzt auch schlecht debuggen. Aber es liegt wohl ziemlich sicher daran, dass der Byte-Wert „überläuft“. Aber Hauptsache, du hast eine Lösung, die für dich funktioniert.
Edit: Achso, jetzt seh ich das Problem. Result von Clamp ist als Byte definiert. Deshalb passiert bei der ersten Zuweisung in der Routine schon der Überlauf und die...
Forum: GUI-Design mit VCL / FireMonkey / Common Controls
Delphi
by Namenloser,
21. Feb 2014
Komisch, versuch es mal so:
Pixel^.rgbRed := Clamp(integer(Pixel^.rgbRed) + Offset, 0, 255);
Pixel^.rgbGreen := Clamp(integer(Pixel^.rgbGreen) + Offset, 0, 255);
Pixel^.rgbBlue := Clamp(integer(Pixel^.rgbBlue) + Offset, 0, 255);
Forum: GUI-Design mit VCL / FireMonkey / Common Controls
Delphi
by Namenloser,
21. Feb 2014
Mach das einfach mit Scanline... es ist nicht so kompliziert wie es sich vielleicht anhört.
Ich habs grad einfach mal aus dem Kopf runtergeschrieben, weil es glaub ich länger dauern würde, es mit Worten zu erklären, und dann immer noch unklarer wäre:
function Clamp(Value: Integer; Min, Max: Integer); inline;
begin
Result := Value;
if Result < Min then Result := Min;
if Result >...