AGB  ·  Datenschutz  ·  Impressum  







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

Farben mischen mit Deckkraft

Ein Thema von Christian18 · begonnen am 2. Feb 2008 · letzter Beitrag vom 6. Feb 2008
Antwort Antwort
Seite 1 von 2  1 2      
Christian18

Registriert seit: 9. Dez 2003
Ort: Hamburg
1.279 Beiträge
 
#1

Farben mischen mit Deckkraft

  Alt 2. Feb 2008, 09:22
Hallo,

ich möchte mir eine kleine Funktion schreiben, der ich folgende Werte übergebe:

- Pixel Farbe
- Pixel Farbe, womit gemischt werden soll
- Prozentualen Anteil der Mischfarbe

Kann man sowas machen? Wenn ja wie? Welche berechnungen muss ich durchführen?
Delphi-Quellcode:
function Mischen(Pixel, Mischen : TColor; Percent : Integer) : TColor;
begin
  // keine Ahnung was ich hier tun muss
end;
MFG Christian18
  Mit Zitat antworten Zitat
peterlepan

Registriert seit: 5. Jun 2006
Ort: Nordhausen
37 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#2

Re: Farben mischen mit Deckkraft

  Alt 2. Feb 2008, 10:14
Hallo Christian!

Ich habe das zwar auch noch nicht gemacht, würde aber wie folgt vorgehen.
TColor enthält ja die Rot/Grün/Blau-Anteile der Farbe, die müssten zuerst für die beiden Farben aus der entsprechenden Variablen herausgezogen werden.
Dann würde ich für jede Farbe einzeln einen Mischwert auf Grund der Prozentangabe ermitteln.

z.B. Rotanteil der Grundfarbe 200, Rotanteil der Mischfarbe 100, 20% Mischung ergibt einen Rotwert von 180,
also 100 sind die Differenz, 20% davon sind 20, da die Mischfarbe einen niedrigeren Wert hat wird es von der Grundfarbe abgezogen.

Das musst Du nun nur in einen Algorithmus packen.

Ob das allerdings mit realen Farbmodellen richtig zusammespielt, weiss ich nicht, rein Programmtechnisch würde ich es zumindest so machen.

Gruß Peter
Peter Tabatt
  Mit Zitat antworten Zitat
Christian18

Registriert seit: 9. Dez 2003
Ort: Hamburg
1.279 Beiträge
 
#3

Re: Farben mischen mit Deckkraft

  Alt 2. Feb 2008, 10:34
Hallo,

ich habe das mal probiert. Meiner meinung nach passiert da nichts:

Delphi-Quellcode:
function TForm2.Mischen(Pixel, Mischen : TColor; Percent : Integer) : TColor;
  var Farbe1, Farbe2, Farbe3 : TFarbe;
begin
  // RGB auslesen
  with Farbe1 do
    begin
      R:=GetRValue(Pixel);
      G:=GetGValue(Pixel);
      B:=GetBValue(Pixel);
    end;
  with Farbe2 do
    begin
      R:=GetRValue(Mischen);
      G:=GetGValue(Mischen);
      B:=GetBValue(Mischen);
    end;

  with Farbe3 do
    begin
      R:=Round(Farbe1.R - ((Farbe2.R * Percent) / 100));
      G:=Round(Farbe1.G - ((Farbe2.G * Percent) / 100));
      B:=Round(Farbe1.B - ((Farbe2.B * Percent) / 100));

      Result:=RGB(R, G, B);
    end;
end;
  Mit Zitat antworten Zitat
peterlepan

Registriert seit: 5. Jun 2006
Ort: Nordhausen
37 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#4

Re: Farben mischen mit Deckkraft

  Alt 2. Feb 2008, 11:21
Hallo Christian!

Ich hab grad mal Deine Funktion in ein Formular reingenommen und das Ganze mit drei Panels ausprobiert, scheint zu funktionieren (siehe zip).
Natürlich kannst Du den Anteil der Mischfarbe nicht immer von der Grundfarbe abziehen, wenn der Wert bei der Mischfarbe größer ist, wird der Anteil zur Grundfarbe addiert.

Gruß Peter
Angehängte Dateien
Dateityp: zip farbtest_160.zip (627,7 KB, 25x aufgerufen)
Peter Tabatt
  Mit Zitat antworten Zitat
Christian18

Registriert seit: 9. Dez 2003
Ort: Hamburg
1.279 Beiträge
 
#5

Re: Farben mischen mit Deckkraft

  Alt 2. Feb 2008, 11:27
Hallo,

kannst du mal einen screenshot machen? bei mir bleibt panel3 grau.

ich verwende windows vista ultimate. kann es daran liegen?

MFG christian18
  Mit Zitat antworten Zitat
peterlepan

Registriert seit: 5. Jun 2006
Ort: Nordhausen
37 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#6

Re: Farben mischen mit Deckkraft

  Alt 2. Feb 2008, 11:35
Hallo Christian!

Vista hab ich noch nicht probiert, mach ich aber gerade unter VMWare, mal sehen was dort passiert.

Unter XP sieht es wie auf den Screenshots aus.

Peter
Angehängte Dateien
Dateityp: zip screenshots_598.zip (20,4 KB, 20x aufgerufen)
Peter Tabatt
  Mit Zitat antworten Zitat
Christian18

Registriert seit: 9. Dez 2003
Ort: Hamburg
1.279 Beiträge
 
#7

Re: Farben mischen mit Deckkraft

  Alt 2. Feb 2008, 11:37
Bei mir ist immer nur vorher zu sehen
  Mit Zitat antworten Zitat
peterlepan

Registriert seit: 5. Jun 2006
Ort: Nordhausen
37 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#8

Re: Farben mischen mit Deckkraft

  Alt 2. Feb 2008, 11:51
Ich hab jetzt das Programm unter Vista in einer VWMare laufen lassen, mit dem gleichen Ergebnis wie bei XP.
Allerdings sind die Vista-Grafikeffekte wie die Glasrahmen in der VMWare abgeschaltet.
Peter Tabatt
  Mit Zitat antworten Zitat
Namenloser

Registriert seit: 7. Jun 2006
Ort: Karlsruhe
3.724 Beiträge
 
FreePascal / Lazarus
 
#9

Re: Farben mischen mit Deckkraft

  Alt 2. Feb 2008, 12:11
Also ich sehe keine Veränderung... Vista mit Glass-Effekt.
  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: Farben mischen mit Deckkraft

  Alt 2. Feb 2008, 12:21
http://www.delphipraxis.net/internal...ct.php?t=67805

könnte auch helfen.
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 13:54 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