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.  De-
	    fault 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 truecolor or
	    24-bit color).

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

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

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

     --term-width
	    Use  terminal  display width and calculate height based on image as-
	    pect 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  charac-
	    ter's  background color.  For instance, if you want to use fill-out-
	    put 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 ver-
	    sion 2.0.0 and above.)

     --htmlls
	    Make ASCII output in HTML (Living Standard),  suitable  for  viewing
	    with  web  browsers.  This is useful with big output dimensions, 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 version
	    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  stan-
	    dard output, use --output=-.

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

     --red=...

     --green=...

     --blue=...
	    When converting from RGB to grayscale, use the given weights to cal-
	    culate  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, disregarding
	    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 conjunction 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 char-
     acters " ...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  conversions
     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 handle
     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  im-
     age,  or  add  the --edges-only option to draw only the edges, to produce 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 spec-
     ifying 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  formatted
     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 de-
     fault 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 Independent
     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://develop-
     ers.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.1.quarterly>

home | help