![]() |
Scanline+TrackBarChange geht nicht
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. |
Re: Scanline+TrackBarChange geht nicht
probiere mal folgendes:
Delphi-Quellcode:
procedure TForm1.TrackBar1Change(Sender: TObject);
begin Image1.Picture.Bitmap.PixelFormat:=pf24bit; MakeRed(Image1.Picture.Bitmap, TrackBar1.Position); Image1.Refresh; end; |
Re: Scanline+TrackBarChange geht nicht
:hello:
Das Pixelformat auf 24 Bit zu stellen, vergess ich auch immer wieder :wall: , obwohl darin diesmal ausnahmsweise nicht der Fehler lag. Refresh war's DANKE |
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:05 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz