2D-Grafik BufferedImage und operationen darauf

lumo

Top Contributor
Hallo,

ich mach grad ein kleines applet mit graphikeffekten (graustufen)
und hab bis jetzt von der klass Applet die funktion createImage verwendet;
diese methode liefert mir ein INT_RGB Image zurück;

mit dem bild kann ich mein Applet laufen lassen, kein problem.
jetzt hab ich die funktion einfach überschrieben (ohne änderung des typs):

Java:
	@Override
	public BufferedImage createImage(int width, int height) {
		return new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB);
	}

und schon klappt nix mehr (das was voher weiss war ist schwarz und das schwarze ist auch schwarz :-/)
doch det typ des bildes ist der selbe...?!

des weiteren... meine animation ist komplett flüssig, sobald ich nur einen blur filter
Java:
	public void blur(BufferedImage src, BufferedImage dst, int kernelSize) {
		int weight = kernelSize * kernelSize;
		float[] data = new float[weight];
		for (int i = 0; i < data.length; i++) {
			data[i] = 1f / (float) weight;
		}
		Kernel kernel = new Kernel(kernelSize, kernelSize, data);
		ConvolveOp convolve = new ConvolveOp(kernel, ConvolveOp.EDGE_NO_OP,
				null);
		convolve.filter(src, dst);
	}
darauf anwende stockts ohne ende.... und das schon bei ner auflösung von 960x600 ?!
ich habe mal in swt ne komponente geschrieben die bilder gezeichnet hat und die hat 100+fps gezeichnet...
 

Marco13

Top Contributor
Wah, überschreib' mal lieber nicht createImage. Wer weiß wo das noch überall verwendet wird, und wer weiß, was dort für ein Rückgabetyp erwartet wird. Erstell' dir das Image selbst, ggf. auch mit einer eigenen Methode, aber nicht diese überschreiben.

So ein Blur-Filter ist aufwändig. Und die Methode über die allgemeinen Funktionen (Kernel & ConvolveOp) sind SO allgemeingültig, dass sie wohl auch nicht besonders performant sein können. Ggf. kannst du dir eine eigene Convolution schreiben, die Annahmen über das Bildformat macht, und dann entsprechend schneller ist. Ein 960x600-Bild mit einem "relativ großen" Kernel in Echtzeit blurren (mit 100FPS) ist schon ziemlich rechenintensiv, das wirst du auch mit SWT nicht viel schneller hinkreigen als mit einer optimierten ConvolveOp.

Wenn's drauf ankommt könnte man sowas auch mit GPU-Unterstützung machen (auf jocl.org - Samples das vorletzte Beispiel). Das kann sich lohnen, je nach Awendungsszenario...
 

lumo

Top Contributor
Hab's jetzt einzeln erstellt und dir Methode nicht. Ehr überschrieben mit dem selben Ergebnis;
Mein Problem ist, dass ich das Programm dann aus android laufen lassen möchte, also macht's keinen Sinn wenn ich das in meiner swt Komponente mache...

