Hallo Leute,
ich habe hier ein kleines Problem und komme nicht so recht dahinter.
Ich versuche ein Bild zeichnen zu lassen, dass ich vorher in ein int-Array gespeichert habe.
Breite und Höhe sind auch bekannt.
Die RGB-Werte sind entsprechend gespeichert, also x[0] = rot-Wert, x[1] = grün, x[2] = blau usw.
Wenn ich es so versuche wie bis jetzt, dann bekomme ich nen schwarzen Kasten raus und nicht
das schöne rote auto, dass das Bild zeigt
Hier mal der Code:
Hat jemand nen vorschlag?
Oder einfach nur tipps wie man´s schöner machen könnte?
Prämisse ist aber, dass ich das Bild aus dem Int-Array lesen muss...
Vielen Dank schon mal,
MfG
Roland
ich habe hier ein kleines Problem und komme nicht so recht dahinter.
Ich versuche ein Bild zeichnen zu lassen, dass ich vorher in ein int-Array gespeichert habe.
Breite und Höhe sind auch bekannt.
Die RGB-Werte sind entsprechend gespeichert, also x[0] = rot-Wert, x[1] = grün, x[2] = blau usw.
Wenn ich es so versuche wie bis jetzt, dann bekomme ich nen schwarzen Kasten raus und nicht
das schöne rote auto, dass das Bild zeigt
Hier mal der Code:
Code:
import java.awt.BorderLayout;
import java.awt.Color;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.WindowConstants;
public class PicViewer extends JFrame{
public PicViewer () {
this.setTitle("PicViewer");
this.setSize(300, 200);
this.setResizable(false);
this.setBackground(new Color(100,100,100));
this.setLocation(100, 50);
this.setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);
// content
JPanel panel = new JPanel(new BorderLayout());
this.add(panel);
this.setVisible(true);
}
public void draw(int[] pixels, int width, int height) {
int widthm3 = width*3;
for (int i = 0; i < pixels.length; i+=3) {
int r = pixels[i];
int g = pixels[i+1];
int b = pixels[i+2];
Color z = new Color(r, b, g);
this.getGraphics().setColor(z);
this.getGraphics().drawLine((i%widthm3)/3, i/widthm3, (i%widthm3)/3, i/widthm3);
}
}
}
Hat jemand nen vorschlag?
Oder einfach nur tipps wie man´s schöner machen könnte?
Prämisse ist aber, dass ich das Bild aus dem Int-Array lesen muss...
Vielen Dank schon mal,
MfG
Roland