AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Multimedia Delphi farben beeinflussen?!
Thema durchsuchen
Ansicht
Themen-Optionen

farben beeinflussen?!

Ein Thema von masterofbeer · begonnen am 21. Nov 2005 · letzter Beitrag vom 22. Nov 2005
Antwort Antwort
masterofbeer

Registriert seit: 7. Nov 2005
19 Beiträge
 
#1

farben beeinflussen?!

  Alt 21. Nov 2005, 19:34
hallo...folgendes problem:

ich hab in einem image ein pixel mit einer bestimmten farbe zb clred. jetzt möchte ich diese fareb beeinflussen zb mit weiß. dabei ist weiß aber nihct pures weiß sondern sollte noch mit einem wert zwischen 0 und 1 multipliziert werden in seiner intensität, die farbe rot soll dann je nach dem wie stark das weiß ist heller oder dunkler werden... wie mache ich das plz help
  Mit Zitat antworten Zitat
Pfoto

Registriert seit: 26. Aug 2005
Ort: Daun
541 Beiträge
 
Turbo Delphi für Win32
 
#2

Re: farben beeinflussen?!

  Alt 21. Nov 2005, 19:53
Hallo masterofbeer,

brauchst du nur die Formel oder generell auch eine Anleitung, wie man auf die Farben eines Bitmaps zugreift. Bei letzerem könnte ich nämlich helfen. Die Formel wird sich dann sicherlich auch noch finden.


Gruß
Pfoto
Jürgen Höfs
  Mit Zitat antworten Zitat
masterofbeer

Registriert seit: 7. Nov 2005
19 Beiträge
 
#3

Re: farben beeinflussen?!

  Alt 21. Nov 2005, 20:03
also das problem ist vieleicht anschaulicher wenn ich schreibe was ich will.

ich bin grade dabei eine beeinflussung eines punktes im raum durch ein licht zu proggen.
ich möche dass ein pixel mit einer bestimmten farbe durch eine andere farbe beinflüßt wird. dabei wird zuerst ein wert ermittelt der zwischen 0 und 1 liegt, 0 bedeutet garnicht beeinflusst und 1 die erste farbe wird komplett zur zweiten...alle werde dazwischen sollen abstuffungen sein.
  Mit Zitat antworten Zitat
Der_Unwissende

Registriert seit: 13. Dez 2003
Ort: Berlin
1.756 Beiträge
 
#4

Re: farben beeinflussen?!

  Alt 21. Nov 2005, 20:12
Ja, damit hast du doch auch schon geschrieben was du machen musst.
Du hast deinen Ausgangswert F_Start und dein Zielwert F_Ziel. Dann nimmst du die Differenz (F_Ziel - F_Start) und multiplizierst diese Differenz mit deinem Faktor (zwischen 0 und 1). Das Ganze addierst du dann zu F_Start und fertig.

Das ist alles

Gruß Der Unwissende

PS:
Für eine große Anzahl von Pixeln könnte es schneller sein eine Lookup-Tabelle zu schreiben, in der du für jede mögliche Farbe schon mal den späteren Wert berechnest. Und dann musst du nur in der Tabelle schauen, welcher Wert dort steht
  Mit Zitat antworten Zitat
masterofbeer

Registriert seit: 7. Nov 2005
19 Beiträge
 
#5

Re: farben beeinflussen?!

  Alt 21. Nov 2005, 22:54
ja soweit geht dann mein mathematisches verständniss auch noch

das problem ist: wie addiere ich zwei werte von typen TColor?!


look up?! ne geht nicht, da die werte alle äußerst verschieden sind, aber werd ich mir für einfachere sachen aufbewahren

thx dann
  Mit Zitat antworten Zitat
Benutzerbild von faux
faux

Registriert seit: 18. Apr 2004
Ort: Linz
2.044 Beiträge
 
Turbo Delphi für Win32
 
#6

Re: farben beeinflussen?!

  Alt 22. Nov 2005, 06:59
Hallo!

Hier http://www.dsdt.info/tipps/?id=652 steckt glaube ich die Formel drinnen die du suchst:

Trunc(B*0.11+G*0.59+R*0.3); //R, B und G sind die Integervalues der Rot Grün und Blau Werte Grüße
Faux
Faux Manuel
Wer weiß, dass er nichts weiß, weiß mehr, als der der nicht weiß, dass er nichts weiß.
GoTrillian
  Mit Zitat antworten Zitat
Benutzerbild von Kroko1999
Kroko1999

Registriert seit: 21. Apr 2005
Ort: Spremberg
455 Beiträge
 
Turbo Delphi für Win32
 
#7

Re: farben beeinflussen?!

  Alt 22. Nov 2005, 07:43
zerlege TColor in Rot, Grün und Blau -> manipuliere die Farben -> und schreibe sie wieder in TColor
Delphi-Quellcode:
type
TRGBRec = record
    Rot,Gruen,Blau: real;
  end;
    
function TColorToRGBRec (const C: TColor): TRGBRec;
begin
  Result.Rot := GetRValue (C)/255;
  Result.Gruen := GetGValue (C)/255;
  Result.Blau := GetBValue (C)/255;
end;

function RGBRecToTColor (const R: TRGBRec): TColor;
begin
  Result := RGB (Round (R.Rot*255),Round(R.Gruen*255),Round(G.Blau*255));
end;

function MulRGB (const AFaktorRot,AFaktorGruen,AFaktorBlau; var R: TRGBRec);
begin
  R.Rot := R.Rot*AFaktorRot;
  R.Gruen := R.Gruen*AFaktorGruen;
  R.Blau := R.Blau*AFaktorBlau;
end;
Da sprach der Stumme zum Blinden: "Du wirst sehen ..."
oder
Wer lesen kann, ist klar im Vorteil!
  Mit Zitat antworten Zitat
Der_Unwissende

Registriert seit: 13. Dez 2003
Ort: Berlin
1.756 Beiträge
 
#8

Re: farben beeinflussen?!

  Alt 22. Nov 2005, 11:27
Hi,
ich geh mal davon aus, dass du auf eine Bitmap zugreifst, kannst du einfach gut in ein Image legen und gleichzeitig bietet die dir ne Menge sehr guter Eigenschaften.
Für dich am wichtigsten könnte hier die Eigenschaft Scanline sein. Mit Scanline[i] bekommst du einen Zeiger auf die i-te Zeile deines Bitmap. Dort stehen all deine Farbinformationen drin. Da es sich um einen Zeiger handelt, kannst du also direkt die entsprechenden Zeilen verändern und bekommtst genau das was du möchtest.

Zu Scanline findest du definitiv ne ganze Menge in der DP. Such einfach mal.

Gruß Der Unwissende
  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 06:19 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