Skip site navigation (1)Skip section navigation (2)

  
 
  

home | help
IMG2SIXEL(1)		     General Commands Manual		    IMG2SIXEL(1)

NAME
     img2sixel - image converter to DEC SIXEL graphics

SYNOPSIS
     img2sixel [ -options ] imagefiles
     img2sixel [ -options ] < imagefiles

DESCRIPTION
     img2sixel converts various images into high quality DEC SIXEL image format.

COMMAND-LINE OPTIONS
     img2sixel has the following command-line options:

     -o, --outfile
	  specify output file name (default:stdout).

     -7, --7bit-mode
	  generate a sixel image for 7bit terminals or printers (default).

     -8, --8bit-mode
	  generate a sixel image for 8bit terminals or printers.

     -R, --gri-limit
	  limit arguments of DECGRI('!') to 255.

     -p COLORS, --colors=COLORS
	  specify number of colors to reduce the image to (default=256).

     -m FILE, --mapfile=FILE
	  transform image colors to match this set of colorsspecify map.

     -e, --monochrome
	  output monochrome sixel image.  this option assumes the terminal back-
	  ground color is black.

     -k, --insecure
	  allow to connect to SSL sites without certs (enabled only when config-
	  ured with --with-libcurl)

     -i, --invert
	  assume  the  terminal background color is white.  make sense only when
	  -e option is given.

     -I, --high-color
	  output 15bpp sixel image

     -u, --use-macro
	  use DECDMAC and DEVINVM sequences to optimize GIF animation rendering.

     -n MACRONO, --macro-number=MACRONO
	  specify an number argument for  DECDMAC  and	make  terminal	memorize
	  SIXEL image. No image is shown if this option is specified

     -C COMPLEXIONSCORE, --complexion-score=COMPLEXIONSCORE
	  specify  an  number  argument  for the score of complexion correction.
	  COMPLEXIONSCORE must be 1 or more.

     -g, --ignore-delay
	  render GIF animation without delay.

     -S, --static
	  render animated GIF as a static image.

     -d DIFFUSIONTYPE, --diffusion=DIFFUSIONTYPE
	  choose diffusion method which used with color reduction.
	  DIFFUSIONTYPE is one of them:
	  auto	   -> choose diffusion type automatically (default)
	  none	   -> do not diffuse
	  fs	   -> Floyd-Steinberg method
	  atkinson -> Bill Atkinson's method
	  jajuni   -> Jarvis, Judice & Ninke
	  stucki   -> Stucki's method
	  burkes   -> Burkes' method
	  a_dither -> positionally stable arithmetic dither
	  x_dither -> positionally stable arithmetic xor based dither

     -f FINDTYPE, --find-largest=FINDTYPE
	  choose method for finding the largest dimension of  median  cut  boxes
	  for  splitting,  make  sense	only when -p option (color reduction) is
	  specified.
	  FINDTYPE is one of them:
	  auto -> choose finding method automatically (default)
	  norm -> simply comparing the range in RGB space
	  lum  -> transforming into luminosities before the comparison

     -s SELECTTYPE, --select-color=SELECTTYPE
	  choose the method for selecting representative color from each median-
	  cut box, make sense only when -p option (color  reduction)  is  speci-
	  fied.
	  SELECTTYPE is one of them:
	  auto	   -> choose selecting method automatically (default)
	  center   -> choose the center of the box
	  average  -> calculate the color average into the box
	  histogram -> similar with average but considers color histogram

     -c REGION, --crop=REGION
	  crop source image to fit the specified geometry.
	  REGION should be formatted as '%dx%d+%d+%d'.

     -w WIDTH, --width=WIDTH
	  resize image to specified width.
	  WIDTH is represented by the following syntax:
	  auto	     -> preserving aspect ratio (default)
	  <number>%  -> scale width with given percentage
	  <number>   -> scale width with pixel counts
	  <number>px -> scale width with pixel counts

     -h HEIGHT, --height=HEIGHT
	  resize image to specified height.
	  HEIGHT is represented by the following syntax
	  auto	     -> preserving aspect ratio (default)
	  <number>%  -> scale height with given percentage
	  <number>   -> scale height with pixel counts
	  <number>px -> scale height with pixel counts

     -r RESAMPLINGTYPE, --resampling=RESAMPLINGTYPE
	  choose resampling method used with -w or -h option (scaling).
	  RESAMPLINGTYPE is one of them:
	  nearest  -> Nearest-Neighbor method
	  gaussian -> Gaussian filter
	  hanning  -> Hanning filter
	  hamming  -> Hamming filter
	  bilinear -> Bilinear filter (default)
	  welsh    -> Welsh filter
	  bicubic  -> Bicubic filter
	  lanczos2 -> Lanczos-2 filter
	  lanczos3 -> Lanczos-3 filter
	  lanczos4 -> Lanczos-4 filter

     -q QUALITYMODE, --quality=QUALITYMODE
	  select quality of color quanlization.
	  QUALITYMODE is one of them:
	  auto -> decide quality mode automatically (default)
	  high -> high quality and low speed mode
	  low  -> low quality and high speed mode
	  full -> quality and careful speed mode

     -l LOOPMODE, --loop-control=LOOPMODE
	  select loop control mode for GIF animation.
	  auto	  -> honer the setting of GIF header (default)
	  force   -> always enable loop
	  disable -> always disable loop

     -t PALETTETYPE, --palette-type=PALETTETYPE
	  select palette color space type.
	  auto -> choose palette type automatically (default)
	  hls  -> use HLS color space
	  rgb  -> use RGB color space

     -b BUILTINPALETTE, --builtin-palette=BUILTINPALETTE
	  select built-in palette type
	  xterm16    -> X default 16 color map
	  xterm256   -> X default 256 color map
	  vt340mono  -> VT340 monochrome map
	  vt340color -> VT340 color map

     -E ENCODEPOLICY, --encode-policy=ENCODEPOLICY
	  select encoding policy
	  auto -> choose encoding policy automatically (default)
	  fast -> encode as fast as possible
	  size -> encode to as small sixel sequence as possible

     -B BGCOLOR, --bgcolor=BGCOLOR
	  specify background color
	  BGCOLOR is represented by the following syntax
	  #rgb
	  #rrggbb
	  #rrrgggbbb
	  #rrrrggggbbbb
	  rgb:r/g/b
	  rgb:rr/gg/bb
	  rgb:rrr/ggg/bbb
	  rgb:rrrr/gggg/bbbb

     -P, --penetrate
	  penetrate GNU Screen using DCS pass-through sequence.

     -D, --pipe-mode
	  [[deprecated]] read source images from stdin continuously.

     -v, --verbose
	  show debugging info.

     -V, --version
	  show version and license info.

     -H, --help
	  print help.

