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

FreeBSD Manual Pages

  
 
  

home | help
jp2a(1)				 USER COMMANDS			       jp2a(1)

NAME
       jp2a - convert JPEG, PNG	and WebP images	to ASCII

SYNOPSIS
       jp2a [ options ]	[ filename(s) |	URL(s) ]

DESCRIPTION
       jp2a  will  convert JPEG, PNG and WebP images to	ASCII characters.  You
       can specify a mixture of	files and URLs.

OPTIONS
       -      Read JPEG, PNG and WebP image from standard input

       --background=light --background=dark
	      If you don't want	to mess	with --invert all the time,  just  use
	      these  instead.	If  you	 are using white characters on a black
	      display, then use	--background=dark, and vice versa.

       -b --border
	      Frame output image in a border

       --chars=...
	      Use the given characters when producing the output ASCII	image.
	      Default is "   ...',;:clodxkO0KXNWM".

       --colors
	      Use  truecolor (or ANSI color if truecolor is not	supported) for
	      text output and CSS color	for HTML output.

       --color-depth=...
	      Use a specific color-depth for  terminal	output.	 Valid	values
	      are:  4  (for ANSI), 8 (for 256 color palette) and 24 (for true-
	      color or 24-bit color).

       -d --debug
	      Print debugging information when using libcurl to	 download  im-
	      ages from	the net.

       -f --term-fit
	      Use  the largest dimension that makes the	image fit in your ter-
	      minal display.

       --term-height
	      Use terminal display height and calculate	width based  on	 image
	      aspect ratio.

       --term-width
	      Use  terminal  display width and calculate height	based on image
	      aspect ratio.

       -z --term-zoom
	      Use terminal display width and height.

       -c --term-center
	      Center image in terminal.

       --fill When used	with --html and	--color, then color each output	 char-
	      acter's  background  color.   For	 instance,  if you want	to use
	      fill-output on a light background, do

	      jp2a --color --html --html-fill --background=light  somefile.jpg
	      --output=dark.html

	      To do the	same on	a light	background:

	      jp2a  --color  --html --html-fill	--background=dark somefile.jpg
	      --output=light.html

	      The default is to	have fill disabled.

       -x --flipx
	      Flip output image	horizontally

       -y --flipy
	      Flip output image	vertically

       --height=N
	      Set output height.  If only --height is specified,  then	output
	      width  will  be calculated according to the source images	aspect
	      ratio.

       -h --help
	      Display a	short help text

       --grayscale
	      Converts image to	grayscale when using --html or --colors.

       --html Make ASCII output	in strict XHTML	1.0. (Will output in HTML  for
	      version 2.0.0 and	above.)

       --htmlls
	      Make  ASCII output in HTML (Living Standard), suitable for view-
	      ing with web browsers.  This is useful with  big	output	dimen-
	      sions,  and  if you want to check	the result with	a browser with
	      small font.

       --xhtml
	      Make ASCII output	in strict XHTML	1.0.

       --html-fill
	      Same as --fill.  You should use that option instead.

       --html-no-bold
	      Do not use bold text for HTML output.

       --html-raw
	      Output only the image in HTML codes, leaving out the rest	of the
	      webpage, so you can construct your own. (Will use	<br> for  ver-
	      sion 2.0.0 and above instead of <br/>.)

       --html-fontsize=N
	      Set fontsize when	using --html output.  Default is 4.

       --html-title=...
	      Set HTML output title.

       --output=...
	      Write  ASCII  output  to	given filename.	 To explicitly specify
	      standard output, use --output=-.

       -i --invert
	      Invert output image.  If you view	a  picture  with  white	 back-
	      ground,  but  you	are using a display with light characters on a
	      dark background, you should invert the image.

       --red=...

       --green=...

       --blue=...
	      When converting from RGB to grayscale, use the given weights  to
	      calculate	 luminance.   The  default is red=0.2989, green=0.5866
	      and blue=0.1145.

       --size=WIDTHxHEIGHT
	      Set output dimension.

       -v --verbose
	      Print some verbose information to	standard  error	 when  reading
	      each JPEG	image.

       --width=N
	      Set  output  width.   If	you only specify the width, the	height
	      will be calculated automatically.

       -V --version
	      Print program version.

       --zoom Sets output dimensions to	your entire  terminal  window,	disre-
	      garding source image aspect ratio.

       --edge-threshold= ...
	      Specifies	an image gradient above	which to shade lines and edges
	      with directional glyphs (such as -/|\).  The right value to pick
	      up the edges nicely will depend on the image but might be	around
	      0.5.

       --edges-only
	      Only  draw  edges,  so  that  the	resulting image	is like	a line
	      drawing or edge detector.	This option should be used in conjunc-
	      tion with	--edge-threshold so that edges are drawn.

