Git Product home page Git Product logo

bpg-converter's Introduction

This library enable BPG support in the browser, it is based on ServiceWorker and it fallbacks nicely on unsupported browsers.

BPG Converter installs a ServiceWorker that enables the browser to transparently convert BPG images to PNG. Images encoded with BPG are super small while extremely detailed - visual comparison.

Demo

Launch the demo of BPG-Converter and check the DevTools, this is more or less what you'll see on the first access, when the ServiceWorker is still being activated:

First Load

Now reload the page, now the ServiceWorker is active and you'll see something like this

with ServiceWorker

The same image in BPG is just 15Kb, compared to 1Mb of the PNG counterpart!

Installing

  • Download the package using npm install bpg-converter --save
  • Create a worker.js file in the root of your project containing:
importScripts('node_modules/bpg-converter/app/dist/bpg-converter.js');
  • Register the Service Worker from your app using the following code:
if ('serviceWorker' in navigator) {
    navigator.serviceWorker.register('/worker.js', {scope: '/'});
}
  • Done! Have a look at the next session to learn how to properly setup the images.

How it works

Every time a request is issued for an image with extension .bpg.png the ServiceWorker intercepts the request and looks for the same image without the .png extension - so if the request is for someimage.bpg.png the server will receive an HTTP GET for someimage.bpg. It is important to have both the .bpg.png and the .bpg version on the server in order to be able to deal with browsers that does not support ServiceWorker or to serve images on first access, when the ServiceWorker is still not active.

Kudos

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.