ENVIRONMENT VARIABLES
     img2sixel has the following command-line options:

     SIXEL_BGCOLOR
	  specify background color.
	  overrided by -B(--bgcolor) option.
	  represented by the following syntax:
	  #rgb
	  #rrggbb
	  #rrrgggbbb
	  #rrrrggggbbbb
	  rgb:r/g/b
	  rgb:rr/gg/bb
	  rgb:rrr/ggg/bbb
	  rgb:rrrr/gggg/bbbb

     SIXEL_NCOLORS
	  specify number of colors to reduce the image to (default=256).
	  overrided by -p(--colors) option.

Image loaders
     img2sixel includes two or more image decoder components.

     stb_image

	  libsixel includes stb_image, a public domain image loader.
	  img2sixel  uses  it  as default built-in image decoder.  It can decode
	  almost all images. but a few images can not be decoded by its  limita-
	  tions.

	  Supported source formats:
	     JPEG  baseline & progressive (12 bpc/arithmetic not supported, same
	  as stock IJG lib)
	     PNG 1/2/4/8/16-bit-per-channel
	     TGA (not sure what subset, if a subset)
	     BMP non-1bpp, non-RLE
	     PSD (composited view only, no extra channels)
	     PIC (Softimage PIC)
	     PNM (PPM and PGM binary only)

	  Limitations:
	     no 12-bit-per-channel JPEG
	     no JPEGs with arithmetic coding / JPEG 2000
	     no 1-bit BMP

     libpng

	     If libpng library is linked at compile time, img2sixel uses it  for
	  decoding PNG image.

     libjpeg

	     If libjpeg library is linked at compile time, img2sixel uses it for
	  decoding JPEG image.

     gdk-pixbuf2

	     If gdk-pixbuf2 library is linked at compile time, img2sixel uses it
	  automatically in some cases.

     GD

	     If GD library is linked at compile time, img2sixel uses it automat-
	  ically in some cases.

     libsixel

	     img2sixel	can  load  SIXEL as source image format, because it uses
	  libsixel as a SIXEL image decoder.

HISTORY
     Former SIXEL encoders(such as ppmtosixel) are mainly designed  for  dot-ma-
     trix printers.  They minimize the amount of printer-head movement distance.
     But  nowadays  this  method did not represent the best performance for dis-
     playing  sixel  data  on  terminal  emulators.   Encoded  SIXEL  data   for
     VT-2xx/VT-3xx  terminals  were  found in 80's Usenet, But the technology of
     how to create them seems to be lost.

     kmiya's sixel(kmiya,2014) introduces an efficient encoding method which  is
     re-designed for terminal emulators to optimize the overhead of transporting
     SIXEL  with keeping compatibility with former SIXEL terminal.  Now libsixel
     and ImageMagick's sixel coder follow it.

     Araki Ken, known as the maintainer of mlterm, proposed the method for  more
     compressed  SIXEL	encoding.   Now libsixel adopted that method.  Araki Ken
     describes about the way to generate high quality SIXEL.

     See http://mlterm.sourceforge.net/libsixel.pdf(in Japanese).

