catpic


Namecatpic JSON
Version 0.5.1 PyPI version JSON
download
home_pageNone
SummaryDisplay images in terminals using Unicode mosaics and ANSI colors
upload_time2025-10-12 12:02:35
maintainerNone
docs_urlNone
authorNone
requires_python>=3.8
licenseMIT
keywords ansi ascii image meow mosaic terminal tui unicode
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            ```
## AI Collaboration Context
**Project:** catpic - Terminal Image Viewer | **Session:** #1 | **Date:** 2025-01-27 | **Lead:** [Your Name]  
**AI Model:** Claude Sonnet 4 | **Objective:** Create comprehensive catpic project structure
**Prior Work:** Initial session  
**Current Status:** Complete project scaffolding with BASIS system and EnGlyph integration. Renamed to catpic with .meow extension
**Files in Scope:** New project - all files created  
**Human Contributions:** Requirements analysis, EnGlyph research, BASIS system design, development strategy, UX design (viewer-first approach), naming (catpic/.meow)  
**AI Contributions:** Project structure, code generation, documentation, testing framework  
**Pending Decisions:** Phase 1 implementation approach, specific BASIS character sets for 2,3 and 2,4
```

# catpic - Terminal Image Viewer

Display images directly in your terminal using mosaic block characters and ANSI colors.

## Features

- **Instant display**: Show any image format directly in terminal with `catpic image.jpg`
- **Animation support**: Play GIFs directly with `catpic animation.gif` 
- **Cat-able files**: Generate `.meow` files for sharing over wire and scripting
- **Scalable quality**: BASIS system from universal compatibility to ultra-high quality
- **Modern Python**: Built with UV, type hints, and comprehensive testing

## Installation

```bash
# Using uv (recommended)
uv add catpic

# Using pip
pip install catpic
```

## Quick Start

```bash
# Display any image directly in terminal
catpic photo.jpg

# Display animated GIF directly  
catpic animation.gif

# Generate cat-able files when needed
catpic generate photo.jpg          # Creates photo.meow
catpic convert animation.gif       # Creates animation.meow

# Display cat-able files
cat photo.meow
catpic animation.meow             # or cat animation.meow
```

## BASIS System

catpic uses a pixel subdivision system for different quality/compatibility levels:

- **BASIS 1,2**: 4 patterns ( ▀▄█) - Universal terminal compatibility
- **BASIS 2,2**: 16 patterns (quadrant blocks) - Balanced quality/compatibility
- **BASIS 2,3**: 64 patterns (sextant blocks) - High quality
- **BASIS 2,4**: 256 patterns (Legacy Computing) - Ultra quality

## MEOW Format

**MEOW** (Mosaic Encoding Over Wire) - A text-based format for terminal images that can be cat-ed, shared over SSH, and embedded in scripts.

## Python API

```python
from catpic import CatpicEncoder, CatpicDecoder, CatpicPlayer

# Display any image directly (primary use case)
encoder = CatpicEncoder(basis=(2, 2))
meow_content = encoder.encode_image('photo.jpg', width=80)
decoder = CatpicDecoder()
decoder.display(meow_content)

# Generate cat-able file
with open('photo.meow', 'w') as f:
    f.write(meow_content)

# Animation
meow_anim = encoder.encode_animation('animation.gif')
player = CatpicPlayer()
player.play(meow_anim)
```

## Development

```bash
# Setup development environment
uv sync --dev

# Run tests
uv run pytest

# Format code
uv run black src/ tests/
uv run ruff check src/ tests/

# Type checking
uv run mypy src/
```

## License

MIT License - see LICENSE file for details.

            

