Graustufe programmieren

Status
Nicht offen für weitere Antworten.

hansblub

Mitglied
Hallo!
ich brauche ein Graustufen-Programm, und nicht, wie es bei java vorgegeben ist, durch eine eigene Klasse, sondern diese Klasse muss ich selbst programmieren.
Hiermit kann man ja ein Graustufenbild erzeugen, aber dies muss ich nun selbst programmieren.

Code:
import java.awt.color.ColorSpace;
import java.awt.image.BufferedImage;
import java.awt.image.ColorConvertOp;
import java.io.File;

import javax.imageio.ImageIO;

public class GrayScaleConversionExample {

    /**
     * @param args
     */
    public static void main(String[] args) throws Exception {
        BufferedImage src = ImageIO.read(new File("c:/Sonnenuntergang.jpg"));
        BufferedImage dest = new BufferedImage(src.getWidth(), src.getHeight(),
                BufferedImage.TYPE_BYTE_GRAY);
        ColorConvertOp grayScaleConversionOp = new ColorConvertOp(ColorSpace
                .getInstance(ColorSpace.CS_GRAY), null);

        grayScaleConversionOp.filter(src, dest);
        ImageIO.write(dest, "jpeg", new File("c:/Sonnenuntergang_gray.jpg"));

    }

}


Ich weiß, dass alle Farbwerte, (R,G,B) gleich sein müssen um einen Grauton zu erzeugen.
Man muss also erst die Rote Farbe selektieren:
Code:
for (int i = 0; i < (int)(höhe*breite); i++) {
      r = pixelFeld[i] & 0xffff0000;
    }
danach die Blaue und Grüne oder sehe ich da etwas völlig falsch?? so muss man diese dann doch wieder zu einem Bild zusammenfügen, aber ich weiß nicht genau wie... Habe mich da schon sehr lange mit befasst, komme damit aber nicht wirklich richtig auf was produktives raus...

könntet ihr mir vl helfen??
wäre sehr nett... und wenn es auch nur ein internet-link ist, wo ihr wisst wo es erklärt steht. ich habe noch ncihts gefunden.

gruss

hansblub
 

hansblub

Mitglied
danke erstmal für die schnelle antwort.
da ich ein ziemlicher Anfänger in diesem Gebiet bin sagt wir der Quellcode ohne erklärung leider nciht sehr viel.
die formel für den Grauwert kannte ich auch schon, aber trz danke.

ich weiß auch was ich machen muss, aber nicht wie ich es in java umsetzen kann, weil ich leider noch nicht die erfahrung darin habe.

ich weiß also:
-rot, blau und grün müssen selektiert werde
-diese werte in folgende formel einsetzen: B*0.11+G*0.59+R*0.3
-und dann bzw wie genau (wenn es eben geht mit erklärung) setze ich dies in java um??
 
G

Gast

Gast
Ja dann hast du doch alles was du brauchst, wo kommst du denn nicht weiter?

Bzw. zeig mal was du hast.

Liegt es am Lesen der RGB Werte? Am Umrechnen mit der Formel?
 
G

Gast

Gast
Ich kann dir ja mal so kurz aufschreiben was du machen musst und du kannst dann sagen was du nicht hinbekommst:

1. Du musst in einer schleife oder auch zwei durch die pixel gehen

2. Dann den jeweiligen r, g und b wert bestimmen

3. Den Graustufen wert aus den rgb wert berechnene

4. Den Pixel auf den Graustufen wert setzen
 

Saxony

Top Contributor
Hiho,

eine schnelle Lösung:

