Image spiegeln

ganonlight

Mitglied
Ich weiß, dazu kann man was in google finden, auch einen Thread hier im Forum. Aber da Thema scheint ja doch nicht ganz so einfach zu sein. Ich hab auch schon was von den Vorschlägen ausprobiert, hat aber nicht so richtig geklappt. Ohne Ausprobieren kann ich auch nicht beurteilen, ob das jetzt funktioniert oder nicht und ich hab nicht wirklich Zeit, um alle Vorschläge, die ich gefunden hab, auszutesten. 8/
Jedenfalls gehts um folgendes: Ich versuch grade ein Beat em up zu programmieren und da muss ich natürlich unterscheiden, ob der Character nach links oder rechts schaut. Zuerst wollte ich einfach jeweils 2 Bilder speichern, eins für links, eins für rechts. Aber am Ende soll man ja schon einige Attacken zur Verfügung haben und dann müsste ich für jeden Teil einer Animation 2 Bilder speichern, und ich weiß nicht, ob das besonders gut gelöst wäre..
Wenn nicht, würd ich eben gern Bilder spiegeln können. Und zwar so, dass die x-Position an der gleichen Stelle bleibt, also nur das Bild umgedreht wird.
 

ganonlight

Mitglied

Ich könnte schon immer zwei machen, aber ich hab auch gehofft, dass ich mir dadurch ein bisschen Arbeit spare und es auch nicht gleich immer eine NullPointer Exception gibt, wenn ich einmal eine SPiegelung vergessen habe.
Den letzten Vorschlag der Seite hab ich schon ausprobiert. Irgendwie hat da nicht so recht funktioniert, die x-Koordinate hat sich zwar nicht geändert, aber das gespiegelte Bild war irgendwie trotzdem weiter rechts, keine Ahnung wieso.

Ultimate Java Image Manipulation

unter dem punkt "flipping images" solltest du genau das finden was du suchst. falls nicht, einfach nochmal bescheid sagen :)

Ich versteh nicht, was ich davon machen soll. Das:
Java:
# drawImage(Image img, int dx1, int dy1, int dx2, int dy2, int sx1, int sy1, int sx2, int sy2, ImageObserver observer);  
#   
#     g.drawImage(<i>The Source Image</i>, 0, 0, <i>image width</i>, <i>image height</i>, <i>image width</i>, 0, 0, <i>image height</i>, null);  
#     <b><i>as opposed to the unflipped way</i></b>  
#   
#     g.drawImage(<i>The Source Image</i>, 0, 0, <i>image width</i>, <i>image height</i>, 0, 0, <i>image width</i>, <i>image height</i>, null);

oder das:

Java:
   1. public static BufferedImage horizontalflip(BufferedImage img) {  
   2.         int w = img.getWidth();  
   3.         int h = img.getHeight();  
   4.         BufferedImage dimg = new BufferedImage(w, h, img.getType());  
   5.         Graphics2D g = dimg.createGraphics();  
   6.         g.drawImage(img, 0, 0, w, h, w, 0, 0, h, null);  
   7.         g.dispose();  
   8.         return dimg;  
   9.     }

Das erste hab ich ja eigentlich schon ausprobiert, aber wozu soll jetzt das zweite gut sein (wozu z.B. return dimg ???)? Ich blick da grad gar nicht durch ???:L
 

Atze

Top Contributor
also das erste ist die signatur der drawImage methode. :) damit musst du nichts machen

ich habs jetzt selber nicht probiert, aber die methode
Code:
horizontalflip(BufferedImage img)
sollte ein bufferedImage erwarten und es dir gespiegelt zurückgeben :)
 

ganonlight

Mitglied
Ok, ich hab da grad nur ein Problem:
Vorher hab ich das Image einfach so erstellt:
Java:
bildName = "xy.png";
ImageIcon b = new ImageIcon( getClass().getResource( bildName ) );
bild = b.getImage();
Aber wie mach ich das denn bei BufferedImage? Ich find da grad nix.
 

