AGB  ·  Datenschutz  ·  Impressum  







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

RGB to Float3

Ein Thema von EWeiss · begonnen am 3. Jun 2013 · letzter Beitrag vom 3. Jun 2013
Antwort Antwort
Seite 1 von 2  1 2      
EWeiss
(Gast)

n/a Beiträge
 
#1

RGB to Float3

  Alt 3. Jun 2013, 06:48
Wie kann ich RGB Werte nach float3 umrechnen?

Denke mal das RGB(255,255,255) := Float3(1.0, 1.0, 1.0) entspricht.
Nur wie berechne ich das finde außer in C++ keine infos darüber.

List.Add('Redwood'      + ',' + '171, 78, 82');

Diese 3 Werte möchte ich dann als float3 übergeben.

gruss
  Mit Zitat antworten Zitat
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#2

AW: RGB to Float3

  Alt 3. Jun 2013, 06:53
Mit Prozentrechnung

255/255 (= 100%) = 1.0
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)
  Mit Zitat antworten Zitat
EWeiss
(Gast)

n/a Beiträge
 
#3

AW: RGB to Float3

  Alt 3. Jun 2013, 06:53
Mit Prozentrechnung

255/255 (= 100%) = 1.0
Sample?

Versteh das jetzt nicht!

gruss
  Mit Zitat antworten Zitat
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#4

AW: RGB to Float3

  Alt 3. Jun 2013, 06:57
RGB(171,78,82) => Float3( 171/255, 78/255, 82/255 )
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)
  Mit Zitat antworten Zitat
EWeiss
(Gast)

n/a Beiträge
 
#5

AW: RGB to Float3

  Alt 3. Jun 2013, 06:59
RGB(171,78,82) => Float3( 171/255, 78/255, 82/255 )
JO aber gibt es Float3 in Delphi?
Goggle hat mir da keine Ergebnisse geliefert.

Vielleicht war meine Frage etwas unzulänglich.
Danke!

gruss
  Mit Zitat antworten Zitat
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#6

AW: RGB to Float3

  Alt 3. Jun 2013, 07:07
axo aber das wäre doch lediglich ein record mit ein paar class operatoren.
Direkt gesehen habe ich das noch nicht, sollte aber fix gebaut sein ...
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)
  Mit Zitat antworten Zitat
EWeiss
(Gast)

n/a Beiträge
 
#7

AW: RGB to Float3

  Alt 3. Jun 2013, 07:18
Irgendwie will der kram wieder nicht.
Double sollte eigentlich einen wert 0.111111 liefern können

fr := StrToInt(tmpStr[1]) / 255;

fr := 0;

Scheint so das ich heute was an der Klatsche habe

List.Add('Raw umber' + ',' + '146, 102, 68');
sollte dem wert
float3(1.30, 1.02, 0.68) entsprechen da komme ich aber mit Extended(Double) nicht dran.

Mit meinem Rechner
146/255 := 0.5725490196

Komme nicht auf den wert 1.30

EDIT:
Hmmm
Denke das geht nicht so einfach

Code:
float4 SepiaPass( float4 colorInput, float2 tex )
{
   float4 sepia = colorInput;
   // Calculating amounts of input, grey and sepia colors to blend and combine
   float grey = dot(sepia.rgb, float4(0.3, 0.59, 0.11, 0));
   sepia.rgb = float4(sepia.rgb * ColorTone , 1);
   float4 grey2 = grey * (GreyPower);
   float4 color2 = colorInput / (GreyPower + 1);
   float4 blend2 = grey2 + color2;
   sepia.rgb = lerp(blend2, sepia.rgb, SepiaPower);
   // returning the final color
   return sepia;
}
Da spielen andere Faktoren noch eine rolle.
Hardcoden ist schlecht möchte ich eigentlich nicht so gerne.


gruss

Geändert von EWeiss ( 3. Jun 2013 um 07:31 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#8

AW: RGB to Float3

  Alt 3. Jun 2013, 07:36
Ist ja irgendwie auch logisch, denn bei der Berechnung

Code:
y = x / 255
gilt
Code:
x < 255 => y < 1
x = 255 => y = 1
x > 255 => y > 1
Somit passt irgendwas mit der Berechnung nicht und auch die Annahme
Code:
RGB(255,255,255) = Float3(1.0,1.0,1.0)
muss somit falsch sein

bzw. die implizierte Herleitung, dass
Code:
RGB(0,0,0) = Float3(0.0,0.0,0.0)
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)
  Mit Zitat antworten Zitat
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#9

AW: RGB to Float3

  Alt 3. Jun 2013, 07:43
Hmmm
Denke das geht nicht so einfach

Code:
float4 SepiaPass( float4 colorInput, float2 tex )
{
   float4 sepia = colorInput;
   // Calculating amounts of input, grey and sepia colors to blend and combine
   float grey = dot(sepia.rgb, float4(0.3, 0.59, 0.11, 0));
   sepia.rgb = float4(sepia.rgb * ColorTone , 1);
   float4 grey2 = grey * (GreyPower);
   float4 color2 = colorInput / (GreyPower + 1);
   float4 blend2 = grey2 + color2;
   sepia.rgb = lerp(blend2, sepia.rgb, SepiaPower);
   // returning the final color
   return sepia;
}
Da spielen andere Faktoren noch eine rolle.
Hardcoden ist schlecht möchte ich eigentlich nicht so gerne.


gruss
Ah, jetzt habe ich das auch verstanden

Da wird zunächst der Helligkeitswert der Farbe bestimmt.
Delphi-Quellcode:
Rot 30%
Grün 59%
Blau 11%
Das musst du aber hardcoden, denn dass entspricht den (von unseren Augen) wahrgenommenen Helligkeitswerten der Farben.
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)
  Mit Zitat antworten Zitat
EWeiss
(Gast)

n/a Beiträge
 
#10

AW: RGB to Float3

  Alt 3. Jun 2013, 07:49
Zitat:
Das musst du aber hardcoden, denn dass entspricht den (von unseren Augen) wahrgenommenen Helligkeitswerten der Farben.
Ich meinte mit Hardcoden das ich die werte die für die
verwendeten Farben (Die bekannt sind) Wiki(Shades of brown) direkt in meinem Array ablege.

Und das wollte ich vermeiden über die korrekte berechnung.

gruss
  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 01: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