Laden...

Complementär Farbe ermitteln

Erstellt von inflames2k vor 13 Jahren Letzter Beitrag vor 13 Jahren 7.575 Views
inflames2k Themenstarter:in
2.298 Beiträge seit 2010
vor 13 Jahren
Complementär Farbe ermitteln

Hallo,

gibt es eine Möglichkeit Programmgesteuert die Complimentärfarbe einer vorgegebenen Farbe zu ermitteln?

Wissen ist nicht alles. Man muss es auch anwenden können.

PS Fritz!Box API - TR-064 Schnittstelle | PS EventLogManager |

L
862 Beiträge seit 2006
vor 13 Jahren

Ich hab zwar nur den WIKI-Artikel http://de.wikipedia.org/wiki/Komplement%C3%A4rfarbe überflogen aber auf den Ersten Blick würde ich sagen
R = 255-R;
G = 255-G;
B = 255-B;
Das würde allerdings auch bedeuten dass ein mittleres Grau die Komplementärfarbe von sich selbst ist.

1.002 Beiträge seit 2007
vor 13 Jahren

Hallo inflames2k,

verwende den HSV-Farbraum und setze H auf (H + 180) % 180. Dadurch gehst du den halben Farbkreis, der Farbhöhen von 0° bis 360° beschreibt, weiter und landest gegenüber bei der Komplementärfarbe.
gfoidl hat hier im Forum ein tolles Snippet zur Konvertierung zwischen (u.a.) den Farbräumen RGB und HSV veröffentlicht: Farbkonvertierung RGB <-> HSV und RGB <-> CIE-Lab

Hier ein Auszug aus einem älteren Projekt XColor von mir:

using System.Drawing;
using XColor.Model;

namespace XColor.Business
{
    /// <summary>
    /// Represents a color filter that converts a given color to its complementary one.
    /// </summary>
    public class ComplementaryFilter : IColorFilter
    {
        /// <summary>
        /// Applies the filter to the specified color.
        /// </summary>
        /// <param name="rgbColor">The specified color.</param>
        /// <returns>The resulting complementary color.</returns>
        public RgbColor Apply(RgbColor rgbColor)
        {
            HsvColor hsvColor = (HsvColor)rgbColor;
            HsvColor complementaryColor = new HsvColor((hsvColor.H + 180) % 360, hsvColor.S, hsvColor.V);
            
            return complementaryColor;
        }
    }
}

m0rius

Mein Blog: blog.mariusschulz.com
Hochwertige Malerarbeiten in Magdeburg und Umgebung: M'Decor, Ihr Maler für Magdeburg

inflames2k Themenstarter:in
2.298 Beiträge seit 2010
vor 13 Jahren

Ok, werd mir das mal mit dem HSV-Farbraum ansehen, ansonsten ist es ja auch nicht weiter kompliziert die eigentliche Farbe zu nutzen und die Farbwerte zu berechnen. - Die Methode wäre dann ja nicht so groß.

Wissen ist nicht alles. Man muss es auch anwenden können.

PS Fritz!Box API - TR-064 Schnittstelle | PS EventLogManager |

2.082 Beiträge seit 2005
vor 13 Jahren

@Lector: Ganz so einfach ist das nicht. Invertierte Farbe != Komplementärfarbe. Zu Komplementärfarben gibt es auf Photoshop Turoials einen guten Beitrag: Simple Practical Color Theory

Es ist toll jemand zu sein, der nichts von der persönlichen Meinung Anderer hält. - frisch-live.de

inflames2k Themenstarter:in
2.298 Beiträge seit 2010
vor 13 Jahren

Hallo Frisch,

in einem anderen Forum hab ich gerade unter google Suchbegriff "Komplementärfarbe berechnen" aber genau den gleichen Ansatz gefunden mit der Begründung, dass Farbe + Komplementärfarbe = Weiß und somit der Umkehrschluss Weiß - Farbe = Komplementärfarbe ist.

Wissen ist nicht alles. Man muss es auch anwenden können.

PS Fritz!Box API - TR-064 Schnittstelle | PS EventLogManager |

2.082 Beiträge seit 2005
vor 13 Jahren

Hallo inflames2k,

ja stimmt, bei einfachen Komplementärfarben ist das wohl so. Habe mich verwirren lassen weil ich zuerst an Farbharmonien gedacht habe sorry. Dazu gibts aber in den von mir geposteten Link unter "Color Harmonies" schöne Beispiele für die verschiedenen Farben. Falls es dir um Design geht kannst du dir das ja mal anschauen.

Es ist toll jemand zu sein, der nichts von der persönlichen Meinung Anderer hält. - frisch-live.de

inflames2k Themenstarter:in
2.298 Beiträge seit 2010
vor 13 Jahren

Ich denke mal, dass es um das Design geht. - Hab mir das auch schon angeschaut. 😃

Wissen ist nicht alles. Man muss es auch anwenden können.

PS Fritz!Box API - TR-064 Schnittstelle | PS EventLogManager |