A Datasette plugin that renders binary blob images with data-uris, using the render_cell() plugin hook.
Install this plugin in the same environment as Datasette.
$ pip install datasette-render-images
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.
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.
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
}
}
}