All Projects → eliukblau → Pixterm

eliukblau / Pixterm

Licence: mpl-2.0
Draw images in your ANSI terminal with true color

Programming Languages

go
31211 projects - #10 most used programming language
golang
3204 projects

Projects that are alternatives of or similar to Pixterm

sail
The missing small and fast image decoding library for humans (not for machines) ⛵ https://sail.software
Stars: ✭ 206 (-73.66%)
Mutual labels:  png, jpeg, tiff, gif, webp
Imageprocessor
📷 A fluent wrapper around System.Drawing for the processing of image files.
Stars: ✭ 2,452 (+213.55%)
Mutual labels:  webp, tiff, gif, png, jpeg
Govips
A lightning fast image processing and resizing library for Go
Stars: ✭ 442 (-43.48%)
Mutual labels:  webp, tiff, gif, png, jpeg
Imgcat
It's like cat, but for images.
Stars: ✭ 577 (-26.21%)
Mutual labels:  cli, terminal, image, ansi, color
Imaginary
Fast, simple, scalable, Docker-ready HTTP microservice for high-level image processing
Stars: ✭ 4,107 (+425.19%)
Mutual labels:  webp, image, gif, png, jpeg
Sdwebimage
Asynchronous image downloader with cache support as a UIImageView category
Stars: ✭ 23,928 (+2959.85%)
Mutual labels:  webp, image, gif, png, jpeg
Flyimg
Dockerized PHP7 application runs as a Microservice to resize and crop images on the fly. Get optimised images with MozJPEG, WebP or PNG using ImageMagick. Includes face detection, cropping, face blurring, image rotation and many other options. Abstract storage based on FlySystem in order to store images on any provider (local, AWS S3...).
Stars: ✭ 762 (-2.56%)
Mutual labels:  webp, image, gif, png, jpeg
Libvips
A fast image processing library with low memory needs.
Stars: ✭ 6,094 (+679.28%)
Mutual labels:  webp, tiff, gif, png, jpeg
Lilliput
Resize images and animated GIFs in Go
Stars: ✭ 1,690 (+116.11%)
Mutual labels:  webp, image, gif, png, jpeg
Sharp
High performance Node.js image processing, the fastest module to resize JPEG, PNG, WebP, AVIF and TIFF images. Uses the libvips library.
Stars: ✭ 21,131 (+2602.17%)
Mutual labels:  webp, tiff, image, png, jpeg
Rang
A Minimal, Header only Modern c++ library for terminal goodies 💄✨
Stars: ✭ 1,080 (+38.11%)
Mutual labels:  cli, terminal, ansi, color
imagecodecs
Image transformation, compression, and decompression codecs. Forked from https://pypi.org/project/imagecodecs
Stars: ✭ 56 (-92.84%)
Mutual labels:  png, jpeg, tiff, webp
gfxprim
Open-source modular 2D bitmap graphics library with emphasis on speed and correctness.
Stars: ✭ 32 (-95.91%)
Mutual labels:  png, jpeg, gif, webp
Selene
A C++17 image representation, processing and I/O library.
Stars: ✭ 266 (-65.98%)
Mutual labels:  tiff, image, png, jpeg
Metadata Extractor
Extracts Exif, IPTC, XMP, ICC and other metadata from image, video and audio files
Stars: ✭ 1,972 (+152.17%)
Mutual labels:  webp, tiff, png, jpeg
imagor
Fast, Docker-ready image processing server in Go and libvips
Stars: ✭ 2,276 (+191.05%)
Mutual labels:  png, jpeg, gif, webp
Chalk
🖍 Terminal string styling done right
Stars: ✭ 17,566 (+2146.29%)
Mutual labels:  cli, terminal, ansi, color
Bimg
Go package for fast high-level image processing powered by libvips C library
Stars: ✭ 1,394 (+78.26%)
Mutual labels:  webp, image, png, jpeg
Optimizt
CLI image optimization tool
Stars: ✭ 594 (-24.04%)
Mutual labels:  webp, gif, png, jpeg
Hues
Colored terminal text made easy for Python and happiness.
Stars: ✭ 345 (-55.88%)
Mutual labels:  cli, terminal, ansi, color
   ___  _____  ____
  / _ \/  _/ |/_/ /____ ______ _      Made with love by Eliuk Blau
 / ___// /_>  </ __/ -_) __/  ' \ https://github.com/eliukblau/pixterm
