Ebenen in Zeichen-Programm implementieren

Status
Nicht offen für weitere Antworten.

3TageBart

Mitglied
Hallo,
Ich wollte mal wieder eine alte Idee aufgreifen und ein kleines Zeichen-Programm für Pixel-Art programmieren.
Momentan habe ich die Ebenen so implementiert das jede Ebene ein BufferedImage ist und diese werden dann in einem Off-Screen-Image übereinander gezeichnet. Dieses Offscreen-Image wird dann in der paint Methode auf ein Panel gezeichnet und evtl. skaliert.
Wenn man jetzt was zeichnet muss bei jedem mouseDragged Event diese ganze Prozedur wiederholt werden.
Kann man das irgendwie optimieren? Die CPU-Auslastung steigt auf 60% wenn ich eine einfache 1px Linie zeichne...
 

3TageBart

Mitglied
Wo soll ich das denn sonst skalieren? Ist doch egal ob ich das in einer Methode welche in paint() aufgerufen wird skaliere oder direkt in paint().
Skaliert wird auch nur das Endprodukt d.h. ein einzelnes BufferedImage. Dient zur Umsetzung einer Lupen-Funktion ohne Anti Aliasing etc...
 

Marco13

Top Contributor
Naja, skalieren ist sch... aufwändig. Kannst nur mal allgemein über java.net: The Perils of Image.getScaledInstance() drüberschauen (und ggf. nach dem String "this is an example of what not to do" suchen ;) ).

Trotzdem muss es da ja eine Lösung geben.

Wie zeichnest du denn im Moment die Linie? Mit sowas wie
Code:
... mouseDragged(...)
{
    eineEbene.setRGB(x,y,farbe);
    repaint();
}
?!
 

André Uhres

Top Contributor
Ist eine Lösung denkbar, die das Skalieren zumindest während des Zeichnens vermeidet? Dann könnten wir zusätzlich versuchen, immer nur den Teil neuzuzeichnen, der aktualisieren muss (was problematisch sein dürfte, wenn wir dauernd skalieren).
In Malen in Swing Teil 2: ein einfaches Malprogramm - Byte-Welt Wiki wird gezeigt:
- wie mehrfache repaint Anträge zusammengefasst werden
- wie wir den Bereich, der dargestellt wird, einschränken können
 
Zuletzt bearbeitet:

3TageBart

Mitglied
also momentan zeichne ich immer direkt auf dem BufferedImage einer Ebene. Das Bild wird dann zusammengebaut und mit drawImage skaliert (in dem Artikel als "on-the-fly" betitelt). Ich weiß nicht wie ich das skalieren während des Zeichnens vermeiden soll. Denn das ist ja Rastergrafik, d.h. im skalierten Bild ist 1px dann z.B. 10x10 Pixel groß und ich müsste gleichzeitig in das Ebenen-Bild und die skalierte Variante zeichnen.
 

André Uhres

Top Contributor
Wahrscheinlich hab ich da eine Bildungslücke, aber ich versteh nicht ganz, wieso du skalierst, denn das Raster wird ja dadurch verfälscht. Wenn du auf das skalierte Bild zeichnest, dann müsste sich ja das Problem stellen, wie du z.B. 1 px auf 10x10 px überträgst.
 
Zuletzt bearbeitet:

3TageBart

Mitglied
Wenn man mit einem ganzzahligen Faktor ohne Anti-Aliasing skaliert dürfte doch nichts verfälscht werden, oder habe ich da jetzt einen Denkfehler?
von Original auf Skaliert wäre dann : x * Faktor
und von Skaliert auf Original dementsprechend : x/Faktor
 

André Uhres

Top Contributor
Wenn man mit einem ganzzahligen Faktor ohne Anti-Aliasing skaliert dürfte doch nichts verfälscht werden, oder habe ich da jetzt einen Denkfehler?
von Original auf Skaliert wäre dann : x * Faktor
und von Skaliert auf Original dementsprechend : x/Faktor
Naja, wenn einer eine Bildungslücke hat, dann ist dieser Beitrag wohl zu knapp, um sie aufzufüllen :)
Aber vielleicht wissen andere ja mehr darüber.
 

3TageBart

