Generate Ishihara test plate images for color vision deficiency testing.
npm i @mtillmann/ishihara
The async ishihara
function takes an options-object (see below) and returns an instance of CirclePacker
from the circlepacker-package.
Use any of CirclePacker
's output helper methods to render the image.
You can pass a CirclePacker-options-object inside the options.circlePackerOptions
property.
import ishihara from '@mtillmann/ishihara';
const image = (await ishihara()).asCanvas();
document.body.appendChild(image);
//or
ishihara().then((image) => {
document.body.appendChild(image.asCanvas());
});
<script type="module">
import ishihara from '.../@mtillmann/ishihara/dist/index.bundle.js';
const image = (await ishihara()).asCanvas();
document.body.appendChild(image);
</script>
<script src=".../@mtillmann/ishihara/dist/index.bundle.iife.js"></script>
<script>
const image = (await ishihara()).asCanvas();
document.body.appendChild(image);
</script>
The ishihara
function takes an options object with the following properties:
Option | Type | Default | Description |
---|---|---|---|
circlePackerOptions | Partial<circlePackerOptions> | {} | Options for the CirclePacker |
textColors | string[] | ['#ffffff'] | Colors for the text |
backgroundColors | string[] | ['#000000'] | Colors for the background |
text | string | '8' | Text to display, max 2 characters |
font | string | 'bold 256px sans-serif' | Font for the text (see) |
radius | number|'auto' | 'auto' | Radius of the circles, 'auto' will calculate the radius based on the text size |
padding | number|string | '20%' | Padding around the text, can be a number or a percentage |
margin | number|string | '10%' | Margin around the image, can be a number or a percentage |
debug | boolean | false | renders debug image with same output api as CirclePacker |