farben 0xff000000

LearnJava

Mitglied
Hallo,

für eine Übung muss ich folgendes machen:

Stellen Sie das Bild als Grauwertbild dar. Versuchen Sie auch eine Darstellung in Schwarz-Weiss (also nur zwei mögliche Farbwerte pro Pixel).

nun weiß ich, dass rot 0xffff0000
blau 0xff0000ff
gruen 0xff00ff00 und filteredPixel = (pixel & 0x00ff0000) ist.

Wie stelle ich das am besten an? Ich danke euch jetzt schon im voraus.

lg
 

Rubber

Aktives Mitglied
Ich würde einfach die Helligkeit eines Pixels bestimmen und jeder Helligkeit einen Grauwert zu ordnen, bzw alles größer einem bestimmten Wert weiß und alles kleiner schwarz machen.

Die Helligkeit würde ich spontan einfach aus der Summer der einzelfarbwerte ermitteln.
Also Rotwert + Grünwert + Blauwert = Helligkeit
Da FF = 255 ist der maximale Helligkeitswert also 3 * 255 = 765.
Davon die Hälfte ist 382.
Alles größer 382 würde ich somit weiß machen und alles kleiner schwarz.

Die verschiedenen Grauschattierungen würde ich spontan fast auf dem gleichen weg ermitteln.
Alle originalfarbwerte ermitteln, diese durch 3 teilen (da bei grau jede farbe anteilsmäßig gleich vorkommt) und dann halt jede Farbe auf diesen Wert setzen.

Hab ich jetzt aber nicht getestet ;)
 

Ikaron

Bekanntes Mitglied
Also, wie du das umsetzt ist grundsätzlich deine Sache. Du kannst hier z.B. darauf eingehen, wie hell der Mensch bestimmte Farben wahrnimmt, etc, aber im Prinzip geht das so: (Für BufferedImage's)
Java:
int width = bufferedImage.getWidth();
int height = bufferedImage.getHeight();
int[] pixelData = ((DataBufferInt) bufferedImage.getRaster().getDataBuffer()).getData();
// Pixeldaten als int[], bufferedImage.getRGB(x, y) ist das selbe wie pixelData[x + y * width];, aber deutlich langsamer
for(int i = 0; i < width * height; i++) {

    int argb = pixelData[i];

    // Nun die Schwarz/Weiß-Funktion. Beispiel:
    int g = getGrayscale(argb);

    // Diesen berechneten Wert schreiben wir als neuen R, G und B-Wert, dadurch entsteht ein "graues" Bild. A wird beibehalten
    pixelData[i] = (argb & 0xff000000) | (g << 16) | (g << 8) | g;
}

// Simpler Durchschnitt
public int getGrayscale(int rgb) {

    return (((argb >> 16) & 0xff /*rot*/) + ((argb >> 8) & 0xff /*grün*/) + (argb & 0xff /*blau*/)) / 3;
}

// Unter Berücksichtigung des menschlichen Farbsehens (gewichteter Durchschnitt nach irgendeiner Norm, die ich vergessen habe):
public int getGrayscale2(int rgb) {

    return (int) (((argb >> 16) & 0xff /*rot*/) * 0.3 + ((argb >> 8) & 0xff /*grün*/) * 0.59 + (argb & 0xff /*blau*/) * 0.11);
}

Wenn man nur 0xff oder 0x00 haben will, kann man nun ganz leicht sowas machen:
Code:
int g = getGrayscale(argb) >= 128 ? 0xff : 0x00;
 
Zuletzt bearbeitet:
Ähnliche Java Themen
  Titel Forum Antworten Datum
A Vorkommende Farben ermittel und als Array zurückgeben Java Basics - Anfänger-Themen 7
Fats Waller Farben mixen für den Hintergrund ? Java Basics - Anfänger-Themen 1
C Farben als Enum Java Basics - Anfänger-Themen 3
O JTable in Excel mit Farben Java Basics - Anfänger-Themen 8
L Input/Output Konsole in Farben schreiben Java Basics - Anfänger-Themen 4
L Input/Output In Farben schreiben Java Basics - Anfänger-Themen 3
M Farben/Color Abfragen von Farben innerhalb einer Methode Java Basics - Anfänger-Themen 9
M Hilfe bei Zählen von Farben? Java Basics - Anfänger-Themen 7
A Farben wechseln mit JButton Java Basics - Anfänger-Themen 2
O Verschiedene Farben in einer GUI Java Basics - Anfänger-Themen 15
Dogge Farben-Spiel Java Basics - Anfänger-Themen 20
L Input/Output [SWT] Mehrere Farben im Text Java Basics - Anfänger-Themen 2
D Mehrere verschiedene Farben pro fillRect Java Basics - Anfänger-Themen 3
C RGB Farben Java Basics - Anfänger-Themen 4
K Farben in Variablen speichern Java Basics - Anfänger-Themen 15
S Wort in zwei farben aufleuchten lassen Java Basics - Anfänger-Themen 2
A Mehrere verschieden Farben / Textfeld Java Basics - Anfänger-Themen 2
B Farben vergleichen Java Basics - Anfänger-Themen 5
B Hex in Int und Farben abschwächen Java Basics - Anfänger-Themen 7
Developer_X in JEditorPane verschiedene Farben, verwenden Java Basics - Anfänger-Themen 7
J list mit unterschiedlichen farben Java Basics - Anfänger-Themen 6
G Applet und Farben Java Basics - Anfänger-Themen 7
M Raster mit zufälligen Farben Java Basics - Anfänger-Themen 4
L Farbverlauf in Java mit RGB Farben Java Basics - Anfänger-Themen 3
L JLabel mit unterschiedlichen Farben Java Basics - Anfänger-Themen 4
K Schrift und Farben im Frame (Anfänger) Java Basics - Anfänger-Themen 2
P Farben Invertieren per BufferedImageOp Java Basics - Anfänger-Themen 4
F Farben eines ganzen BufferedImage invertieren Java Basics - Anfänger-Themen 2
S Problem mit PNG (16mio farben.) Java Basics - Anfänger-Themen 4
R Farben in einem Applet Java Basics - Anfänger-Themen 6
E Scrollbar- Farben Java Basics - Anfänger-Themen 5
I Farben bei der Console Java Basics - Anfänger-Themen 2
G Buttons und Farben Java Basics - Anfänger-Themen 6
G buttons mit wechselnden farben belegen Java Basics - Anfänger-Themen 3
Dilandau konstante eigene farben im programm definieren Java Basics - Anfänger-Themen 13

Ähnliche Java Themen

Neue Themen


Oben