| FazBrowse GitHub Viewer | Trending | | Home |
| Tools: [Download Repo ZIP] [Original HTTPS Page] |
| Name | Name | Last commit date | ||
|---|---|---|---|---|
An Annotorious plugin for drawing arrows. Arrows can be independent annotations, or they can be linked to existing shapes — either on both ends, or on one end only (start or tip). When linked, the relationships are represented in the data model.
Also available: React wrapper
npm install @annotorious/plugin-arrows
import { createImageAnnotator } from '@annotorious/annotorious';
import { mountImagePlugin } from '@annotorious/plugin-arrows';
const anno = createImageAnnotator('sample-image');
const arrowsPlugin = mountImagePlugin(anno, {
// Plugin options (see below)
});
import { createOSDAnnotator } from '@annotorious/openseadragon';
import { mountOSDPlugin } from '@annotorious/plugin-arrows';
const viewer = OpenSeadragon({
// OSD init options
});
const anno = createOSDAnnotator(viewer, {
// Annotorious init options
});
const arrowsPlugin = mountOSDPlugin(anno, viewer, {
// Plugin options (see below)
});
Once installed, the plugin integrates seamlessly with the Annotorious lifecycle. Arrow annotations trigger the same events as other annotations:
Note
clickAnnotation and viewportIntersect are currently not supported for arrows.
By default, the plugin starts enabled and in select mode:
To let users draw arrows, switch to draw mode:
arrowsPlugin.setMode('draw');Users can then:
| Option | Type | Description |
|---|---|---|
| showArrows | ArrowsVisibility | Controls when arrows are visible |
ArrowsVisibility can be one of the following:
| Method | Parameters | Description |
|---|---|---|
| setEnabled(enabled: boolean) | true/false | Enables or disables the plugin (arrows remain visible) |
| `setMode(mode: 'draw' | 'select')` | – |
| setVisibility(visibility: ArrowsVisibility) | – | Changes arrow visibility. |
| unmount() | – | Cleans up and destroys the plugin instance. |
Arrow annotations differ from standard Annotorious shapes in two ways:
An arrow can be independent, with explicit start/end coordinates, or linked to existing annotations.
Example: independent (unlinked) arrow
{
"id": "aab6d162-0156-461e-b3cd-704ee5061d89",
"motivation": "pointing",
"bodies": [],
"target": {
"created": "2025-10-20T13:16:56.486Z",
"selector": {
"start": { "x": 37.4, "y": 176.6 },
"end": { "x": 120.3, "y": 80.1 }
}
}
}Example: arrow linked at both ends
{
"id": "daf0e68a-002b-44fd-9b9c-6c984c992742",
"motivation": "pointing",
"bodies": [],
"target": {
"created": "2025-10-20T13:18:26.019Z",
"selector": {
"start": {
"annotationId": "617d04b3-1f49-4b65-b684-5e64d90f10be",
"offset": { "x": -2, "y": 108.8 }
},
"end": {
"annotationId": "e4309c1c-7481-4554-88a3-9ae42166ea5e",
"offset": { "x": -13, "y": 0.1 }
}
}
}
}Linked anchors (start or end) reference other annotations by ID. The offset represents the X/Y offset from the center of the linked shape's bounding box, rather than absolute image coordinates.
| Back | FazBrowse Home | New Git URL |