SEE ALSO
     sixel(5) sixel2png(1)

AUTHORS
     img2sixel is maintained by Hayaki Saito.  We imported whole code of stb_im-
     age v2.12, written by Sean Barrett and its contributers, for loading  vari-
     ous images, and imported some code from pnmquant.c (netpbm library) for im-
     age quantization.

COPYRIGHT
     Copyright (c) 2014-2016 Hayaki Saito

     Permission  is  hereby  granted,  free of charge, to any person obtaining a
     copy of this software and associated documentation files (the  "Software"),
     to  deal  in the Software without restriction, including without limitation
     the rights to use, copy, modify, merge,  publish,	distribute,  sublicense,
     and/or sell copies of the Software, and to permit persons to whom the Soft-
     ware is furnished to do so, subject to the following conditions:

     The  above copyright notice and this permission notice shall be included in
     all copies or substantial portions of the Software.

     THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS  OR
     IMPLIED,  INCLUDING  BUT  NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
     FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
     AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIA-
     BILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING  FROM,
     OUT  OF  OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
     THE SOFTWARE.

THANKS
     This software derives from the following implementations.

     stb_image-v2.12
	  This software includes stb_image-v2.12 (stb_image.h), a public  domain
	  JPEG/PNG reader.
	  https://github.com/nothings/stb

     pnmquant.c (netpbm library)
	  The  implementation  of median cut algorithm for color quantization in
	  quant.c is imported from pnmcolormap included in netpbm library.
	  http://netpbm.sourceforge.net/
	  pnmcolormap was derived from ppmquant, originally by Jef Poskanzer.

	  Copyright (C) 1989, 1991 by Jef Poskanzer.
	  Copyright (C) 2001 by Bryan Henderson.
	  Permission to use, copy, modify, and distribute this software and  its
	  documentation  for any purpose and without fee is hereby granted, pro-
	  vided that the above copyright notice appear in all  copies  and  that
	  both	that  copyright notice and this permission notice appear in sup-
	  porting documentation.  This software is provided "as is" without  ex-
	  press or implied warranty.

     sixel 2014-3-2

	  some	part  of  converters/loader.c  are  derived from kmiya's "sixel"
	  original version (2014-3-2).
	  http://nanno.dip.jp/softlib/man/rlogin/sixel.tar.gz
	  It is written by kmiya@culti.
	  He distributes it under very permissive license which permits  useing,
	  copying, modification, redistribution, and all other public activities
	  without any restrictions.
	  He declares this is compatible with MIT/BSD/GPL.

REFERENCES
     resize.c (ImageMagick)

	  We  added  some resampling filters in reference to the line-up of fil-
	  ters of MagickCore's resize.c.

	  http://www.imagemagick.org/api/MagickCore/resize_8c_source.html

CONTRIBUTORS
     Araki Ken (@arakiken)
     Markus Elfring (@elfring)
     Akinori Hattori (@hattya)
     isaki (@isaki68k)
     NOKUBI Takatsugu (@knok)
     Yasuhiro MATSUMOTO (@mattn)
     Masami HIRATA(@msmhrt)
     OBATA Akio (@obache)
     Izumi Tsutsui (@tsutsui)
     Iwamoto Kouichi (@ttdoda)
     haru (@uobikiemukot)
     Vertis Sidus (@vrtsds)
     Bruce Mitchener (@waywardmonkeys)
     Kazuhiro YOSHIKAWA (@yoshikaw)
     Turenar <sora@turenar.xyz>
     Yusuke Endoh <mame@ruby-lang.org>
     mattn <mattn.jp@gmail.com>
     Akinori Hattori <hattya@gentoo.org>
     Ayvind KolAYs <pippin@gimp.org>
     Henri Salo (@fgeek)
     hongxu (@HongxuChen)
     pwd (@YourButterfly)
     Nicholas Luedtke (@nluedtke)
     cool-tomato (@cool-tomato)

BUGS

     *	    Send bug-reports, fixes, enhancements to saitoha@me.com

4th Berkeley Distribution	    Aug 2016			    IMG2SIXEL(1)

Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=img2sixel&sektion=1&manpath=FreeBSD+Ports+15.1.quarterly>

home | help