AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Multimedia Delphi Simple Grafikfunktionen
Thema durchsuchen
Ansicht
Themen-Optionen

Simple Grafikfunktionen

Ein Thema von .chicken · begonnen am 3. Mai 2007 · letzter Beitrag vom 3. Mai 2007
Antwort Antwort
Seite 1 von 2  1 2      
.chicken

Registriert seit: 5. Dez 2006
459 Beiträge
 
#1

Simple Grafikfunktionen

  Alt 3. Mai 2007, 17:15
Also ich schreib mir gerade ein paar simple Grafikfunktionen zusammen, wie zB ein einfacher Farbverlauf.
Jetzt möchte ich gerne eine InnerGlow Funktion, ähnlich der von Photoshop (natuerlich nicht so umfangreich) schreiben.

Also sozusagen ein leuchtender, innerer Border. Hab mir das so gedacht, dass ich es ähnlich eines Farbverlaufs mache, und dabei die Farbe immer transparenter werden lasse (also der Farbe darunter immer näher kommen lasse). Weiss wer wie ich das machen kann?

Hoffe ihr versteht was ich meine ich häng mal n Bildchen dran!

MfG
Angehängte Grafiken
Dateityp: bmp glow_131.bmp (14,7 KB, 104x aufgerufen)
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.861 Beiträge
 
Delphi 11 Alexandria
 
#2

Re: Simple Grafikfunktionen

  Alt 3. Mai 2007, 17:18
Du mußt dazu wohl pixelweise auf den Canvas malen.
Markus Kinzler
  Mit Zitat antworten Zitat
.chicken

Registriert seit: 5. Dez 2006
459 Beiträge
 
#3

Re: Simple Grafikfunktionen

  Alt 3. Mai 2007, 17:20
Echt? Kann ich mir nich ne Funktion schreiben um nach und nach die Farben "verschmelzen" zu lassen?
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.861 Beiträge
 
Delphi 11 Alexandria
 
#4

Re: Simple Grafikfunktionen

  Alt 3. Mai 2007, 17:24
Delphi bietet standardmäßig keine Bildverarbeitungsfunktionen. Vielleicht mit einer Fremdbibliothek.
Markus Kinzler
  Mit Zitat antworten Zitat
Benutzerbild von DGL-luke
DGL-luke

Registriert seit: 1. Apr 2005
Ort: Bad Tölz
4.149 Beiträge
 
Delphi 2006 Professional
 
#5

Re: Simple Grafikfunktionen

  Alt 3. Mai 2007, 17:30
Hallo,

das geht natürlich:

Delphi-Quellcode:
function LinearGradientStep(ColStart, ColEnd: TColor; Length, Step: Integer): TColor;
var
  r1,r2,g1,g2,b1,b2,rr,gr,br,rd,bd,gd: Byte; //1,2,result,delta
  
begin
  r1 := GetRValue(ColStart);
  g1 := GetGValue(ColStart);
  b1 := GetBValue(ColStart);
  r2 := GetRValue(ColEnd);
  g2 := GetGValue(ColEnd);
  b2 := GetBValue(ColEnd);

  rd := r2 - r1;
  gd := g2 - g1;
  bd := b2 - b1;

  rr := r1 + round(rd * step / length);
  gr := g1 + round(gd * step / length);
  br := b1 + round(bd * step / length);

  Result := RGB(rr,gr,br);
end;
falls ich mich nicht irgendwo vertan hab, bekommst du damit auf einem linearen farbverlauf von ColStart nach ColEnd, der über die Länge Length geht, die Farbe an der Stelle Step.

Das musst du jetzt nur noch in eine Schleife einfügen, die über die gesamte länge iteriert und entsprechend zeichnet.
Lukas Erlacher
Suche Grafiktablett. Spenden/Gebrauchtangebote willkommen.
Gotteskrieger gesucht!
For it is the chief characteristic of the religion of science that it works. - Isaac Asimov, Foundation I, Buch 1
  Mit Zitat antworten Zitat