/_/  /___/_/|_|\__/\__/_/ /_/_/_/                1.3.1

PIXterm - draw images in your ANSI terminal with true color

PIXterm shows images directly in your terminal, recreating the pixels through a combination of ANSI character background color and the unicode lower half block element. If image has transparency, an optional matte color can be used for background. Also, you can specify a dithering mode; in which case, the image is rendered using block elements with different shades, or using standard ASCII characters in the same way. In dithering mode, the matte color is used to fill the background of the blocks or characters.

The conversion process runs fast because it is parallelized in all CPUs.

Supported image formats: JPEG, PNG, GIF, BMP, TIFF, WebP.

Fetching images from HTTP/HTTPS is supported too.

Cool Screenshots

Screenshot 1

No Dithering (Classic Mode)

Screenshot 2

Screenshot 3

Screenshot 4

Screenshot 5

Screenshot 6

Dithering with Blocks

Screenshot 7

Screenshot 8

Screenshot 9

Dithering with Characters

Screenshot 10

Screenshot 11

Screenshot 12

Dithering with Background Color Disabled (-nobg)

Screenshot 13

Screenshot 14

Requirements

Your terminal emulator must be support true color feature in order to display image colors in a right way. In addition, you must use a monospaced font that includes the lower half block unicode character: ▄ (U+2584). I personally recommend Envy Code R. It's the nice font that shows in the screenshots. If you want to use the dithering mode with blocks, the font must also includes the following unicode characters: █ (U+2588), ▓ (U+2593), ▒ (U+2592), ░ (U+2591). The dithering mode with characters works with standard ASCII chars.

Dependencies

All dependencies are included via standard Go module system. You should not do anything else.

Dependencies for PIXterm CLI tool
  • Package colorful: github.com/lucasb-eyer/go-colorful
  • Package terminal: golang.org/x/crypto/ssh/terminal
Dependencies for ANSImage Package
  • Package colorful: github.com/lucasb-eyer/go-colorful
  • Package imaging: github.com/disintegration/imaging
  • Package webp: golang.org/x/image/webp
  • Package bmp: golang.org/x/image/bmp
  • Package tiff: golang.org/x/image/tiff

Installation

You need the Go compiler version 1.13 or superior installed in your system.

Run this command to automatically download sources and install PIXterm binary in your $GOPATH/bin directory:

go get -u github.com/eliukblau/pixterm/cmd/pixterm

If you use Arch Linux, eigengrau has kindly created an AUR package for PIXterm (thanks man!). Run this command to install it:

yaourt -S pixterm-git

About

PIXterm is a terminal toy application that I made to exercise my skills on Go programming language. If you have not tried this language yet, please give it a try! It's easy, fast and very well organized. You'll not regret 😜

This application is originaly inspired by the clever termpix, implemented in Rust.

The dithering mode is my own port of the Processing Textmode Engine's render.

License

Mozilla Public License Version 2.0

Contributors

  • @disq

    • Original code for image transparency support.
  • @timob

    • Fix for ANSIpixel type: use 8bit color component for output.
  • @HongjiangHuang

    • Original code for image download support.
  • @brutestack

    • Color support for Windows (Command Prompt & PowerShell).
    • Original code for disable background color in dithering mode.
    • Original code for output Go code to fmt.Print() the image.
  • @diamondburned

    • NewFromImage() & NewScaledFromImage() for ANSImage API.
  • @MichaelMure

    • More conventional go.mod file at repository.
  • @Calinou

    • Use HTTPS URLs everywhere.
    • Other awesome contributions.
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].