Você não pode selecionar mais de 25 tópicos Os tópicos devem começar com uma letra ou um número, podem incluir traços ('-') e podem ter até 35 caracteres.
 
 
 
 

43 linhas
1.0 KiB

  1. var plask = require('plask');
  2. var fs = require('fs');
  3. var omggif = require('./omggif');
  4. if (process.argv.length < 3) throw "Usage: <filename.gif>";
  5. var buf = fs.readFileSync(process.argv[2]);
  6. var gr = new omggif.GifReader(buf);
  7. var pixels = plask.SkCanvas.create(gr.width, gr.height);
  8. plask.simpleWindow({
  9. settings: {
  10. width: 800,
  11. height: 600
  12. },
  13. init: function() {
  14. var canvas = this.canvas, paint = this.paint;
  15. canvas.clear(230, 230, 230, 255); // Draw the background, just once.
  16. },
  17. draw: function() {
  18. var canvas = this.canvas, paint = this.paint;
  19. var frame_num = this.framenum % gr.numFrames();
  20. var frame_info = gr.frameInfo(frame_num);
  21. if (frame_num === 0)
  22. pixels.clear(0, 0, 0, 255);
  23. var start = Date.now();
  24. gr.decodeAndBlitFrameBGRA(frame_num, pixels);
  25. console.log('Decoded and blit frame in: ' + (Date.now() - start) + 'ms');
  26. canvas.drawCanvas(paint, pixels, 0, 0, gr.width, gr.height);
  27. var this_ = this;
  28. setTimeout(function() { this_.redraw(); }, frame_info.delay * 10);
  29. }
  30. });