AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Multimedia Delphi Eine 3D-Buttongrafik mittels 2D-Technik
Thema durchsuchen
Ansicht
Themen-Optionen

Eine 3D-Buttongrafik mittels 2D-Technik

Ein Thema von torud · begonnen am 9. Feb 2005 · letzter Beitrag vom 5. Mär 2005
Antwort Antwort
Seite 2 von 3     12 3      
torud

Registriert seit: 26. Jul 2002
Ort: Sachsen
1.198 Beiträge
 
Delphi XE5 Professional
 
#11

Re: Eine 3D-Buttongrafik mittels 2D-Technik

  Alt 23. Feb 2005, 15:48
Hallo!

Danke für den Tipp.

Leider war nichts mit GBlur zu finden in der Suchfunktion!
Habe ich was falsches eingegeben???
Danke
Tom
  Mit Zitat antworten Zitat
Benutzerbild von Khabarakh
Khabarakh

Registriert seit: 18. Aug 2004
Ort: Brackenheim VS08 Pro
2.876 Beiträge
 
#12

Re: Eine 3D-Buttongrafik mittels 2D-Technik

  Alt 23. Feb 2005, 19:47
Zitat von torud:
Hallo!

Danke für den Tipp.

Leider war nichts mit GBlur zu finden in der Suchfunktion!
Habe ich was falsches eingegeben???
Gut, es steht immer nur Blureffekt da, aber so viele Multimedia CodeLib-Einträge gibt es doch eigentlich nicht .
http://www.delphipraxis.net/internal...ct.php?t=24623
Sebastian
Moderator in der EE
  Mit Zitat antworten Zitat
torud

Registriert seit: 26. Jul 2002
Ort: Sachsen
1.198 Beiträge
 
Delphi XE5 Professional
 
#13

Re: Eine 3D-Buttongrafik mittels 2D-Technik

  Alt 24. Feb 2005, 09:02
OK, vielen Dank!

Bleibt mir noch unklar, wie ich die 3 Bilder miteinander verschmelzen kann!???

werde aber mal wieder die suchfunktion bedienen!
Danke
Tom
  Mit Zitat antworten Zitat
Benutzerbild von Khabarakh
Khabarakh

Registriert seit: 18. Aug 2004
Ort: Brackenheim VS08 Pro
2.876 Beiträge
 
#14

Re: Eine 3D-Buttongrafik mittels 2D-Technik

  Alt 24. Feb 2005, 14:59
Wenn es keine geeignete Einstellungen von BitBlt gibt, wirst du wohl oder übel eine eigene Prozedur über Scanline schreiben müssen.
Ein Beispiel für Textur + Schatten:
Delphi-Quellcode:
procedure foo(bSource, bDest: TBitmap); //Der Schatten ist die Quelle, die Textur das Ziel
var pSource, pDest: PRGBQuad;
begin
  bSource.PixelFormat:=pf32bit;
  bDest.PixelFormat:=pf32bit;
  [...]
      pDest^.rgbtRed:=pDest^.rgbtRed-(255-pSource^.rgbtRed);
      pDest^.rgbtBlue:= [...]
  // Wenn der Pixel in der Schatten-Bitmap weiß ist, wird an bSource nichts verändert, sonst eben dunkler
end;
Sebastian
Moderator in der EE
  Mit Zitat antworten Zitat
torud

Registriert seit: 26. Jul 2002
Ort: Sachsen
1.198 Beiträge
 
Delphi XE5 Professional
 
#15

Re: Eine 3D-Buttongrafik mittels 2D-Technik

  Alt 24. Feb 2005, 16:29
Hallo Sebastian!

Also Text mit Schatten habe ich nun schon so gelöst:

Delphi-Quellcode:
          Image3.Canvas.Font := Schatten.Font;
          Image3.Canvas.Brush.Style := bsClear;
          Image3.Canvas.TextOut(24 , 7, ed_text.Text);
          BmpGBlur(Image3.Picture.Bitmap,3);

          Image3.Canvas.Font := FontDialog1.Font;
          Image3.Canvas.Brush.Style := bsClear;
          Image3.Canvas.TextOut(22 , 6, ed_text.Text);

          BmpGBlur(Image3.Picture.Bitmap,0.05);
Ist erstmal nur ein statischer Test gewesen, sah aber im Ergebnis nicht schlecht aus!

Irgendwie sehen aber meine Buttons noch zu Flach aus!
Danke
Tom
  Mit Zitat antworten Zitat
Benutzerbild von Khabarakh
Khabarakh

Registriert seit: 18. Aug 2004
Ort: Brackenheim VS08 Pro
2.876 Beiträge
 
#16

Re: Eine 3D-Buttongrafik mittels 2D-Technik

  Alt 24. Feb 2005, 19:04
Ich hatte eigentlich die Buttontextur an sich (oder eben einfach ne einfarbige fläche) + die Schattierungen am Rand des Buttons (für den Tiefeneffekt) gemeint .
Sebastian
Moderator in der EE
  Mit Zitat antworten Zitat
torud

Registriert seit: 26. Jul 2002
Ort: Sachsen
1.198 Beiträge
 
Delphi XE5 Professional
 
#17

Re: Eine 3D-Buttongrafik mittels 2D-Technik

  Alt 24. Feb 2005, 19:59
Ups!

