Versions in this module Expand all Collapse all v1 v1.0.0 Sep 18, 2026 Changes in this version + var ErrFrameLimitExceeded = errors.New("animation frame limit exceeded") + var ErrInvalidHeader = errors.New("invalid cursor header") + var ErrNoFrames = errors.New("cursor file contains no frames") + var ErrTruncatedData = errors.New("truncated cursor data") + var ErrUnsupportedFormat = errors.New("unsupported cursor format: only .cur and .ani files are supported") + func IsANI(data []byte) bool + func IsCUR(data []byte) bool + func IsCursor(data []byte) bool + type Cursor struct + Animated bool + DelayMs []int + Delays []time.Duration + Frames []image.Image + Height int + HotspotX int + HotspotY int + Width int + func Decode(r io.Reader) (*Cursor, error) + func DecodeBytes(data []byte) (*Cursor, error) + func (c *Cursor) HotspotFraction(cropX, cropY, cropW, cropH int) (float64, float64)