DrawingStyle
Defines the visual appearance of annotations in Annotorious. You can set the style on your annotator instance via the setStyle method.
anno.setStyle({ fill: '#00ff00', fillOpacity: 0.25, stroke: '#00ff00', strokeOpacity: 1});To reset the style to the defaults, clear the style like so:
anno.setStyle();Properties
Section titled “Properties”| Property | Type | Default | Description |
|---|---|---|---|
| fill | Color | #ffffff | Shape fill color |
| fillOpacity | number | 0.25 | Shape fill opacity (0 - 1) |
| stroke | Color | #000000 | Shape stroke color |
| strokeOpacity | number | 1 | Shape stroke opacity |
| strokeWidth | number | 1.5 | Stroke with in pixel unit |
You can specify the color in one of three formats:
- RGB: a string in the format
rgb(r, g, b)where r, g, and b are numbers between 0 and 255. - RGBA: a string in the format
rgba(r, g, b, a)where r, g, and b are numbers between 0 and 255, and a is a number between 0 and 1 representing the alpha (opacity) value. - HEX: a string starting with # followed by 3 or 6 hexadecimal digits, e.g.
#ff0000for red.
Dynamic Styling
Section titled “Dynamic Styling”In addition to a static style, setStyle also accepts a function that returns
a style. The function receives an ImageAnnotation
and the AnnotationState as input. You can use this
to implement dynamic styles that depend on the data of your annotation.
anno.setStyle((annotation, state) => { const label = annotation.bodies.find(b => b.purpose === 'tagging')?.value;
// If the annotation has an 'important' label, make it red const color = label === 'important' ? '#ff0000' : '#ffffff';
const opacity = state.selected ? 0.9 : 0.25;
return { fill: color, fillOpacity: opacity, stroke: color, strokeOpacity: 1 }});