RETURN VALUES
       jp2a returns 1 when errors are encountered, zero	for no errors.

EXAMPLES
       Convert and print imagefile.jpg using ASCII characters  in  40  columns
       and 20 rows:

       jp2a --size=40x20 imagefile.jpg

       Download	an image off the net, convert and print:

       jp2a http://www.google.com/intl/en/logos/easter_logo.jpg

       Output  picture.jpg  and	picture2.jpg, each 80x25 characters, using the
       characters " ...ooxx@@" for output:

       jp2a --size=80x25 --chars=" ...ooxx@@" picture.jpg picture2.jpg

       Output image.jpg	using 76 columns, height is  automatically  calculated
       from aspect ratio of image.jpg

       cat image.jpg | jp2a --width=76 -

       If  you	use  jp2a  together with ImageMagick's convert(1) then you can
       make good use of	pipes, and have	ImageMagick do all sorts of image con-
       versions	and effects on the source image.  For example:

       magick somefile.gif jpg:- | jp2a	- --width=80

       Check out convert(1) options to see what	you can	do.  Convert can  han-
       dle  almost  any	image format, so with this combination you can convert
       images in e.g. PDF or AVI files to ASCII.

       jp2a uses a very	basic scaling algorithm	for every image	format	except
       WebP.  To  get  better quality, convert an image	to WebP	to make	use of
       the scaling built into the libwebp library:

       cwebp -quiet image.jpg -o - | jp2a -

       Although	the default build of jp2a includes  automatic  downloading  of
       files  specified	 by  URLs,  you	 can explicitly	download them by using
       curl(1) or wget(1), for example:

       curl -s http://foo.bar/image.jpg	| magick - jpg:- | jp2a	-

       You can pass the	--edge-threshold option	to highlight the edges of  the
       image,  or  add the --edges-only	option to draw only the	edges, to pro-
       duce a line drawing.

       jp2a --edge-threshold=0.5 --edges-only imagefile.jpg

DOWNLOADING IMAGES FROM	THE NET
       If you have compiled jp2a with libcurl(3), you can download  images  by
       specifying URLs:

       jp2a https://user:pass@foo.com/bar.jpg

       The protocols recognized	are ftp, ftps, file, http, https and tftp.

       If  you need more control of the	downloading, you should	use curl(1) or
       wget(1) and jp2a	read the image from standard input.

       jp2a uses pipe and fork to download images using	libcurl	(i.e., no exec
       or system calls)	and therefore does not worry about  malevolently  for-
       matted URLs.

GRAYSCALE CONVERSION
       You can extract the red channel by doing	this:

       jp2a somefile.jpg --red=1.0 --green=0.0 --blue=0.0

       This  will calculate luminance based on Y = R*1.0 + G*0.0 + B*0.0.  The
       default values is to use	Y = R*0.2989 + G*0.5866	+ B*0.1145.

PROJECT	HOMEPAGE
       The  latest  version  of	 jp2a  and  news  is  always  available	  from
       https://github.com/Talinx/jp2a.

SEE ALSO
       cjpeg(1), djpeg(1), jpegtran(1),	convert(1), cwebp(1)

BUGS
       jp2a  does  not interpolate when	resizing (except for WebP images).  If
       you want	better quality,	try using cwebp(1) to  convert	the  image  to
       WebP before using jp2a to get correct scaling.

       Another	issue  is  that	 jp2a skips some X-pixels along	each scanline.
       This gives a less precise output	image, and will	probably be  corrected
       in future versions.

AUTHOR
       Christian Stigen	Larsen and Christoph Raitzig

       jp2a  uses jpeglib to read JPEG files.  jpeglib is made by The Indepen-
       dent JPEG Group (IJG), who have a page at http://www.ijg.org

       jp2a   uses   libpng   to   read	  PNG	files.	  libpng's   homepage:
       http://libpng.org/pub/png/libpng.html

       jp2a  uses libwebp to read WebP files.  libwebp's homepage: https://de-
       velopers.google.com/speed/webp/

LICENSE
       jp2a is distributed under the GNU General Public	License	v2.

version	1.3.0		      September	22, 2024		       jp2a(1)

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

home | help