Webhack

Javascript und CSS per PNG packen

Um möglichst viel Javascript- und CSS-Code in 10 KByte unterzubringen, setzt Entwickler Alex Le auf einen Trick: Er verpackt Javascript und CSS in einer PNG-Datei und nutzt die entsprechenden Kompressionsroutinen des Browsers.

Anzeige

Für seinen Beitrag im Rahmen des Wettbewerbs 10K Apart griff Le eine Idee von Jacob Seidelin alias Nihilogic auf: Dieser hatte 2008 gezeigt, wie sich Javascript mit Hilfe einer PNG-Grafik packen lässt. So gelang es ihm damals, ein kleines in Javascript realisiertes und direkt im Browser ablaufendes Super-Mario-Spiel von 14 auf 8 KByte zu komprimieren. Die Größe der Javascript-Bibliothek Prototype konnte er so von 123 KByte auf 30 KByte reduzieren.

Dabei wird aus dem Javascript- und CSS-Code eine PNG-Datei erzeugt. Dazu wird jedem ASCII-Zeichen ein Wert zwischen 0 und 255 zugeordnet und ein Pixel mit entsprechender Farbe erzeugt. So entsteht ein Bild, das augenscheinlich nur Rauschen enthält.

Um die so gepackten Daten im Browser zu entpacken, wird das Bild in ein Canvas-Objekt gezeichnet. Der Browser entpackt dabei die Daten automatisch, so dass der Code wieder im Klartext zur Verfügung steht und aus dem Canvas-Objekt ausgelesen werden kann.

Die Technik griff Le auf, um eine möglichst komplexe Demo in 10 KByte Code unterzubringen. Sämtlicher HTML-, Javascript- und CSS-Code sowie das notwendige HTML dürfen für den Wettbewerb zusammen nur 10.240 Byte umfassen und müssen komplett im Browser laufen, ohne Rückgriff auf einen Server.

So entstand ein Build-Script, das sämtliche Javascript- und CSS-Dateien mit Hilfe des YUI-Compressors minifiziert, in einen einzelnen String umwandelt und diesen anschließend in ein PNG-Bild umwandelt.

Den durch den Trick gewonnenen Platz innerhalb der 10-KByte-Grenze nutzte Le, um seinen Githubfinder zu implementieren, sein eigentlicher Wettbewerbsbeitrag. Mit der Applikation im Stil von Apples Finder lassen sich Git-Repositories erkunden.

Relevant ist der Trick allerdings in erster Linie für entsprechende Wettbewerbe, um mit allen für einen Wettbewerbsbeitrag notwendige Dateien unter dem gesetzten Limit zu bleiben und den Aufwand einer eigenen Routine zum Entpacken zu sparen.


fr.member 17. Sep 2010

wohl kaum... kkrieger ist auf basis des werkkzeug3 entstanden. der typ, wie du ihn...

Dr Wissen 26. Aug 2010

Bitte die AJAX-Software neu starten

keule1234 24. Aug 2010

JavaScript ist turing vollständig - im Prinzip kann man damit alles erdenkliche machen...

0X00140E 24. Aug 2010

Also in svg kann man javascript einbetten, ich frage mich was wohl gefährlicher ist...

2.null 23. Aug 2010

Wo kann man das ganze herunterladen? Was braucht man alles um die PNG's zu erstellen?

Kommentieren




Anzeige
  1. IT-Prozessmodelliererin/IT-P- rozessmodellierer
    Otto-von-Guericke-Universität Magdeburg, Magdeburg
  2. Produktsoftwareentwickler (m/w)
    E.G.O. Elektro-Gerätebau-GmbH, Oberderdingen
  3. Projektleiter IT (m/w)
    Travian Games GmbH, München
  4. Softwareentwickler (m/w) TargetLink Code-Generator
    dSPACE GmbH, Paderborn

 

Detailsuche


Folgen Sie uns
       

