invert.lpr 511 B

123456789101112131415161718192021222324252627282930313233343536
  1. library invert;
  2. {$mode objfpc}{$H+}
  3. uses
  4. Classes, strings, BGRABitmap, BGRABitmapTypes;
  5. procedure FilterName(s: pchar); cdecl;
  6. begin
  7. StrCopy(s, 'Invert');
  8. end;
  9. procedure ApplyFilter(BGRA: TBGRABitmap); cdecl;
  10. var
  11. i: integer;
  12. p: PBGRAPixel;
  13. begin
  14. p := BGRA.Data;
  15. for i := BGRA.NBPixels - 1 downto 0 do
  16. begin
  17. p^.red := not p^.red;
  18. p^.green := not p^.green;
  19. p^.blue := not p^.blue;
  20. p^.alpha := p^.alpha;
  21. Inc(p);
  22. end;
  23. end;
  24. exports
  25. FilterName,
  26. ApplyFilter;
  27. begin
  28. end.