Hi!
Ich hab ein Image (256*256Pxs) und einen TrackBar (Min: 0; Max: 255).
Über den TrackBar soll der Rot-Anteil des Images geregelt werden. Folgender Code bewirkt allerdings nichts.
Habt ihr ne Ahnung, woran das liegen kann?
Delphi-Quellcode:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
ComCtrls, ExtCtrls;
type
TForm1 =
class(TForm)
Image1: TImage;
TrackBar1: TTrackBar;
procedure TrackBar1Change(Sender: TObject);
private
{ Private-Deklarationen }
procedure MakeRed(Bmp: TBitmap;
const r: Byte);
public
{ Public-Deklarationen }
end;
var
Form1: TForm1;
implementation
procedure TForm1.MakeRed(Bmp: TBitmap;
const r: Byte);
type
TPixArray =
array[1..3]
of Byte;
var
p: ^TPixArray;
h, w: Byte;
begin
for h := 0
to Bmp.Height - 1
do
begin
p := Bmp.ScanLine[h];
for w := 0
to Bmp.Width - 1
do
begin
p^[3] := r;
Inc(p);
end;
end;
end;
{$R *.DFM}
procedure TForm1.TrackBar1Change(Sender: TObject);
begin
MakeRed(Image1.Picture.Bitmap, TrackBar1.Position);
end;
end.