Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Multimedia (https://www.delphipraxis.net/16-multimedia/)
-   -   Delphi Um Grafik einen hellen Schein zeichnen (https://www.delphipraxis.net/116773-um-grafik-einen-hellen-schein-zeichnen.html)

napsterxx 6. Jul 2008 07:55


Um Grafik einen hellen Schein zeichnen
 
Liebe Delphier,
ich würde gerne um das Bild eines TImage einen hellen Schein zeichnen/setzen, sodass der Anwender merkt das er dieses Bild gerade fokusiert hat. Derzeit ändere ich immer de Helligkeit des Bildes, aber ic finde das nicht so eine gute Lösung.

IceTube 6. Jul 2008 08:16

Re: Um Grafikeinen hellen Schein zeichnen
 
Kannst du ja mit Canvas machen!
Ich bin nicht so gut mit Canvas, jedoch habe ich mal einen Code für dich geschrieben, welcher einen Kreis um das Bild zeichnet!

Delphi-Quellcode:
procedure TForm2.Image1Click(Sender: TObject);
var r : Trect;
begin
//Tag 0 -> Nicht markiert, Tag 3 -> Markiert
if(Sender AS TImage).Tag = 0 then begin
r := (Sender AS Timage).BoundsRect;
//Erfassen von den Größen
r.Left := r.Left -5;
r.Top := r.Top - 5;
r.Right := r.Right + 5;
r.Bottom := r.Bottom + 5;
//Farbe einstellen
Canvas.Brush.Color := clCream;
Canvas.Pen.Style := psClear;
//Kreis zeichnen
Canvas.Ellipse(r);
//Die Grafik des Images malen
//Sonst währe Sie im Hintergrund
Canvas.Draw(r.Left+5,r.Top+5,(Sender As TImage).Picture.Graphic);
//Markiert
(Sender AS TImage).Tag := 3;
end else begin
//Erfassen von den Größen
r := (Sender AS Timage).BoundsRect;
r.Left := r.Left -5;
r.Top := r.Top - 5;
r.Right := r.Right + 5;
r.Bottom := r.Bottom + 5;
//Farbe einstellen(Hintergrund-Farbe)
Canvas.Brush.Color := Form2.Color;
Canvas.Pen.Style := psClear;
//Zeichnen
Canvas.Rectangle(r);
//Grafik neu zeichnen, sodass diese wieder zu sehen ist
Canvas.Draw(r.Left+5,r.Top+5,(Sender As TImage).Picture.Graphic);
//Nicht markiert
(Sender AS TImage).Tag := 0;
end;
end;
lg

napsterxx 6. Jul 2008 09:03

Re: Um Grafikeinen hellen Schein zeichnen
 
Danke für deine Antwort, aber das ist nicht so wirklich die Lösung wpnach ich suche, denn wenn das Bild keinen Hintergrund hat und z.B. ein S ist dann ist das S ja in einem Kreis, ich möchte aber nur so einen Leichten schein um das S bekommen

mkinzler 6. Jul 2008 09:16

Re: Um Grafikeinen hellen Schein zeichnen
 
Zeig doch mal ein Screenshoot und skizziere dein Anliegen etwas genauer

napsterxx 6. Jul 2008 09:32

Re: Um Grafikeinen hellen Schein zeichnen
 
http://img3.imagebanana.com/img/3wyzcsvn/screen.jpg

Link:
http://img3.imagebanana.com/view/3wyzcsvn/screen.jpg

mkinzler 6. Jul 2008 09:51

Re: Um Grafikeinen hellen Schein zeichnen
 
Dann erzeuge dir eine Maske für den sichtbaren Teil

napsterxx 6. Jul 2008 09:56

Re: Um Grafikeinen hellen Schein zeichnen
 
Eine Maske?
Also in der Suche finde ich nur ein Ovales Fenster?!?

Geht das so:
http://swissdelphicenter.ch/de/showcode.php?id=582

??

mkinzler 6. Jul 2008 10:00

Re: Um Grafikeinen hellen Schein zeichnen
 
Wenn sich das "sichtbare" Bild mit einer geometrischen Form abgrenzen lässt, umso besser.

napsterxx 6. Jul 2008 10:05

Re: Um Grafikeinen hellen Schein zeichnen
 
Joa also ich abe das jetzt mal hingedeichselt :D
Ich habe nun einen Button in "S" Form :D, aber nun fehlt noch dieser leichte Schein darüber. Meine Methode die Helligkeit zu ändern fande ich persönlich jetzt nicht so brickend:
http://www.delphi-treff.de/tipps/grafik/tipp/540/

mkinzler 6. Jul 2008 10:08

Re: Um Grafikeinen hellen Schein zeichnen
 
-Anhebung Helligkeit
-2.Bild
-2.Bild per Transparenz

napsterxx 6. Jul 2008 10:14

Re: Um Grafikeinen hellen Schein zeichnen
 
??

Also ich habe ein Bild was leicht durchsichtig ist. Vll kann ich damit was machen. Dummerweise hat das TImage kein Handle, wesalb ich es nicht in die entsprechende Form bringen kann. Könnte ich das würde ich es einfach über das andere legen :D

mkinzler 6. Jul 2008 10:31

Re: Um Grafikeinen hellen Schein zeichnen
 
Schau dir mal die Methode Bitblt() von TCanvas an

napsterxx 10. Jul 2008 13:26

Re: Um Grafik einen hellen Schein zeichnen
 
:( ich versteh es einfach nicht ... ich weis nicht wo und wie ich anfangen soll

mkinzler 10. Jul 2008 13:28

Re: Um Grafik einen hellen Schein zeichnen
 
Bitblt() verrechnet 2 Bilder
http://msdn.microsoft.com/en-us/library/ms532278(VS.85).aspx

DeddyH 10. Jul 2008 13:59

Re: Um Grafik einen hellen Schein zeichnen
 
Und wenn man GDI+ verwendet, kann man auch easy Anti-Aliasing etc. verwenden.
@napsterxx: Schau mal hier (Abb. unten rechts), so soll es in etwa aussehen, oder?

Cyf 10. Jul 2008 14:27

Re: Um Grafik einen hellen Schein zeichnen
 
Zitat:

Zitat von mkinzler
Bitblt() verrechnet 2 Bilder
http://msdn.microsoft.com/en-us/library/ms532278(VS.85).aspx

Ist das so eine Art Blending-Funktion?
Wusste garnicht das Canvas sowas unterstützt. :oops:

Du kannst entweder das Bild auswechseln (zweites extra Bild), Bitblt(), wenn ichs richtig versteh, verwenden, oder du machst dir eine Art Maske (z.B. aus einem Graustufen-Bild gelihcer Größe in dem alles schwarz ist, was nicht heller werden soll), mit der du dann die Bereiche bestimmst die heller werden.

napsterxx 10. Jul 2008 14:59

Re: Um Grafik einen hellen Schein zeichnen
 
@DeddyH
Ja genau, allerdings nicht solch ein stechendes Gelb. Optimal wäre eine Mischung aus: GammaCorrection & Elliptic (Focused Corona) mit einem schwächeren Gelbton

napsterxx 12. Jul 2008 19:52

Re: Um Grafik einen hellen Schein zeichnen
 
Kann mir jemand helfen wie ich dsa nun mache?^^

Codewalker 13. Jul 2008 09:03

Re: Um Grafik einen hellen Schein zeichnen
 
Ich mache das immer ganz anders. Ich mache 2 Bilder in Photoshop, einmal normal und einmal mit dem Ebeneneffekt "Schein nach außen". Dann nutze ich TJvImage aus der JVCL. Dort kann ich ein Bild für den normalen Status angeben und bis zu 4 weitere (MouseOver,Down,Clicked1,Clicked2). Damit ist der Effekt schön machbar (vorrausgesetzt man nutzt PNGs und hat PNGDelphi installiert, damit die Transparenz vom Bild auch korrekt dargestellt wird).

Vorteil: Man muss nichts im Code rumfummeln mit Canvas, GDI+, etc.
Nachteil: Man muss immer ein zusätzliches Bild erstellen, was die Datenmenge aufbläst und man lernt weniger :mrgreen:

napsterxx 14. Jul 2008 13:25

Re: Um Grafik einen hellen Schein zeichnen
 
Aber ein Icon sieht immer anders aus. Einmal ein großes viereck, einmal ein Kreis. Da man die Icons aus dateien laden kann, kann ich a nicht schon ein neues in Photoshop erstellen.

:D

Codewalker 14. Jul 2008 13:46

Re: Um Grafik einen hellen Schein zeichnen
 
args, okay. Bei so dynamischen Dingen klappt das Konzept natürlich nicht. Dann wirst du um GDI+ und Konsorten nicht herum kommen

stahli 14. Jul 2008 14:22

Re: Um Grafik einen hellen Schein zeichnen
 
Wenn Du sonst nicht zurecht kommst und es pixelweise versuchen willst, hilft Dir vielleicht
ColorLightness+ColorLightnessMove

Es gibt aber sicher elegantere Lösungen ;-)

stahli

ralfiii 14. Jul 2008 14:44

Re: Um Grafik einen hellen Schein zeichnen
 
Zitat:

Zitat von napsterxx
Liebe Delphier,
ich würde gerne um das Bild eines TImage einen hellen Schein zeichnen/setzen, sodass der Anwender merkt das er dieses Bild gerade fokusiert hat. Derzeit ändere ich immer de Helligkeit des Bildes, aber ic finde das nicht so eine gute Lösung.

Unter http://www.aggpas.org/ findest du ein paar SEHR nette Lösungen für dieses Problem.
Ich glaub beim Blur-Demo solltest du fündig werden.


Alle Zeitangaben in WEZ +1. Es ist jetzt 01:32 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