datasette-render-images by simonw

114 downloads this week        Star

README source code

datasette-render-images

PyPI Changelog Tests License

A Datasette plugin that renders binary blob images with data-uris, using the render_cell() plugin hook.

Installation

Install this plugin in the same environment as Datasette.

$ pip install datasette-render-images

Usage

If a database row contains binary image data (PNG, GIF or JPEG), this plugin will detect that it is an image (using the imghdr module and render that cell using an <img src="data:image/png;base64,..."> element.

Here's a demo of the plugin in action.

Creating a compatible database table

You can use the sqlite-utils insert-files command to insert image files into a database table:

$ pip install sqlite-utils
$ sqlite-utils insert-files gifs.db images *.gif

See Fun with binary data and SQLite for more on this tool.

Configuration

By default the plugin will only render images that are smaller than 100KB. You can adjust this limit using the size_limit plugin configuration option - for example, to increase the limit to 1MB (1000000 bytes) use the following in metadata.json:

{
    "plugins": {
        "datasette-render-images": {
            "size_limit": 1000000
        }
    }
}