Meistgelesen
  1. Gema-Vermerk

    Youtube sperrt irrtümlich Acta-Video von Bruno Kramm

  2. IBM-Mainframe

    Nasa schaltet letzten Großrechner ab

  3. Spielebranche

    Diskussion über "stinkende Gamer"

  4. Desktop-Roadmap

    Mozilla hat mit Firefox 2012 viel vor

  5. Samsung Galaxy Tab 2

    7-Zoll-Tablet mit Android 4.0 und Glonass-Unterstützung


Meistkommentiert
  1. Kommentare: 270 | letzter Beitrag 13.02. 23:28

  2. Kommentare: 188 | letzter Beitrag 04:17 Uhr

  3. Kommentare: 178 | letzter Beitrag 13.02. 22:01

  4. Kommentare: 116 | letzter Beitrag 13.02. 18:47

  5. Kommentare: 96 | letzter Beitrag 13.02. 16:40

Mehr


  1. Tablet-Nachfolger

    iPad-3-Teile aufgetaucht

  2. Jugendschutz

    Filtersoftware von Jusprog und Telekom staatlich anerkannt

  3. Gema-Vermerk

    Youtube sperrt irrtümlich Acta-Video von Bruno Kramm

  4. Deutsche Post

    Zusatzfunktionen beim E-Postbrief dauern länger

  5. Gnome

    Neue Spezifikation für Fensterlayout

  6. Samsung Galaxy Tab 2

    7-Zoll-Tablet mit Android 4.0 und Glonass-Unterstützung

  7. IBM-Mainframe

    Nasa schaltet letzten Großrechner ab

  8. Appmenu Runner

    Head-Up Display auch in KDE

  9. Galaxy S2 mit Android 2.3.6

    Update wegen Abstürzen zurückgezogen?

  10. Fair Labor Association

    Apple lässt Foxconn überprüfen



Haben wir etwas übersehen?

E-Mail an news@golem.de


Spielebranche: Gaming-Standort Bayern sucht den Reset-Knopf
Spielebranche
Gaming-Standort Bayern sucht den Reset-Knopf

Das Branchentreffen Munich Gaming fällt 2012 aus, der Deutsche Computerspielepreis wird neu verhandelt, die Förderung umstrukturiert: Das Bundesland Bayern will sich in Sachen Games neu aufstellen. Staatskanzleichef Thomas Kreuzer hat sich auf einer Besuchstour auch Kritik von Publishern angehört.

  1. Splash Damage Brink-Macher gründen Middleware-Studio
  2. Hawken Grundsätzlich kostenloser Mech-Kampf ab dem 12.12.12
  3. Clash of Realities 2012 Wissenschaftler und Computerspiele

IMHO: Windows 8 - Microsofts Befreiungsschlag
IMHO
Windows 8 - Microsofts Befreiungsschlag

"Windows Reimagined", so bezeichnet Microsoft Windows 8. Es ist die größte Veränderung von Microsofts Betriebssystem seit Windows 95 und soll mit neuem UI und dem neuen API WinRT zum großen Befreiungsschlag für Microsoft werden.

  1. Beta Consumer Preview von Windows 8 am 29. Februar 2012
  2. Windows Explorer Windows 8 Beta mit weiteren Verbesserungen
  3. Sensor-Fusion Windows 8 soll Sensornutzung vereinfachen

Test PS Vita: Ausstattungswunder mit Speicherproblem
Test PS Vita
Ausstattungswunder mit Speicherproblem

Zwei Analogsticks und starke Grafik, Berührungs- und Bewegungssteuerung, UMTS und Bluetooth: Sony Computer Entertainment packt in den Nachfolger der Playstation Portable so gut wie alles, was irgendwie Sinn ergibt - nur Speicher etwa für Savegames fehlt der PS Vita von Haus aus.

  1. Playstation Network Umbenennung der Konten und neue Firmware

Zum Artikel