ganonlight

Mitglied
Laut der Seite sollte es so gehn:
Java:
BufferedImage bild = null;
        try {
            bild = ImageIO.read( new File( bildName ) );
        }
        catch (IOException e){
            System.out.println( "War wohl nix!" );
        }

Tuts aber nicht. es kommt immer nur "War wohl nix!".
 

Marco13

Top Contributor
e.printStackTrace();
liefert manchmal hildreiche Infos (in diesem Fall wohl nicht, nur allgemein).

new File("./src/"+bildName )
sollte gehen. Allerdings legt man Bilder i.a. nicht ins "src", sondern in ein Unterverzeichnis wie "data" oder "images". Wenn das ganze später ein Applet werden soll, sag bescheid, da muss man ein bißchen aufpassen.
 

ganonlight

Mitglied
Weiß gar nicht genau, was ein Applet ist, wahrscheinlich nicht.^^'
Aber das funktioniert jetzt schon mal, danke an euch^^
Allerdings hab ich jetzt schon wieder ein Problem:
Java:
public static BufferedImage spiegeln( BufferedImage b ) {
        int w = b.getWidth();
        int h = b.getHeight();
        BufferedImage dimg = new BufferedImage( w, h, b.getType() );
        Graphics2D g = dimg.createGraphics();
        g.drawImage( b, 0, 0, w, h, w, 0, 0, h, null );
        g.dispose();
        return dimg;
   }

Hier krieg ich die Fehlermeldung:
PHP:
Exception in thread "AWT-EventQueue-0" java.lang.IllegalArgumentException: Unknown image type 0
        at java.awt.image.BufferedImage.<init>(BufferedImage.java:492)
        at Zeichenflaeche.spiegeln(Zeichenflaeche.java:45)
        at Zeichenflaeche.paintComponent(Zeichenflaeche.java:35)
        at javax.swing.JComponent.paint(JComponent.java:1006)
        at javax.swing.JComponent.paintChildren(JComponent.java:843)

"at Zeichenflaeche.spiegeln(Zeichenflaeche.java:45)" bezieht sich auf die Zeile 4 oben im Java-Code.
 
Zuletzt bearbeitet:

AmunRa

Gesperrter Benutzer
Diese Fehlermeldung hab ich auch öffters mal bekommen, wenn ich kein JPG Bild gelesen habe, sondenr ein GIF oder was anderes Leg dein BufferedImage am Besten mit diesem Typ an
Java:
 BufferedImage dimg = new BufferedImage( w, h, BufferedImage.TYPE_INT_ARGB);
 

Atze

Top Contributor
ja, rbg ist schon völlig ok, ist es wahrscheinlich eh in den meisten fällen. les es dann halt vorher aus, wenns != 0 ist kannst es ja setzten. falls es null ist, einfach rgb reinsetzten. oder grundsätzlich rgb und verzichte auf das auslesen, wenns nie was spezielles ist.
 

ganonlight

Mitglied
Diese Fehlermeldung hab ich auch öffters mal bekommen, wenn ich kein JPG Bild gelesen habe, sondenr ein GIF oder was anderes Leg dein BufferedImage am Besten mit diesem Typ an
Java:
 BufferedImage dimg = new BufferedImage( w, h, BufferedImage.TYPE_INT_ARGB);

