![]() |
Helligkeit einer Bitmap
Hi
ich versuche mit dieser Funktion die Helligkeit von dem Bild zu ändern Aber beim Klicken auf Button1 funktioniert nur einmal !
Delphi-Quellcode:
Muss ich die Änderung auf eine Kopie von Bitmap machen ?
procedure Tone(Bit: TBitmap; r, g, b: Integer);
type PixArray = array[1..4] of Byte; var p: ^PixArray; h, w: Integer; begin Bit.Pixelformat := pf32bit; // <----------------------- for h := 0 to Bit.Height - 1 do begin p := Bit.ScanLine[h]; for w := 0 to Bit.Width - 1 do begin if (round(p^[1] * (1 + b / 100)) < 0) then p^[1] := 0 else if (round(p^[1] * (1 + b / 100)) > 255) then p^[1] := 255 else p^[1] := round(p^[1] * (1 + b / 100)); if (round(p^[2] * (1 + g / 100)) < 0) then p^[2] := 0 else if (round(p^[2] * (1 + g / 100)) > 255) then p^[2] := 255 else p^[2] := round(p^[2] * (1 + g / 100)); if (round(p^[3] * (1 + r / 100)) < 0) then p^[3] := 0 else if (round(p^[3] * (1 + r / 100)) > 255) then p^[3] := 255 else p^[3] := round(p^[3] * (1 + r / 100)); p^[4]:=0; // <---------------------------- Inc(p); end; end; end; procedure TForm1.Button2Click(Sender: TObject); begin //Tone(Image1.Picture.Bitmap,0,0,0) end; procedure TForm1.Button1Click(Sender: TObject); begin Tone(Image1.Picture.Bitmap, Scrollbar1.Position, Scrollbar2.Position, Scrollbar3.Position) end; z.B.
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var bmp: TBitmap; begin bmp:=TBitmap.Create; bmp.Assign(Image1.Picture.Bitmap); Tone(bmp, Scrollbar1.Position, Scrollbar2.Position, Scrollbar3.Position) Image2.Picture.Bitmap.assign(bmp); bmp.free; end; |
AW: Helligkeit einer Bitmap
Wie viele Beiträge erstellst du denn die Minute?? :lol:
Du könntest das Bitmap vorher in einer Variable speichern, und dann nochmal die Funktion auf das neue Bild ausführen, dann sollte es wieder gehen. Weiß aber nicht ob ich jetzt dein Problem hier richtig verstanden hab, die Beschreibung selbiges ist auch sehr kurz gehalten:shock: Desweiteren brauchst du nicht erst eine Variable TBitmap erstellen, und auf dieser die Funktion anwenden, sondern kannst auch gleich die bereits in TPicture gespeicherte TBitmap Version benutzen. |
AW: Helligkeit einer Bitmap
Die Problemlösung ist ganz einfach: Versuche endlich mal zu verstehen was du kopierst!
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 14:34 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