Code:
public static void main(String[] args) {

		BufferedImage image = null;
		BufferedImage image2 = null;
    int gray = 0;
		try {
			image = ImageIO.read(new File("test.png"));
		}
		catch (IOException ex) {
			ex.printStackTrace();
		}
		if (image != null) {
			
			image2 = new BufferedImage(image.getWidth(), image.getHeight(), BufferedImage.TYPE_INT_RGB);
			for (int x = 0; x < image.getWidth(); x++) {
				for (int y = 0; y < image.getHeight(); y++) {
										
					Color c = new Color(image.getRGB(x, y));
					
					gray = (int)(c.getRed() * 0.299 + c.getGreen() * 0.587 + c.getBlue() * 0.114);
					
					Color grayColor = new Color(gray, gray, gray);
					image2.setRGB(x, y, grayColor.getRGB());					
				}
			}
		}
		
		try { ImageIO.write(image2, "jpeg", new File("result.jpg")); }
		catch (IOException ex) { ex.printStackTrace(); }
	}

bye Saxony
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
T Programmieren als Angestellter Allgemeine Java-Themen 2
NoahPillich Navigations-App und Wegfindung selber programmieren - Erfahrungen, Ideen, Anregungen Allgemeine Java-Themen 6
M Aussagenlogik in Java Programmieren Allgemeine Java-Themen 22
B hard wrap selber programmieren Allgemeine Java-Themen 9
berserkerdq2 run-methode eines Threads so programmieren, dass 30x die Sekunde etwas ausgeführt wird. Allgemeine Java-Themen 44
L Einfache Navigations-App schnell selber Programmieren? Bitte um Ideen und Anregungen. Allgemeine Java-Themen 17
Q Java-Programmieren Allgemeine Java-Themen 1
B BOT mit Java [Eclipse] programmieren Allgemeine Java-Themen 7
kanywayne Java programmieren: Polynom Klasse Allgemeine Java-Themen 4
O wie kann ich p = s · (1 + r )^t-s programmieren? Allgemeine Java-Themen 7
N Lottowebsite programmieren mittels Java, HTML,.... Allgemeine Java-Themen 7
J Vokabeltrainer programmieren Allgemeine Java-Themen 4
S Java-Task-Management-Tool für Windows und Mac selber programmieren Allgemeine Java-Themen 4
Q Möglichkeit Online-Programmieren üben. Allgemeine Java-Themen 9
B Schach programmieren Allgemeine Java-Themen 2
S Einfaches Programm programmieren Allgemeine Java-Themen 5
F Große Datenmengen effizient programmieren Allgemeine Java-Themen 51
E Einen Bot Programmieren. Allgemeine Java-Themen 6
T Graph/Adjazenzliste programmieren Allgemeine Java-Themen 10
M Allgemeine Frage: Wie lernt man Java / Programmieren von Grund auf? Allgemeine Java-Themen 7
R Wie einen ClientBuilder / JarBuilder programmieren? Allgemeine Java-Themen 14
T Sprachsteuerung programmieren? Allgemeine Java-Themen 1
W IDEA IntelliJ Build-Management-Tool selbst programmieren Allgemeine Java-Themen 2
D Was als nächstes programmieren? Allgemeine Java-Themen 6
C Compiler programmieren Allgemeine Java-Themen 13
U Methoden Algorithmus MergeSort String [ ] array sortieren programmieren Allgemeine Java-Themen 17
H .Sh Datei ausführen programmieren Allgemeine Java-Themen 5
T Frage zu UML in Java programmieren Allgemeine Java-Themen 1
G Bot Programmieren Allgemeine Java-Themen 16
T Best Practice Eigene GUI programmieren | MouseMotion Detection Allgemeine Java-Themen 3
A Erste Schritte Die Kunst am Programmieren Allgemeine Java-Themen 20
S Captchas programmieren Allgemeine Java-Themen 6
J Java: Installer für Mods programmieren Allgemeine Java-Themen 5
J Java eigenen Button programmieren (ob Cursor im Rechteck ist oder nicht..../button pressed or not) Allgemeine Java-Themen 6
P Effizientes Programmieren - oder Windows Autostart fürs Herunterfahren Allgemeine Java-Themen 11
A Update Software programmieren Allgemeine Java-Themen 1
G Objekotorientiertes Programmieren / Lose Kopplung Allgemeine Java-Themen 5
G PC Fernbedienung programmieren Allgemeine Java-Themen 6
I Dringend nachhilfe in programmieren gesucht!!!!!!!! Allgemeine Java-Themen 1
I Dringend nachhilfe in programmieren in mannheim gesucht!!!!! Allgemeine Java-Themen 3
L COM Schnittstelle in Java programmieren Allgemeine Java-Themen 4
U BlueJ NXT Projekt programmieren Allgemeine Java-Themen 0
V Abwesenheitsliste programmieren - Ideen? Allgemeine Java-Themen 11
P KI für TicTacToe programmieren > Probleme Allgemeine Java-Themen 2
J (Java3D) Einen Faden programmieren - Logikproblem Allgemeine Java-Themen 5
M Android Programmieren Allgemeine Java-Themen 11
B Virtualisierung Programmieren Allgemeine Java-Themen 3
B Shortcut Erkennung programmieren Allgemeine Java-Themen 5
K Parallel programmieren mit ExecutorService Allgemeine Java-Themen 41
T Takuzu Spiel programmieren Allgemeine Java-Themen 4
L CSV Beziehungen programmieren Allgemeine Java-Themen 7
P wie logisch Programmieren? Allgemeine Java-Themen 6
K Programmieren anfangen. Allgemeine Java-Themen 21
J Problem mit Programmieren in Eclipse Allgemeine Java-Themen 5
E Klassen Mitgliederverwaltung programmieren Allgemeine Java-Themen 6
N Abkürzung STRG-G zu programmieren Allgemeine Java-Themen 4
P Java auf dem Handy programmieren Allgemeine Java-Themen 16
truesoul Sudoku programmieren Allgemeine Java-Themen 23
K sauber und schön programmieren Allgemeine Java-Themen 2
X Spiele für Handys programmieren Allgemeine Java-Themen 2
J Abbuchung vom Konto programmieren Allgemeine Java-Themen 6
P Fortgeschritten Java programmieren Allgemeine Java-Themen 2
J Dymnamische Programmieren. Allgemeine Java-Themen 4
MQue Schnittstelle programmieren Allgemeine Java-Themen 2
D brauch hilfe ! bei Spiele Programmieren Allgemeine Java-Themen 5
F Autorennen programmieren Allgemeine Java-Themen 5
M Intervall Programmieren ? Allgemeine Java-Themen 3
leifg Rekursiv mit Threads Programmieren Allgemeine Java-Themen 2
M Java Programm als Dämon Programmieren. Allgemeine Java-Themen 7
V Avatar selbst programmieren Allgemeine Java-Themen 4
M Generics - besser programmieren, Warnung umgehen Allgemeine Java-Themen 4
G Was als fortgeschrittener Anfänger programmieren? Allgemeine Java-Themen 7
S grafisch programmieren aber nicht applets Allgemeine Java-Themen 13
W Spiel für Handy, normale GUI und Web programmieren Allgemeine Java-Themen 2
P Mehrsprachig programmieren ResourceBundle Allgemeine Java-Themen 6
reibi Eclipse PlugIn selber programmieren Allgemeine Java-Themen 3
T einen SVN- oder QVCS-Client selber programmieren Allgemeine Java-Themen 2
saxman Lego Mindstorms Roboter mit Java programmieren Allgemeine Java-Themen 9
S eine farbpipette programmieren Allgemeine Java-Themen 7
V Mit Java einen Shop programmieren ? Allgemeine Java-Themen 8
M Mehrsprachig programmieren Allgemeine Java-Themen 3
S Programmieren eines Webwatchers Allgemeine Java-Themen 4
D Tainer programmieren Allgemeine Java-Themen 7

Ähnliche Java Themen

Neue Themen


Oben