Raw data

            {
    "_id": null,
    "home_page": null,
    "name": "catpic",
    "maintainer": null,
    "docs_url": null,
    "requires_python": ">=3.8",
    "maintainer_email": null,
    "keywords": "ansi, ascii, image, meow, mosaic, terminal, tui, unicode",
    "author": null,
    "author_email": "Frisco Rose <friscorose@gmail.com>",
    "download_url": "https://files.pythonhosted.org/packages/f2/6b/3a6a03eaab8aa5f849a9b3589dee86cc97787083c74b4f31985e3deefc59/catpic-0.5.1.tar.gz",
    "platform": null,
    "description": "```\n## AI Collaboration Context\n**Project:** catpic - Terminal Image Viewer | **Session:** #1 | **Date:** 2025-01-27 | **Lead:** [Your Name]  \n**AI Model:** Claude Sonnet 4 | **Objective:** Create comprehensive catpic project structure\n**Prior Work:** Initial session  \n**Current Status:** Complete project scaffolding with BASIS system and EnGlyph integration. Renamed to catpic with .meow extension\n**Files in Scope:** New project - all files created  \n**Human Contributions:** Requirements analysis, EnGlyph research, BASIS system design, development strategy, UX design (viewer-first approach), naming (catpic/.meow)  \n**AI Contributions:** Project structure, code generation, documentation, testing framework  \n**Pending Decisions:** Phase 1 implementation approach, specific BASIS character sets for 2,3 and 2,4\n```\n\n# catpic - Terminal Image Viewer\n\nDisplay images directly in your terminal using mosaic block characters and ANSI colors.\n\n## Features\n\n- **Instant display**: Show any image format directly in terminal with `catpic image.jpg`\n- **Animation support**: Play GIFs directly with `catpic animation.gif` \n- **Cat-able files**: Generate `.meow` files for sharing over wire and scripting\n- **Scalable quality**: BASIS system from universal compatibility to ultra-high quality\n- **Modern Python**: Built with UV, type hints, and comprehensive testing\n\n## Installation\n\n```bash\n# Using uv (recommended)\nuv add catpic\n\n# Using pip\npip install catpic\n```\n\n## Quick Start\n\n```bash\n# Display any image directly in terminal\ncatpic photo.jpg\n\n# Display animated GIF directly  \ncatpic animation.gif\n\n# Generate cat-able files when needed\ncatpic generate photo.jpg          # Creates photo.meow\ncatpic convert animation.gif       # Creates animation.meow\n\n# Display cat-able files\ncat photo.meow\ncatpic animation.meow             # or cat animation.meow\n```\n\n## BASIS System\n\ncatpic uses a pixel subdivision system for different quality/compatibility levels:\n\n- **BASIS 1,2**: 4 patterns ( \u2580\u2584\u2588) - Universal terminal compatibility\n- **BASIS 2,2**: 16 patterns (quadrant blocks) - Balanced quality/compatibility\n- **BASIS 2,3**: 64 patterns (sextant blocks) - High quality\n- **BASIS 2,4**: 256 patterns (Legacy Computing) - Ultra quality\n\n## MEOW Format\n\n**MEOW** (Mosaic Encoding Over Wire) - A text-based format for terminal images that can be cat-ed, shared over SSH, and embedded in scripts.\n\n## Python API\n\n```python\nfrom catpic import CatpicEncoder, CatpicDecoder, CatpicPlayer\n\n# Display any image directly (primary use case)\nencoder = CatpicEncoder(basis=(2, 2))\nmeow_content = encoder.encode_image('photo.jpg', width=80)\ndecoder = CatpicDecoder()\ndecoder.display(meow_content)\n\n# Generate cat-able file\nwith open('photo.meow', 'w') as f:\n    f.write(meow_content)\n\n# Animation\nmeow_anim = encoder.encode_animation('animation.gif')\nplayer = CatpicPlayer()\nplayer.play(meow_anim)\n```\n\n## Development\n\n```bash\n# Setup development environment\nuv sync --dev\n\n# Run tests\nuv run pytest\n\n# Format code\nuv run black src/ tests/\nuv run ruff check src/ tests/\n\n# Type checking\nuv run mypy src/\n```\n\n## License\n\nMIT License - see LICENSE file for details.\n",
    "bugtrack_url": null,
    "license": "MIT",
    "summary": "Display images in terminals using Unicode mosaics and ANSI colors",
    "version": "0.5.1",
    "project_urls": {
        "Documentation": "https://github.com/friscorose/catpic/tree/main/docs",
        "Homepage": "https://github.com/friscorose/catpic",
        "Issues": "https://github.com/friscorose/catpic/issues",
        "Repository": "https://github.com/friscorose/catpic"
    },
    "split_keywords": [
        "ansi",
        " ascii",
        " image",
        " meow",
        " mosaic",
        " terminal",
        " tui",
        " unicode"
    ],
    "urls": [
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "e48910a3b32446e8210c24506eb2bdf71b6fe379d279644692a25343008abdc6",
                "md5": "5a3ec283849585dc602bb66b9bcc59bc",
                "sha256": "9530d0052be0f0b237968a7734addb361469a008c855bb6116c794f32ebf6e7f"
            },
            "downloads": -1,
            "filename": "catpic-0.5.1-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "5a3ec283849585dc602bb66b9bcc59bc",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.8",
            "size": 20339,
            "upload_time": "2025-10-12T12:02:34",
            "upload_time_iso_8601": "2025-10-12T12:02:34.582965Z",
            "url": "https://files.pythonhosted.org/packages/e4/89/10a3b32446e8210c24506eb2bdf71b6fe379d279644692a25343008abdc6/catpic-0.5.1-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "f26b3a6a03eaab8aa5f849a9b3589dee86cc97787083c74b4f31985e3deefc59",
                "md5": "65dd2cc3506ebd33e179d366a43f4c04",
                "sha256": "1c688b81ddf532750a3cfde9e1a79dbb1b52cba8133ac91a0b1af59b667359e4"
            },
            "downloads": -1,
            "filename": "catpic-0.5.1.tar.gz",
            "has_sig": false,
            "md5_digest": "65dd2cc3506ebd33e179d366a43f4c04",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.8",
            "size": 58677,
            "upload_time": "2025-10-12T12:02:35",
            "upload_time_iso_8601": "2025-10-12T12:02:35.861240Z",
            "url": "https://files.pythonhosted.org/packages/f2/6b/3a6a03eaab8aa5f849a9b3589dee86cc97787083c74b4f31985e3deefc59/catpic-0.5.1.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2025-10-12 12:02:35",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "friscorose",
    "github_project": "catpic",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": true,
    "lcname": "catpic"
}
        
Elapsed time: 2.45184s