Teile eines Bildes in ein Image stecken

Status
Nicht offen für weitere Antworten.

Developer_X

Top Contributor
Hi, kann mir jemand sagen, wie man Teile eines bildes ladet?
Also hier :
http://www.raymanpc.com/forum/download/file.php?id=509&mode=view
habe ich ein Bild gefunden, von Raymans, die wenn man sie hintereinander abspielt, schöne Animationen abgeben können, das Problem : ich muss nur einen Teil des riesen Bildes laden, kann mir jemand sagen wie ich das machen soll ?

Ich lade Images eig. immer mit
Java:
ImageIO.read(new File(""))

Ich bin jedem dankbar, der mir helfen kann, Teile eines Bildes in ein Image zu laden.

Danke schon mal, Developer_X
 
Man kann (ohne Krämpfe) erstmal nur das ganze Bild laden, aber sich dann ein kleines BufferedImage mit der gewünschten Größe (z.B. 32x32 pixel) anlegen, und in das Graphics-Objekt, das man sich davon holen kann, den gewünschten Teil des großen Bildes reinmalen. Der drawImage-Aufruf mit den vielen Parametern, nach dem du neulich schon mal gefragt hast...
 
ich habe aber auch mal gelesen, dass man Teile eines Bildes laden kann, das möchte ich lieber wissen, wenns geht.
Denn :
Wenn ich ein Spiel programmiere muss ich dann das Bild je nach größe des Bildschirmes auch zerren, usw... deswegen wäre es mir lieber wenn mir jemand sagen könnte wie das geht
 
also ich habe jetzt folgende Lösung gefunden :
Java:
g.drawImage(test_image_1, 0,0,getSize().width,getSize().height, 0,0,60,63,   this);

Das erste Parameter, das Image, und das Letzt, der ImageObserver, ist ja klar.

Die ersten vier Integer, also "das erste Rectangle" ist zu positionierung, des Images gedacht, und zur größen setzung.

Die zweiten vier Integer, also "das zweite Rectangle" ist zur positionieren, des Ausschnitts gedacht.


Das heißt in diesem Falle male ich ein Image, auf den ganzen Container, ich schneide dazu eine Stelle meines Bildes aus, von den Coordinaten 0,0 eine 60*63 große Fläche aus.

Ich danke jedem, trotzdem für seine Mitarbeit, in diesem Thread.
 
Immer erst in der API-Doc nachgucken. ;-) ImageIO.read(File) lädt doch schon ein BufferedImage:
API-Doc hat gesagt.:
public static BufferedImage read(File input) throws IOException

Returns a BufferedImage as the result of decoding a supplied File with an ImageReader chosen automatically from among those currently registered. The File is wrapped in an ImageInputStream. If no registered ImageReader claims to be able to read the resulting stream, null is returned.
Ebenius
 
mal ne frage geworfen. Wäre es, da es sich um Animationen handelt, nicht besser die Bilder bereits beim Programmstart alle zu laden, um bei Bedarf der Animation nur noch drauf zuzugreifen. Allerdings könnte ich mir vorstellen, dass es da sehr schnell zu massivem Speicherbedarf kommt. Gut, gibt ja einige Games die mal locker knapp 1GB Speicher im laufenden Betrieb benötigen, aber das sollte kein Grund sein bereits alles vorzuladen 😀

Ich würde es aus Gründen der Performance zur Laufzeit zumindest im ersten Anlauf derart probieren und schauen was ich dabei an Ressourcen benötige.
 
Status
Nicht offen für weitere Antworten.

Neue Themen


Zurück
Oben