AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Helligkeit einer Bitmap

Ein Thema von thomas2009 · begonnen am 30. Mär 2011 · letzter Beitrag vom 31. Mär 2011
Antwort Antwort
thomas2009
(Gast)

n/a Beiträge
 
#1

Helligkeit einer Bitmap

  Alt 30. Mär 2011, 22:13
Hi

ich versuche mit dieser Funktion die Helligkeit von dem Bild zu ändern

Aber beim Klicken auf Button1 funktioniert nur einmal !

Delphi-Quellcode:
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;
Muss ich die Änderung auf eine Kopie von Bitmap machen ?
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;
  Mit Zitat antworten Zitat
Benutzerbild von lbccaleb
lbccaleb

Registriert seit: 25. Mai 2006
Ort: Rostock / Bremen
2.037 Beiträge
 
Delphi 7 Enterprise
 
#2

AW: Helligkeit einer Bitmap

  Alt 30. Mär 2011, 22:22
Wie viele Beiträge erstellst du denn die Minute??

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

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.
Martin
MFG Caleb
TheSmallOne (MediaPlayer)
Die Dinge werden berechenbar, wenn man die Natur einer Sache durchschaut hat (Blade)
  Mit Zitat antworten Zitat
Medium

Registriert seit: 23. Jan 2008
3.686 Beiträge
 
Delphi 2007 Enterprise
 
#3

AW: Helligkeit einer Bitmap

  Alt 31. Mär 2011, 00:13
Die Problemlösung ist ganz einfach: Versuche endlich mal zu verstehen was du kopierst!
"When one person suffers from a delusion, it is called insanity. When a million people suffer from a delusion, it is called religion." (Richard Dawkins)
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 18:24 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz