[Java] GIFs Frame für Frame auslesen

Heute bin ich in ein Problem gelaufen das eigentlich keines ist aber man bei Oracle nicht auf Anhieb die richtige Lösung findet.

Wenn man bei Google danach sucht kommt man eventuell bei stackoverflow raus wo man auf den GIFImageReader verwiesen wird und man wundert sich hinterher warum seine IDE den GIFImageReader nirgends finden kann oder eine Fehlermeldung wie

Access restriction: The constructor GIFImageReader(ImageReaderSpi) is not accessible due to restriction on required library C:\Program Files\Java\jre6\lib\rt.jar.

ausspuckt. GIFImageReader ist eigentlich auch totaler Quatsch! Braucht man nicht! Vergesst es einfach wieder. Was man wirklich braucht ist auf dieser Seite zu finden: docs.oracle.com/javase/1.4.2/docs/guide/imageio/spec/apps.fm3.html.

Recht simpel:

Iterator<ImageReader> readers = ImageIO.getImageReadersByFormatName( "gif" );
ImageReader reader = readers.next();

ImageInputStream iis = ImageIO.createImageInputStream( this.getClass().getResourceAsStream( "animation.gif" ) );
reader.setInput( iis, false );

int frames = reader.getNumImages( true );

for( int i = reader.getMinIndex(); i < frames; i++ ) {
	BufferedImage bi = reader.read( i );
	// Do something with the frame!
}

Fertig! Man holt sich eine Liste der ImageReader die auf das Format “gif” passen und holen uns den ersten, da es gleichzeitig auch der einzige ist.
Danach holen wir uns unseren ImageInputStream aus einer lokalen Resource und packen sie in den Reader. Dieser teilt das Bild automatisch in die Einzelbilder auf die man dann per Index-Id abrufen kann.

[Update] BF3rconMobile 0.0.3

Im heutigen Update wird die Spieleransicht abgeschlossen.
Bannen, töten, kicken und eine Squadansicht!

Link: pakldev.de/rconmobile
Source: auf github

[Update] BF3rconMobile 0.0.2_2

Noch ein kleines Update für BF3rconMobile:

Oberfläche für die Spieler-Ansicht erstellt und ein paar Daten wie ClanTag, DogTag und Rang werden aus dem Battlelog abgerufen.

Link: pakldev.de/rconmobile
Source: auf github

[Publishing] BF3rconMobile

Letzte Woche habe ich in Kooperation mit Wolfsterror von DieWeltZockt einen Battlefield3-Server eröffnet.
Da es hierfür eine Administrationsschnittstelle gibt die sich “rcon” nennt ist es relativ einfach über fremde Applikationen den Server zu administrieren.
Eine nette Idee von rconNet ist es daher diese Administration komplett ins Web zu verlagern. rconNet stellt dabei gleichzeitig einen Layer bereit, womit automatisierte Chatnachrichten gesendet werden können.
Leider bietet rconNet hierfür keine Lösung für Zugriff durch Mobilgeräte (vor allem Smartphones).
Es gibt zwar eine rcon-Lösung für iOS-Geräte von phogue, da ich aber Android-Smartphone-User bin ist dies leider keine Option für mich.
Daher entschied ich mich dafür eine Webapplikation zu entwickeln die auf HTML5-fähigen Geräten laufen soll.

Ich präsentiere Ihnen: BF3rconMobile

Zur Zeit kann man damit Serverinformationen, sowie Spieler-Listen abrufen und sogar schon Spieler von Server kicken.
Geplant ist eine Mapliste-Auswahl in der man die nächste Map auswählen sowie direkten Mapchange anstoßen kann. Zudem noch eine einzelne Spieler-Ansicht in der man den ganzen Squad des Spielers einsehen und den Spieler zusätzlich zum kicken bannen oder töten kann

Link: pakldev.de/rconmobile
Source: auf github

[Update/Official Publishing] NetworkMonitor 0.3.2

Das erste Programm dass ich Euch vorstellen möchte ist gleichzeitig auch mein Jüngstes: NetworkMonitor!

Ich wollte eine Applikation mit der ich meinen ein- und ausgehenden Traffic überwachen kann.
Mit NetworkMonitor kann man das. Mit der Auswahlbox kann man ganz einfach das Netzwerkgerät auswählen, dass man überwachen möchte. Für den Fall man hat mehrere.
Obwohl es mit Java geschrieben ist läuft es nur auf Windows 2000/XP/Vista/7(/8) da ich eine Windows-API benutze um die Netzwerk-Informationen abzurufen. Und ich weiß nicht ob es eine solche für Linux oder Mac gibt. Also… Wen jemand etwas darüber weiß, bitte in die Kommentare schreiben.

Download: Version 0.3.2
Source: auf github

Verwendete Librarys: JACOB

The beginning…

Hmmm…
Ich dachte mir ich sollte meine Kreationen besser veröffentlichen und zusammenhalten. Ich hab zwar bisher immer alles auf Twitter veröffentlicht aber ich denke ich muss noch Informationen dazu hinzufügen, und das kann ich einfach nicht auf Twitter.

Also… Los geht’s!