.chicken

Registriert seit: 5. Dez 2006
459 Beiträge
 
#6

Re: Simple Grafikfunktionen

  Alt 3. Mai 2007, 17:39
Hmm..ich glaube da hast du falsch verstanden was ich möchte (oder ich deinen Code ).

Also den Farbverlauf habe ich schon selbst hinbekommen, was ich suche ist sozusagen eine Möglichkeit, eine Farbe "transparent" zu malen.
Dass das so in Delphi nicht direkt Möglich ist ist mir durchaus klar, aber es gibt doch sicherlich eine Mathematische Funktion oder so, die mir einen Farbwert gibt.

An die Funktion gebe ich Farbe1 und Farbe2 und einen Transparenzwert. Daraus errechnet er mir die neue Farbe, wenn Farbe2 ueber Farbe1 liegt. Sowas muss ich natuerlich selbst schreiben und ist nich von Delphi vorgegeben, aber es gibt doch sicher einen Term dazu oder sowas?
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.861 Beiträge
 
Delphi 11 Alexandria
 
#7

Re: Simple Grafikfunktionen

  Alt 3. Mai 2007, 17:40
Geht über Ausmaskierung
Markus Kinzler
  Mit Zitat antworten Zitat
Benutzerbild von DGL-luke
DGL-luke

Registriert seit: 1. Apr 2005
Ort: Bad Tölz
4.149 Beiträge
 
Delphi 2006 Professional
 
#8

Re: Simple Grafikfunktionen

  Alt 3. Mai 2007, 17:48
Hallo, da gibt es die beiden Verfahren "Blending" und noch was anderes, wo mir jetzt der name nicht einfällt. Aber du kannst es natürlich wiederum linear machen:

Delphi-Quellcode:
function LinearBlendedColor(CBack, CFront: TColor; alpha: Byte): TColor;
var
  r1,r2,g1,g2,b1,b2,rr,gr,br: Byte; //1,2,result
begin
  r1 := GetRValue(CBack);
  g1 := GetGValue(CBack);
  b1 := GetBValue(CBack);
  r2 := GetRValue(CFront);
  g2 := GetGValue(CFront);
  b2 := GetBValue(CFront);

  rr := r1 * round(1- (alpha / 255)) + r2 * round(alpha / 255);
  gr := g1 * round(1- (alpha / 255)) + g2 * round(alpha / 255);
  br := b1 * round(1- (alpha / 255)) + b2 * round(alpha / 255);

  Result := RGB(rr,gr,br);
end;
So in etwa sollte das hinhauen. exakte formeln sollten sich über internet aber durchaus finden lassen, z.B. in der Wikipedia.
Lukas Erlacher
Suche Grafiktablett. Spenden/Gebrauchtangebote willkommen.
Gotteskrieger gesucht!
For it is the chief characteristic of the religion of science that it works. - Isaac Asimov, Foundation I, Buch 1
  Mit Zitat antworten Zitat
.chicken

Registriert seit: 5. Dez 2006
459 Beiträge
 
#9

Re: Simple Grafikfunktionen

  Alt 3. Mai 2007, 19:17
Super, danke das seh ich mir genauer an
  Mit Zitat antworten Zitat
Benutzerbild von DGL-luke
DGL-luke

Registriert seit: 1. Apr 2005
Ort: Bad Tölz
4.149 Beiträge
 
Delphi 2006 Professional
 
#10

Re: Simple Grafikfunktionen

  Alt 3. Mai 2007, 19:42
Zeichenprogramme (Photoshop) und Grafiklibs (OpenGL, Graphics32) werden aber andere Formeln benutzen, die evtl. sogar in den Farbkomponenten unterschiedlich gewichtet sind.
Lukas Erlacher
Suche Grafiktablett. Spenden/Gebrauchtangebote willkommen.
Gotteskrieger gesucht!
For it is the chief characteristic of the religion of science that it works. - Isaac Asimov, Foundation I, Buch 1
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 04:47 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