elisp: Showing Images

 
 37.17.9 Showing Images
 ----------------------
 
 You can use an image descriptor by setting up the ‘display’ property
 yourself, but it is easier to use the functions in this section.
 
  -- Function: insert-image image &optional string area slice
      This function inserts IMAGE in the current buffer at point.  The
      value IMAGE should be an image descriptor; it could be a value
      returned by ‘create-image’, or the value of a symbol defined with
      ‘defimage’.  The argument STRING specifies the text to put in the
      buffer to hold the image.  If it is omitted or ‘nil’,
      ‘insert-image’ uses ‘" "’ by default.
 
      The argument AREA specifies whether to put the image in a margin.
      If it is ‘left-margin’, the image appears in the left margin;
      ‘right-margin’ specifies the right margin.  If AREA is ‘nil’ or
      omitted, the image is displayed at point within the buffer’s text.
 
      The argument SLICE specifies a slice of the image to insert.  If
      SLICE is ‘nil’ or omitted the whole image is inserted.  Otherwise,
      SLICE is a list ‘(X Y WIDTH HEIGHT)’ which specifies the X and Y
      positions and WIDTH and HEIGHT of the image area to insert.
      Integer values are in units of pixels.  A floating-point number in
      the range 0.0–1.0 stands for that fraction of the width or height
      of the entire image.
 
      Internally, this function inserts STRING in the buffer, and gives
      it a ‘display’ property which specifies IMAGE.  SeeDisplay
      Property.
 
  -- Function: insert-sliced-image image &optional string area rows cols
      This function inserts IMAGE in the current buffer at point, like
      ‘insert-image’, but splits the image into ROWSxCOLS equally sized
      slices.
 
      Emacs displays each slice as a separate image, and allows more
      intuitive scrolling up/down, instead of jumping up/down the entire
      image when paging through a buffer that displays (large) images.
 
  -- Function: put-image image pos &optional string area
      This function puts image IMAGE in front of POS in the current
      buffer.  The argument POS should be an integer or a marker.  It
      specifies the buffer position where the image should appear.  The
      argument STRING specifies the text that should hold the image as an
      alternative to the default.
 
      The argument IMAGE must be an image descriptor, perhaps returned by
      ‘create-image’ or stored by ‘defimage’.
 
      The argument AREA specifies whether to put the image in a margin.
      If it is ‘left-margin’, the image appears in the left margin;
      ‘right-margin’ specifies the right margin.  If AREA is ‘nil’ or
      omitted, the image is displayed at point within the buffer’s text.
 
      Internally, this function creates an overlay, and gives it a
      ‘before-string’ property containing text that has a ‘display’
      property whose value is the image.  (Whew!)
 
  -- Function: remove-images start end &optional buffer
      This function removes images in BUFFER between positions START and
      END.  If BUFFER is omitted or ‘nil’, images are removed from the
      current buffer.
 
      This removes only images that were put into BUFFER the way
      ‘put-image’ does it, not images that were inserted with
      ‘insert-image’ or in other ways.
 
  -- Function: image-size spec &optional pixels frame
      This function returns the size of an image as a pair
      ‘(WIDTH . HEIGHT)’.  SPEC is an image specification.  PIXELS
      non-‘nil’ means return sizes measured in pixels, otherwise return
      sizes measured in the default character size of FRAME (SeeFrame
      Font).  FRAME is the frame on which the image will be displayed.
      FRAME null or omitted means use the selected frame (SeeInput
      Focus).
 
  -- Variable: max-image-size
      This variable is used to define the maximum size of image that
      Emacs will load.  Emacs will refuse to load (and display) any image
      that is larger than this limit.
 
      If the value is an integer, it directly specifies the maximum image
      height and width, measured in pixels.  If it is floating point, it
      specifies the maximum image height and width as a ratio to the
      frame height and width.  If the value is non-numeric, there is no
      explicit limit on the size of images.
 
      The purpose of this variable is to prevent unreasonably large
      images from accidentally being loaded into Emacs.  It only takes
      effect the first time an image is loaded.  Once an image is placed
      in the image cache, it can always be displayed, even if the value
      of ‘max-image-size’ is subsequently changed (SeeImage Cache).