0 Daumen
47 Aufrufe

Hallo Community,

ich muss die Java.awt.Color erweitern um CMYK zu RGB und umgekehrt umwandeln zu können.

Ich verstehe leider nicht wo mein Fehler liegt:


import java.awt.Color;

public class MyColor extends Color {
    private double w = 0;
    private double c, m, y, k = 0;

    public MyColor(int r, int g, int b) {
        super(r, g, b);

        this.w = (Math.max(Math.max(r, g), b)) / 255;

        this.c = (this.w - (r / 255)) / this.w;
        this.m = (this.w - (g / 255)) / this.w;
        this.y = (this.w - (b / 255)) / this.w;
        this.k = 1 - this.w;
    }
}


Ich hoffe ihr findet den Denkfehler bei mir. Ich bekomme eine IllegalArgumentException wenn ich von CMYK zu RGB umwandeln möchte.


Lieben Gruß

von

Ich habe den Fehler nach zwei Tagen endlich selbst entdeckt *facepalm* Immer wenn ich online die Frage stelle zum Programmieren fällt mir mein Problem selbst auf. Naja danke jetzt schon für jede Hilfe! 

Hi!

Vielleicht gibt es mehrere User, die das Problem haben. Es wäre super, wenn du deine Lösung für alle beschreibst.

Beste Grüße

Felix

Jo gerne:

Der Fehler war dass ich die Berechnungen nicht im Konstruktor sondern in den getter-Methoden implementieren sollte und in dem Konstruktor nur die übergebenen Werte in den Instanzvariablen speicher, zum Beispiel:

....

    private double w = 0;
    private double r = 0;
    private double c = 0;


    public double getW() {

...

    }


    public double getC() {
        this.c = (getW()- (this.r / 255)) / getW();

        return this.c;
    }

    public MyColor(int r, int g, int b) {
        super(r, g, b);
       
        this.r = r;

....
    }

....

Also an sich ein sehr dummer Fehler von mir hahaha


Lieben Gruß,

Knax

Bitte logge dich ein oder registriere dich, um die Frage zu beantworten.

Ein anderes Problem?

Stell deine Frage

Willkommen bei der Stacklounge! Stell deine Frage sofort und kostenfrei

x
Made by a lovely community