Na wenn das nicht ein klassisches Mißverständnis war...

Also so richtig verstanden habe ich das noch nicht, wie das zum Einsatz, kommt, werde es mir aber mal ansehen und etwas damit "experimentieren", vermute aber, dass ich in ein TImage ein Graik laden soll, oder in ein Bitmap, wie auch immer und dann deine Procedure darauf anwenden soll.

Mal sehen, wie weit ich komme...vielen Dank...
Danke
Tom
  Mit Zitat antworten Zitat
torud

Registriert seit: 26. Jul 2002
Ort: Sachsen
1.198 Beiträge
 
Delphi XE5 Professional
 
#18

Re: Eine 3D-Buttongrafik mittels 2D-Technik

  Alt 24. Feb 2005, 21:54
Hi Sebastian!

Also ich habe mal Deinen Code probiert, bin aber leider gescheitert.

Delphi-Quellcode:
procedure foo(bSource, bDest: TBitmap); //Der Schatten ist die Quelle, die Textur das Ziel
var pSource, pDest: PRGBQuad;
begin
  bSource.PixelFormat:=pf32bit;
  bDest.PixelFormat:=pf32bit;

      pDest^.rgbRed := pDest^.rgbRed-(255-pSource^.rgbRed);
      pDest^.rgbBlue := pDest^.rgbBlue-(255-pSource^.rgbBlue);
      pDest^.rgbGreen := pDest^.rgbGreen-(255-pSource^.rgbGreen);
  // Wenn der Pixel in der Schatten-Bitmap weiß ist, wird an bSource nichts verändert, sonst eben dunkler
end;
Also ich habe Deine Prozedur nun etwas vervollständigt. Sollte bestimmt eine kleine Aufgabe für mich sein. Ich rufe nun diese Prozedure wie folgt auf.

Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var
    MyBit:TBitmap;
begin
    myBit:=TBitmap.Create;
    MyBit.Assign(Image.Picture.Graphic);
        foo(MyBit,Image1.Picture.Bitmap);
end;
In Image befindet sich ein Jpeg, deshalb weise ich es vorher noch einem Bitmap zu. Allerdings tut sich in dest - dem Image1 nichts. Wie auch. Ich glaube, dass in der foo-procedure noch nichts zurückgeschrieben wird. Oder??? Kannst Du noch etwas helfen?
Danke
Tom
  Mit Zitat antworten Zitat
Benutzerbild von Khabarakh
Khabarakh

Registriert seit: 18. Aug 2004
Ort: Brackenheim VS08 Pro
2.876 Beiträge
 
#19

Re: Eine 3D-Buttongrafik mittels 2D-Technik

  Alt 25. Feb 2005, 19:42
Du solltest dir mal ein Tutorial über Pointer und Scanline suchen. Am Anfang hat das geklungen, als ob du eine eigene Render-Engine zusammenbauen wolltest, deahlb habe ich gedacht, ScanLine wäre kein Problem .
Schon länger nichts mehr mit ScanLine gemacht, das sollte es aber sein:
Delphi-Quellcode:
procedure foo(bSource, bDest: TBitmap); //Der Schatten ist die Quelle, die Textur das Ziel
var pSource, pDest: PRGBQuad;
    x, y: Integer;
begin
  bSource.PixelFormat:=pf32bit;
  bDest.PixelFormat:=pf32bit;
  for y:=0 to bDest.Height-1 do
  begin
    pSource:=bSource.Scanline[y];
    pDest:=bDest.Scanline[y];
    for x:=0 to Bitmap.Width-1 do
    begin
      pDest^.rgbRed := pDest^.rgbRed-(255-pSource^.rgbRed);
      pDest^.rgbBlue := pDest^.rgbBlue-(255-pSource^.rgbBlue);
      pDest^.rgbGreen := pDest^.rgbGreen-(255-pSource^.rgbGreen);
      // Wenn der Pixel in der Schatten-Bitmap weiß ist, wird an bSource nichts verändert, sonst eben dunkler
      Inc(pDest);
      Inc(pSource)
    end
  end
end;
Sebastian
Moderator in der EE
  Mit Zitat antworten Zitat
torud

Registriert seit: 26. Jul 2002
Ort: Sachsen
1.198 Beiträge
 
Delphi XE5 Professional
 
#20

Re: Eine 3D-Buttongrafik mittels 2D-Technik

  Alt 25. Feb 2005, 21:09
Hallo Sebastian!

Also ich bin leider kein Experter mit BitBlt und Scanline!
Das mit dem Tut zu diesem Thema ist keine schlechte Idee.

Naja ich denke, dass wir uns da wohl etwas missverstnanden haben. Eine eigene Engine wäre wohl für meinen Kenntnisstand etwas zu hochgegriffen. Ich würde mir zwar gern einen eigenen Button-Creator erstellen, aber ich denke, dass ich da wohl weiter davon entfernt bin, als mir lieb ist und ich habe in nunmehr 3 Foren keine Infos erhalten, wie ich ein solches Tool, wie es z.B. Crystal-Button, mit verstehbaren Mitteln erstellen kann.

Und was die foo-procedure angeht. Die tuts nun. Was auch immer sie machen soll, sie macht nicht das, wovon ich dachte, dass sie es tun würde...alles bleibt flach...danke ciao
Danke
Tom
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 3     12 3      


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 21:05 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