renderImageToAnsi function

String? renderImageToAnsi(
  1. Image image,
  2. ImageProtocol protocol, {
  3. int? columns,
  4. int? rows,
})

Renders an image to ANSI terminal escape sequences using the best available image protocol.

Returns the escape sequence string, or null if rendering failed.

Implementation

String? renderImageToAnsi(
  img.Image image,
  ImageProtocol protocol, {
  int? columns,
  int? rows,
}) {
  switch (protocol) {
    case ImageProtocol.kitty:
      return KittyImage.encode(image, columns: columns, rows: rows);
    case ImageProtocol.iterm2:
      return ITerm2Image.encode(image, columns: columns, rows: rows);
    case ImageProtocol.sixel:
      if (columns != null || rows != null) {
        return SixelImage.encodeResized(
          image,
          columns: columns ?? image.width,
          rows: rows ?? _defaultMaxRows,
        );
      }
      return SixelImage.encode(image);
    case ImageProtocol.halfblock:
      return _renderHalfBlock(image, columns: columns ?? 40, rows: rows ?? 20);
    case ImageProtocol.none:
      return null;
  }
}