Convertitore da RGB a CMYK in Java senza importazioni
Ho il compito di scrivere un convertitore da rgb a cmyk molto semplice in java e i miei tentativi non funzionano. Cercare soluzioni non ha aiutato, dal momento che tutti usano libaries e importazioni che non posso usare qui. Spero che qualcuno veda il mio errore.
int w;
int c;
int m;
int y;
int k;
if (r+b+g==0) {
System.out.println("Ist alles 0");
} else {
int max = Math.max(Math.max(r,b),g);
w = (max / 255);
r = r/255;
g = g/255;
b = b/255;
c = ((w-r)/w);
m = ((w-g)/w);
y = ((w-b)/w);
k = 1-w;
System.out.println(c+" "+m+" "+y+" "+k);
}
Questa è la parte in cui provo a convertire i valori r, g e b (int) che ottengo tramite l'input dell'utente in cmyk.
Edit: so che ci sono post come questi, ma le soluzioni includono sempre libari e importazioni che NON sono autorizzato a usare.
1 answers
Il codice seguente memorizzerà zero in r
poiché il valore iniziale di r
è inferiore a 255 e r è un int. Quindi, come per la divisione intera r/255
sarà zero.
r = r/255;
Invece puoi memorizzare il risultato della divisione in una variabile doppia, prova il seguente (assicurati che almeno uno degli operando nella divisione sia un doppio, altrimenti puoi lanciarlo a doppio)
double rC = r/255.0;
c = ((w-rC)/w);