Mitglied
Ich denke ich werde mal eine andere Variante ausprobieren. Ich halte für jede Ebene eine skalierte Variante vor und zeichne dann immer gleichzeitig auf original und Skalierung. So muss nur neu skaliert werden wenn die Zoom-Stufe geändert wird.
Geht zwar zu Lasten des Speichers aber besser als eine CPU-Auslastung von 60%
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
C Zwei Ebenen in Graphics ? AWT, Swing, JavaFX & SWT 0
X Swing JPanel mehrere Ebenen zeichnen AWT, Swing, JavaFX & SWT 13
Y xormode bzw bild in zwei ebenen zeichnen AWT, Swing, JavaFX & SWT 4
S SWT Hierarchie Ebenen in SWT AWT, Swing, JavaFX & SWT 2
K CheckboxTreeViewer - Ebenen nicht unselektierbar machen AWT, Swing, JavaFX & SWT 2
byte Swing: Ebenen zeichnen AWT, Swing, JavaFX & SWT 3
Kaini MVC - Problem mit Ebenen AWT, Swing, JavaFX & SWT 2
D jLayeredPane Ebenen mit dynamischer Größe AWT, Swing, JavaFX & SWT 2
N €-Zeichen wird nicht akzeptiert AWT, Swing, JavaFX & SWT 4
_user_q Gibt es eine Möglichkeit, in Java alle möglichen Zeichen automatisch tippen zu lassen? AWT, Swing, JavaFX & SWT 13
Kohl Jedes Objekt einer JTable um ein Zeichen verkürzen AWT, Swing, JavaFX & SWT 7
F AWT awt KeyEvent - Zeichen direkt nach Eingabe löschen AWT, Swing, JavaFX & SWT 2
L Swing Tastatur zeichen AWT, Swing, JavaFX & SWT 4
A 2D-Grafik Zeichen werden über unabhängingen JRadioButton nicht gefüllt AWT, Swing, JavaFX & SWT 28
I JOptionPane maximale Zeichen einstellen AWT, Swing, JavaFX & SWT 2
L JavaFX ASCII Zeichen /char von KeyEvent erhalten AWT, Swing, JavaFX & SWT 5
C Zeichen eines 6 -Eckes AWT, Swing, JavaFX & SWT 1
S Zeichen ohne paint-Methode AWT, Swing, JavaFX & SWT 2
C JavaFX Tiefgestellte Zeichen in fxml AWT, Swing, JavaFX & SWT 2
B EventHandler für durch Tastenkombination erzeugte Zeichen AWT, Swing, JavaFX & SWT 3
L Ausgabe in JEditorPane mittels HTMLEditorKit zeigt auf bestimmten Systemen falsche Zeichen AWT, Swing, JavaFX & SWT 1
S Swing Warum funktioniert der automatische Zeilenumbruch mit arabischen Zeichen beim JTextPane nicht AWT, Swing, JavaFX & SWT 3
A Zeichen-Steuerelement in Swing AWT, Swing, JavaFX & SWT 0
kaoZ Swing Aktives Zeichen für Spieleprogrammierung ? AWT, Swing, JavaFX & SWT 8
D Swing Manuellen Kreis zeichen AWT, Swing, JavaFX & SWT 22
U Label zeigt nicht überall HTML Zeichen AWT, Swing, JavaFX & SWT 3
R einzelne Zeichen in jTable einlesen AWT, Swing, JavaFX & SWT 10
S SWT [TextBox] Bestimmtes Zeichen entfernen unterbinden AWT, Swing, JavaFX & SWT 3
P readLine solange es mit einem bestimmten Zeichen anfängt AWT, Swing, JavaFX & SWT 5
P Komische Zeichen beim Abspeichern von TextFelder AWT, Swing, JavaFX & SWT 2
Jats Zeichen auf mehrere JPanels AWT, Swing, JavaFX & SWT 7
P 2D-Grafik versch. Rectangles aus array von textfelder zeichen AWT, Swing, JavaFX & SWT 6
DEvent Swing JTextField Anzahl an sichtbaren Zeichen AWT, Swing, JavaFX & SWT 4
D JLabel und JPanel -> Neu zeichen?! oO AWT, Swing, JavaFX & SWT 2
E jTextFiled max 160 Zeichen? AWT, Swing, JavaFX & SWT 4
Luk10 Swing Problem mit Zeichen-Thread AWT, Swing, JavaFX & SWT 8
A Rechteck zeichen AWT, Swing, JavaFX & SWT 4
Q AWT Choice ein Zeichen hinzufügen AWT, Swing, JavaFX & SWT 4
J 2D-Grafik Textbasiertes 2D Spiel, jedes Zeichen manipulierbar AWT, Swing, JavaFX & SWT 7
R 2D-Grafik auf JPanel zeichen - ohne @Override paintComponent AWT, Swing, JavaFX & SWT 6
S Thread.sleep() in einer methode fürs zeichen AWT, Swing, JavaFX & SWT 3
T Zeichen/char in Bild umwandeln und darstellen AWT, Swing, JavaFX & SWT 10
2 Bücher über Zeichen und Baumalgorithmen AWT, Swing, JavaFX & SWT 5
T Zeichen zählen JTextPane AWT, Swing, JavaFX & SWT 4
F Zeichen per Menuitem funktioniert nicht AWT, Swing, JavaFX & SWT 2
V Nur zulässige Zeichen in JTable-Zellen eintragen können AWT, Swing, JavaFX & SWT 2
P Swing Probleme beim Zeichen AWT, Swing, JavaFX & SWT 6
aze JTextfield nur so breit dass alle zeichen sichtbar sind AWT, Swing, JavaFX & SWT 2
P Zeichen abhängig davon, ob sich eine Variable geändert hat AWT, Swing, JavaFX & SWT 2
G Blinkenden Punkt zeichen AWT, Swing, JavaFX & SWT 2
G Viele Fehler beim zeichen AWT, Swing, JavaFX & SWT 5
J JTextPane mit genau 80 Zeichen breite definieren? AWT, Swing, JavaFX & SWT 3
J jTextarea Anzahl Zeichen in einer Zeile begrenzen AWT, Swing, JavaFX & SWT 2
Lazybone CMYK Zeichen AWT, Swing, JavaFX & SWT 12
H Polyline zeichen, aber wie? AWT, Swing, JavaFX & SWT 2
D jTable ausdrucken => € zeichen wird nicht richtig angezei AWT, Swing, JavaFX & SWT 7
H Problem beim zeichen eines TimeSeriesChart mit jfreechart AWT, Swing, JavaFX & SWT 5
K UNICODE ZEICHEN in den SWing-GUIs AWT, Swing, JavaFX & SWT 4
B Dreiecke zeichen AWT, Swing, JavaFX & SWT 3
D Zeichen ein Pixel mit Java2D AWT, Swing, JavaFX & SWT 15
C JFormattedTextField - nur bestimmte Zeichen zulassen AWT, Swing, JavaFX & SWT 3
F Zeichen von Linien, Rechtecken, zb wie in paint AWT, Swing, JavaFX & SWT 2
B Zeichen werden im JFormattedTextField überschrieben AWT, Swing, JavaFX & SWT 3
C PI-Zeichen im JLabel AWT, Swing, JavaFX & SWT 3
G Zeilenumbruch nach n Zeichen in JTextArea AWT, Swing, JavaFX & SWT 24
U kleiner-Zeichen JEditorPanel (war: JOptionPane) AWT, Swing, JavaFX & SWT 5
T JLayerdPane: wie etwas über eine AWT Komponente zeichen? AWT, Swing, JavaFX & SWT 2
N Tastatur Zeichen einlesen ohne sichtbares Fenster AWT, Swing, JavaFX & SWT 8
D JTextPane: "Nichtdruckbare Zeichen" anzeigen & AWT, Swing, JavaFX & SWT 4
R letztes Zeichen aus textfeld auslesen AWT, Swing, JavaFX & SWT 2
M rendern von zeichen AWT, Swing, JavaFX & SWT 4
R Zeichen-Markierungrahmen AWT, Swing, JavaFX & SWT 5
F Eingabe in JPasswordField auf vier Zeichen beschränken AWT, Swing, JavaFX & SWT 3
M Transparentes gif als extra Klasse auf einen JFrame zeichen AWT, Swing, JavaFX & SWT 17
B ComboBox: nur bestimmte Zeichen zulassen AWT, Swing, JavaFX & SWT 5
G Linien in ein Koordinatensystem zeichen AWT, Swing, JavaFX & SWT 7
H funktionen in ein koordinatensystem zeichen AWT, Swing, JavaFX & SWT 5
B Erstes Zeichen in einem String toUpperCase ??? AWT, Swing, JavaFX & SWT 4
bummerland ein zeichen nach einem zeilenumbruch einfügen AWT, Swing, JavaFX & SWT 4
Juelin starten maven javafx programm ohne netbeans AWT, Swing, JavaFX & SWT 38
P AWT Programm funktioniert nicht richtig AWT, Swing, JavaFX & SWT 35
G CAD Programm AWT, Swing, JavaFX & SWT 4
thor_norsk E - Mail Programm AWT, Swing, JavaFX & SWT 2
_user_q Über installDist exportiertes Programm wirft "Unsupported JavaFX configuration" AWT, Swing, JavaFX & SWT 0
CodingBerlin JavaFX Programm läuft nur unter Eclipse AWT, Swing, JavaFX & SWT 1
J Programm findet Resource nicht. AWT, Swing, JavaFX & SWT 6
N Programm Läuft nicht auf anderen Pcs AWT, Swing, JavaFX & SWT 9
imawake Java Paket-Tracking Programm 📦 AWT, Swing, JavaFX & SWT 7
S Lustiges programm schnell coden? AWT, Swing, JavaFX & SWT 2
O Ein Java-Programm mit Swing steuern AWT, Swing, JavaFX & SWT 1
P Swing Programm hängt sich bei Buttondruck auf? (GUI für "Chatbot" erstellen) AWT, Swing, JavaFX & SWT 15
M DragAndDrop - aus Browser ins Programm AWT, Swing, JavaFX & SWT 6
T Java GUI - Würfel Programm AWT, Swing, JavaFX & SWT 6
JojoSand Java Programm wird nicht gestartet - keinen Fehlerhinweis AWT, Swing, JavaFX & SWT 9
SvenPittelkow Programm soll auf JButton warten bis der geklickt wurde AWT, Swing, JavaFX & SWT 1
I Gui in bestehendes Java-Programm AWT, Swing, JavaFX & SWT 11
L JavaFX IntelliJ Standalone Programm exportieren AWT, Swing, JavaFX & SWT 9
Bluedaishi JavaFX Programm start mit zwei scenen bzw Fenster AWT, Swing, JavaFX & SWT 1
M AWT Programm in den Tray minimieren AWT, Swing, JavaFX & SWT 2
steven789hjk543 Swing Weiß jemand, warum dieses Programm nicht funktioniert? AWT, Swing, JavaFX & SWT 7

Ähnliche Java Themen

Neue Themen


Oben