#[ @@@state image_search_path.list :create Series of directories for image search :value . imgsrc ../imgsrc ../dbg @@@ ]# @@@state Image_search_path :desc Directories searched for an image's file, relative to the document :value . imgsrc ../imgsrc @@@ @@@state Image_output_dir :desc Output directory for images :value img @@@ @@@state Image_txt_style :desc How an image is drawn in characters under txt and ansi: halfblock (two pixels per cell in full colour under ansi -- the nearest to the raster, and the default; under txt a solid block, since its picture is only its colours), shade (block shades, coloured tiles under ansi), ascii (a density ramp of typewriter characters), quadrant (four sub-pixels per cell, two colours per cell under ansi), braille (eight dots per cell). :value halfblock @@@ @@@state Image_txt_dark_background :desc Under txt and ansi, the density ramp assumes a dark terminal background (true): bright pixels are the dense characters. false reverses it for a light background. :value true @@@ @@@state Image_default_width :desc Default width for images :value .667w @@@ @@@state Image_quality :desc JPEG quality, 1 to 100, at which a photograph -- a raster with no transparency, whether it arrives as JPEG, PNG or TIFF -- is written to the image cache for the html and pdf targets. The default keeps print quality at a fraction of the size; 100 copies or converts the source unchanged, as before 2026-09-09. :value 85 @@@ # # @@@argtype pixels | a pixel count :pattern \d+px @@@ # @@image.k basename : Image read from a file @@ # @@image.html basename | width | height : @eval import image ; result = image.image(K) eval@ @@ # An image once had its own position type, for the sake of the "none" value # (no positioning container). That value is meaningful for any block # element, so the shared hpos type carries it and an image is placed by the # hpos_args option set like every other block element. @@image.k basename :id :width.width .5w @caption_args@ :vmargin.bool true @hpos_args@ :rel :abswidth.number 0.0 :border.bool false : An image read from a file. The basename names the file, which is looked for in the image search path and converted to a format the target can use. ^:width is the image's width in the text column, ^:hpos and ^:offset place it there, and the caption arguments caption it. Under txt and ansi the image is drawn in characters (the Image_txt_style state variable: halfblock, the default, or shade, ascii, quadrant, braille), and ansi colours them; the measure is the terminal's width less a small margin when ktext runs in one, else the text width, and ^:width applies to that (a fraction, a number of columns, or f for all of it). The Image_txt_dark_background state variable (true) reverses the ramp for a light terminal. @@ @@image.html,tex,txt :: @eval image.Image(K) eval@ @@ @@image_grid.k image_specs.rest(2) :cell_number.bool false :landscape.bool false :scale.number 0.98 @caption_args@ @hpos_args@ :thumbnail.bool false :allow_break.bool true :id :rel :hsep.number 0.02 : A grid of images @@ @@image_grid.html,tex :: @eval image_grid.Image_grid(K) eval@ @@ @@fig.k spec.figure_id : The caption title for a figure @@ @@fig.html,tex :: @reference *spec* | Figure @ @@