Ich werde morgen mal nen thread machen um zu zeigen was ich mache/will vielleicht hat jemand ne bessere Idee ;-)
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
D BufferedImage resize Allgemeine Java-Themen 16
RalleYTN JOGL Texture in BufferedImage konvertieren Allgemeine Java-Themen 1
M Input/Output BufferedImage vertauscht width und height Allgemeine Java-Themen 6
G BufferedImage und ByteArray Allgemeine Java-Themen 2
P Threads BufferedImage, Thread Concurrency Allgemeine Java-Themen 1
M Problem mit BufferedImage und PrinterJob im Querformat Allgemeine Java-Themen 1
T BufferedImage verändert sich beim Einlsesen Allgemeine Java-Themen 1
M BufferedImage toString() überschreiben Allgemeine Java-Themen 5
Thallius PDF von einem BufferedImage erstellen Allgemeine Java-Themen 1
S BufferedImage vergleich mit Subimage Allgemeine Java-Themen 1
reibi OutOfMemoryError bei Behandlung von BufferedImage's Allgemeine Java-Themen 6
TheSorm BufferedImage spiegeln Allgemeine Java-Themen 3
A BufferedImage einzelne Pixel transparent machen V2.0 Allgemeine Java-Themen 2
S Undoable BufferedImage? Allgemeine Java-Themen 2
K Image zu BufferedImage konvertieren Allgemeine Java-Themen 9
H BufferedImage Invertieren Allgemeine Java-Themen 13
D md5 berechnen für BufferedImage Allgemeine Java-Themen 5
D BufferedImage rotieren Allgemeine Java-Themen 8
TiME-SPLiNTER Binary BufferedImage automatisch croppen Allgemeine Java-Themen 4
F byte[] aus einem BufferedImage Allgemeine Java-Themen 3
0 BufferedImage - Farbton verändern Allgemeine Java-Themen 5
J BufferedImage aus PNG Files haben keinen Type Allgemeine Java-Themen 4
T umwandeln BufferedImage to File Allgemeine Java-Themen 7
reibi BufferedImage nach InputStream Allgemeine Java-Themen 10
Q BufferedImage enzelne Pixel tranzparent machen Allgemeine Java-Themen 2
S BufferedImage mit Transparenten Hintergrund Allgemeine Java-Themen 4
Z Farbe des Pixels rechts unten in einem BufferedImage? Allgemeine Java-Themen 4
R problem! bufferedimage speichern. Allgemeine Java-Themen 7
S BufferedImage als *.tga speichern Allgemeine Java-Themen 3
H Pixel im BufferedImage Manipulieren ? Allgemeine Java-Themen 17
Steev BufferedImage und setRGB() Allgemeine Java-Themen 10
P miese performance bei nem BufferedImage + repaint :( Allgemeine Java-Themen 6
M Drucken mit BufferedImage Allgemeine Java-Themen 9
M Problem mit Durchsuchen von BufferedImage Allgemeine Java-Themen 10
I BufferedImage etc Allgemeine Java-Themen 6
F BufferedImage -> Image Allgemeine Java-Themen 4
G BufferedImage benutzen Allgemeine Java-Themen 6
U BufferedImage.getSubimage ? paintComponent ? Allgemeine Java-Themen 4
T Bilder schnell in BufferedImage laden Allgemeine Java-Themen 4
G BufferedImage zeichnen Allgemeine Java-Themen 4
T BufferedImage aus einem byte-Array? Allgemeine Java-Themen 2
T BufferedImage problem Allgemeine Java-Themen 6
K 32-Bit grayscale BufferedImage Allgemeine Java-Themen 2
T Geschwindigkeit bei Polygonen und BufferedImage Allgemeine Java-Themen 9
F Operationen/Methoden einen WebService im Browser mit Apache Axis aufrufen Allgemeine Java-Themen 4
L Java Mathe Operationen? Allgemeine Java-Themen 10
O Bit-Operationen Allgemeine Java-Themen 6
X intervall-operationen Allgemeine Java-Themen 6
N Frage zu atomaren Operationen ohne Locks Allgemeine Java-Themen 3
ARadauer Bit Operationen in der Praxis Allgemeine Java-Themen 18
G File und Directory Operationen Allgemeine Java-Themen 5
P Integer und Bit-operationen Allgemeine Java-Themen 21
T Performance String-Operationen und StringBuffer (1.4und 1.5) Allgemeine Java-Themen 18
G Vectoren Threads, und Multi Operationen Allgemeine Java-Themen 15
K Server mieten, Berechnungen darauf ausführen Allgemeine Java-Themen 14
S Handschrift einlesen & darauf reagieren OCR Allgemeine Java-Themen 2
S Vector in Vector gespeichert, wie greift man darauf zu? Allgemeine Java-Themen 3

Ähnliche Java Themen

Neue Themen


Oben