image.setRGB() zeichnet falsch

Status
Nicht offen für weitere Antworten.

hongkongwuji

Mitglied
Hallo,

ich ziehe Informationen in einem Wertebereich zwischen 0 und 1 aus einer Matrix, aus denen ich ein Bild erzeuge. Diese multipliziere ich mit 255 um auf die gewünschten 8bit zu kommen, die der Typ BufferedImage.TYPE_INT_RGB erwartet.

Probleme:

Wie übergebe ich den Wert für alle drei Kanäle (hätte das gerne zwischen 0 und 255 als Graustufen)? Die Methode erwartet image.setRGB(x,y,int), wie aber übergebe ich die anderen Werte wenn ich ein Farbbild generieren möchte?

Das Bild das ausgegeben wird enthält andere Werte als die, die ich übergebe. Das größte Problem besteht aber darin, dass die Pixel in horizontaler Richtung vom Wert identisch sind!!!??? Auch diese Werte werden korrelt übergeben!! Irgendeine Idee?

Anbei der Code der die Matrix durchläuft und die Pixel setzt:

Code:
for (x_dir = 0; x_dir < valuematrix.length; ++x_dir) {
			for (y_dir = 0; y_dir < valuematrix[x_dir].length; ++y_dir) {
				rgb_f = valuematrix[x_dir][y_dir].getIntense();
				if (rgb_f < 0) {
					rgb_f = 0;
				}
				if (rgb_f > 1) {
				rgb_f = 1f;	
				}
				rgb_f = rgb_f * 255;
				rgb = (int) rgb_f;
				System.out.println("x_y_rgb " + x_dir +" "+ y_dir + " " + rgb + " " +     rgb_f);
				image.setRGB(x_dir, y_dir, rgb);
		
			}// end for 1
		}// end for 2

Hier das Bild das erzeugt wird:


http://www.fotocommunity.de/pc/pc/display/12307672

vielen Dank für Eure Hilfe

Daniel
 

Maeher

Bekanntes Mitglied
Ich würde folgendes vorschlagen:
Code:
image.setRGB(x,y,new Color(r,g,b,a).getRGB());
(Geht auch ohne Alpha Wert)
 

hongkongwuji

Mitglied
Wunderbar, sieht gut aus. Jetzt muss ich nur noch den blöden Versatz rauskriegen.

vielen Dank für Deine schnelle Antwort

Daniel

P.S. Die Fehler sind alle behoben!!!!! nochmals Danke!
 

EgonOlsen

Bekanntes Mitglied
Maeher hat gesagt.:
Ich würde folgendes vorschlagen:
Code:
image.setRGB(x,y,new Color(r,g,b,a).getRGB());
Oder schneller ohne den Umweg über Color:

Code:
image.setRGB(x,y,r<<16|g<<8|b);

Oder auch mit Alpha:

Code:
image.setRGB(x,y,a<<24|r<<16|g<<8|b);
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
T Position eines Image verändern mithilfe eines Timers Spiele- und Multimedia-Programmierung 6
K Video: Per Image Information Spiele- und Multimedia-Programmierung 3
M Image unpainten Spiele- und Multimedia-Programmierung 3
B Bild ohne Image auf die Festplatte streamen Spiele- und Multimedia-Programmierung 4
X Android Slick AE Image Pfad Spiele- und Multimedia-Programmierung 3
A Drehen von einem Image Spiele- und Multimedia-Programmierung 4
C Mouseover Area genau wie Image Spiele- und Multimedia-Programmierung 8
L Slick-Image aus byte-array erzeugen Spiele- und Multimedia-Programmierung 2
0 2D Spiel Welt scrollen bzw Image erweitern Spiele- und Multimedia-Programmierung 2
T jME3: awt.Image <-> jME3.Image Spiele- und Multimedia-Programmierung 7
F nur Ausschnitt eines Image zeichnen Spiele- und Multimedia-Programmierung 9
F Hintergrund bei Image entfernen Spiele- und Multimedia-Programmierung 4
S Image-Einbindung Spiele- und Multimedia-Programmierung 5
StrikeTom .gif animation als image abspielen Spiele- und Multimedia-Programmierung 2
T Glüh effekt um Image Spiele- und Multimedia-Programmierung 9
radiac Aktuelles ScreenBild als Image? Spiele- und Multimedia-Programmierung 6
Stillmatic1985 Buffered Image drucken Spiele- und Multimedia-Programmierung 1
P Culling von Image-Objekten Spiele- und Multimedia-Programmierung 3
E Alternative zu import com.sun.image.codec.jpeg.JPEGCodec ? Spiele- und Multimedia-Programmierung 1
E JPCT background image Spiele- und Multimedia-Programmierung 3
P Grosses Bufferd Image Drucken Print API Spiele- und Multimedia-Programmierung 3
G Image drucken Spiele- und Multimedia-Programmierung 17
S Image will nicht laden Spiele- und Multimedia-Programmierung 3
A Image in BufferedImage konvertieren Spiele- und Multimedia-Programmierung 2
O Image dynamisch erstellen. Spiele- und Multimedia-Programmierung 6
G Punkt in Image auf Transparenz prüfen Spiele- und Multimedia-Programmierung 6
G Bereich im Image löschen Spiele- und Multimedia-Programmierung 4
R Transparente Farbe von (Buffered) Image Spiele- und Multimedia-Programmierung 10
D Welcher Image Typ am besten für 2D-Spiele geeignet? Spiele- und Multimedia-Programmierung 5
O Image konvertieren in monochrom scharz/weiß Spiele- und Multimedia-Programmierung 3
F Image eines bestimmten Bereichs eines JPanels erstellen Spiele- und Multimedia-Programmierung 4
T Spiel als Vollbild starten mit Image als HIntergrund Spiele- und Multimedia-Programmierung 8
O transparente farbe in Image mit Graphics Spiele- und Multimedia-Programmierung 8
S Image to BufferedImage Spiele- und Multimedia-Programmierung 3
D Image.getGraphics() in einem Frame Spiele- und Multimedia-Programmierung 4
T BufferedImage#setRGB #getRGB zu langsam Spiele- und Multimedia-Programmierung 4
S PaintComponent zeichnet in falscher reihenfolge Spiele- und Multimedia-Programmierung 8
X Java zeichnet linien nicht korrekt? Spiele- und Multimedia-Programmierung 22

Ähnliche Java Themen

Neue Themen


Oben