Stimmt, ich hab immer .png genommen.
Jetzt klappt alles, danke nochmal an euch :)
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
G Area mit Teil-Image füllen Java Basics - Anfänger-Themen 0
B Image Matching in Memory Minigame Java Basics - Anfänger-Themen 7
J JLabel bzw. Image Icon mit KeyEvent bewgen Java Basics - Anfänger-Themen 9
Butzibu Image Loader lädt nicht alle Bilder: Java Basics - Anfänger-Themen 4
Schniffi Nur bestimmte Bilder aus einem Array auf Image Button anzeigen lassen Java Basics - Anfänger-Themen 3
T Image Icon Java Basics - Anfänger-Themen 3
K File (png) in Image laden Java Basics - Anfänger-Themen 3
M Image löschen Java Basics - Anfänger-Themen 2
G Image in Vordergrund Java Basics - Anfänger-Themen 3
B InputStream (PDF) nach Image (PNG / JPG) konvertieren? Java Basics - Anfänger-Themen 2
S Image Datei selektieren und in Projekt Verzeichnis abspeichern/kopieren Java Basics - Anfänger-Themen 16
N Best Practice Image recognition fuzzy Superhash berechnen Java Basics - Anfänger-Themen 1
H Image laden Java Basics - Anfänger-Themen 4
R Image drehen Java Basics - Anfänger-Themen 1
R Image Teilen Java Basics - Anfänger-Themen 3
B Image laden im GridBagLayout Java Basics - Anfänger-Themen 3
N Image von Resource wird nicht geladen Java Basics - Anfänger-Themen 2
N Datentypen Image zu Byte-Array Java Basics - Anfänger-Themen 4
F Image wird nicht gezeichent?! Java Basics - Anfänger-Themen 21
N Hintergrund image mit .setContentPane Java Basics - Anfänger-Themen 6
W aus Methode auf JLabel zugreifen und Image verändern Java Basics - Anfänger-Themen 1
S buffered image Java Basics - Anfänger-Themen 18
V Scale displayed Image via JCheckBox Java Basics - Anfänger-Themen 1
I Resize Image - Einlesen von InputStream Java Basics - Anfänger-Themen 3
M Image Download klappt nicht mehr Java Basics - Anfänger-Themen 4
Chava Testprojekt.Text.Image.Button Java Basics - Anfänger-Themen 4
S Image nach MausMotion rotieren Java Basics - Anfänger-Themen 7
L Erste Schritte Java Image und Video-Slideshow GUI Java Basics - Anfänger-Themen 3
D Kleinere Positionsangabe als einzelne Pixel bei Image? Java Basics - Anfänger-Themen 28
S Image in Panel laden Java Basics - Anfänger-Themen 12
H Prüfen, ob jpg image schon vorhanden ist, bevor es geladen wird Java Basics - Anfänger-Themen 13
V Image Crawler Java Basics - Anfänger-Themen 3
P Erste Schritte Buffered Image splitten und darstellen Java Basics - Anfänger-Themen 2
P Erste Schritte Image anzeigen in ausführbarer jar mit der Toolkit class Java Basics - Anfänger-Themen 8
T udp -> bytearray -> image -> ausgabe via frame Java Basics - Anfänger-Themen 6
A Image (Bitmap) in String (für XML) Java Basics - Anfänger-Themen 7
F Buffered Image über Socket versenden Java Basics - Anfänger-Themen 6
T Image ist Null - warum? Java Basics - Anfänger-Themen 18
V Image -> 2D Array (int [][]) Java Basics - Anfänger-Themen 4
L Image laden und auf jPanel ausgeben Java Basics - Anfänger-Themen 7
V FileInputStream auf ein swt.Image Java Basics - Anfänger-Themen 6
A Wie kann man etwas von Typ Image wieder löschen? Java Basics - Anfänger-Themen 7
F Image übertragen und zeichnen Java Basics - Anfänger-Themen 8
G Problem mit Image.IO.read( File ) Java Basics - Anfänger-Themen 3
Y Trotz add wird Image in GradBagLayout nicht angezeigt Java Basics - Anfänger-Themen 5
Spin Image helper Java Basics - Anfänger-Themen 6
M Image Metadaten setzen Java Basics - Anfänger-Themen 2
Spin Backgrond Color von Image ermitteln Java Basics - Anfänger-Themen 2
C Image draw... Java Basics - Anfänger-Themen 7
M Image-Icon Ändern Java Basics - Anfänger-Themen 15
J Image upload auf ImageShack,TinyPic usw. Java Basics - Anfänger-Themen 11
R Image laden die Zweite Java Basics - Anfänger-Themen 4
R Image laden Java Basics - Anfänger-Themen 10
M Image zeichenen mit Double Werten Java Basics - Anfänger-Themen 4
B polyline auf buffered image malen Java Basics - Anfänger-Themen 2
G Image to File Java Basics - Anfänger-Themen 4
T Image Position erkennen Java Basics - Anfänger-Themen 6
Spin Image skalieren Java Basics - Anfänger-Themen 2
Spin Background Image Java Basics - Anfänger-Themen 2
K Image / drawImage Java Basics - Anfänger-Themen 2
P Buffered Image, Bereich ausschneiden Java Basics - Anfänger-Themen 3
F Image Editor Java Basics - Anfänger-Themen 2
R Image aus jar laden (dieses mal awt) Java Basics - Anfänger-Themen 19
B Image flimmert Java Basics - Anfänger-Themen 4
Povlsen84 Image exakt erzeugen Java Basics - Anfänger-Themen 5
B Teile einer Image in neue Image kopieren Java Basics - Anfänger-Themen 4
X ARGB Werte auslesen aus Image Java Basics - Anfänger-Themen 2
O Image Loader laedt bild nicht Java Basics - Anfänger-Themen 11
H String to image! Java Basics - Anfänger-Themen 6
H2SO3- image beim awt frame wegmachen Java Basics - Anfänger-Themen 2
M Probleme mit Manifest und Image Java Basics - Anfänger-Themen 2
T Java Bilderverwaltung - Image Fetcher Problem Java Basics - Anfänger-Themen 4
E Image in Datei speichern bzw anzeigen Java Basics - Anfänger-Themen 5
G Image laden Java Basics - Anfänger-Themen 16
O Drag & Drop mit Image? Java Basics - Anfänger-Themen 2
G Image/-Icon wird nicht auf JPanel angezeigt Java Basics - Anfänger-Themen 4
M Image aus JPanel Java Basics - Anfänger-Themen 2
G Kompletten (image) Array löschen Java Basics - Anfänger-Themen 14
P Fileinputstream to image? Java Basics - Anfänger-Themen 3
G Image Problem Java Basics - Anfänger-Themen 5
G Image Java Basics - Anfänger-Themen 3
M draw.Image Java Basics - Anfänger-Themen 11
O Image laden Java Basics - Anfänger-Themen 6
G Image Java Basics - Anfänger-Themen 2
S Image-Datei mit relativem Pfad angeben Java Basics - Anfänger-Themen 3
S Botton und Image kombinieren Java Basics - Anfänger-Themen 3
S import javax.image.io.*; funktioniert nicht Java Basics - Anfänger-Themen 28
D Image drehen Java Basics - Anfänger-Themen 6
DeeDee0815 Uncaught error fetching image Java Basics - Anfänger-Themen 2
A Image erstellen Java Basics - Anfänger-Themen 3
N Grösse eines Image ändern? Java Basics - Anfänger-Themen 4
I Image Dateinformationen auslesen Java Basics - Anfänger-Themen 7
A image uploader applet Java Basics - Anfänger-Themen 10
S image speichern Java Basics - Anfänger-Themen 12
D ImageIO metadata auslesen aus png image Java Basics - Anfänger-Themen 2
G Ausmaße eines Image-Object herrausfinden Java Basics - Anfänger-Themen 4
R Einem Image-Object Alpha-Transparenz hinzufügen Java Basics - Anfänger-Themen 3
S Image in byte[] umwandeln? Java Basics - Anfänger-Themen 2
G Ein Image langsam einblenden und nach 5 Sekunden ausblenden? Java Basics - Anfänger-Themen 10
U Image einlesen Java Basics - Anfänger-Themen 3

Ähnliche Java Themen

Neue Themen


Oben