Přidat otázku mezi oblíbenéZasílat nové odpovědi e-mailemVyřešeno Vykreslení matice ve stupních šedi (do JPanelu)

Ahoj,

mám problém, nevím jakým způsobem vykreslit mou matici do panelu ve stupních šedi.

Matice je velká AxB a obsahuje hodnoty z intervalu (X, Y). Například (0, 1000).

Potřebuji obravit pixely ve stupních šedi, aby odpovídali hodnotám..

int[][] matrix;
.
.
.

 for (int i = 0; i < matrix.length; i++) {
        for (int j = 0; j < matrix[0].length; j++) {
                myJpanel.setRGB(i, j, grayScaleColor); // jak na barvu?????????????
        }
    }

Budu rád za každou radu!

Předmět Autor Datum
aby odpovídali hodnotám Jakým hodnotám?
Wikan 17.03.2016 18:38
Wikan
Mám matici, ve který jsou čísla z nějakého intervalu. Jednou je to 300 až 600 (300,600) Jindy je to… nový
MašinkaTomáš 17.03.2016 18:40
MašinkaTomáš
int c = (value - minValue) / (maxValue - minValue) * 255.0; nový
Wikan 17.03.2016 18:54
Wikan
Děkuji, to je přesně ono. poslední
MašinkaTomáš 17.03.2016 18:57
MašinkaTomáš

Mám matici, ve který jsou čísla z nějakého intervalu.

Jednou je to 300 až 600 (300,600)
Jindy je to 0 až 1000 (0,1000).

Já potřebuji tuto matici převést na stupně šedi.

Zatím jsem dal dohromady:

   public static Color grayScaleColor(int value, int maxValue) {
        int c = (int) (value * 255.0 / (double) maxValue);
        return new Color(c, c, c);
    }

Kdy value je aktuální číslo v matici a maxValue je nejvyšší číslo, které se v matici nachází, ale nezdá se mi, že by to fungovalo perfektně.

EDIT:
Zkoušel jsem i

int c = value%255;

Ale to vyplivne hnusný obrázek.

Zpět do poradny Odpovědět na původní otázku Nahoru