Documentation
¶
Overview ¶
Package kitty provides image rendering support using the Kitty graphics protocol.
The Kitty graphics protocol is a terminal graphics protocol that allows displaying images directly in the terminal. This package provides utilities for:
- Fetching images from URLs
- Resizing images to fit terminal dimensions
- Encoding images using the Kitty protocol
- Caching images to avoid redundant downloads
Usage:
renderer := kitty.NewImageRenderer()
opts := kitty.DefaultImageOptions()
imageStr, err := renderer.RenderImageFromURL("https://example.com/image.jpg", opts)
if err != nil {
// Handle error or use placeholder
imageStr = kitty.CreatePlaceholder(opts.Width, opts.Height, "[IMG]")
}
fmt.Print(imageStr)
The Kitty protocol uses escape sequences in the format:
ESC _G <key=value,...> ; <base64 data> ESC \
For more information on the Kitty graphics protocol, see: https://sw.kovidgoyal.net/kitty/graphics-protocol/
Index ¶
Constants ¶
const ( ESC = "\x1b" APC = "\x1b_" ST = "\x1b\\" )
Protocol control characters
Variables ¶
This section is empty.
Functions ¶
func ClearImage ¶
ClearImage clears an image with the given ID
func CreatePlaceholder ¶
CreatePlaceholder creates a text placeholder for images that fail to load
Types ¶
type ImageOptions ¶
type ImageOptions struct {
Width int // Width in cells (terminal columns)
Height int // Height in cells (terminal rows)
PreserveAspectRatio bool
ImageID uint32 // Unique ID for this image
}
ImageOptions contains options for image rendering
func DefaultImageOptions ¶
func DefaultImageOptions() ImageOptions
DefaultImageOptions returns sensible defaults for image rendering
type ImageRenderer ¶
type ImageRenderer struct {
// contains filtered or unexported fields
}
ImageRenderer handles Kitty protocol image rendering
func NewImageRenderer ¶
func NewImageRenderer() *ImageRenderer
NewImageRenderer creates a new image renderer
func (*ImageRenderer) FetchImage ¶
func (ir *ImageRenderer) FetchImage(url string) ([]byte, error)
FetchImage downloads an image from a URL
func (*ImageRenderer) RenderImage ¶
func (ir *ImageRenderer) RenderImage(imgData []byte, opts ImageOptions) (string, error)
RenderImage renders an image using the Kitty graphics protocol via rasterm library
func (*ImageRenderer) RenderImageFromURL ¶
func (ir *ImageRenderer) RenderImageFromURL(url string, opts ImageOptions) (string, error)
RenderImageFromURL fetches an image from a URL and renders it