Image( map, elm )
In this form Image returns the image of the element elm of the source
of the mapping map under map, i.e., the element of the range to which
map  maps elm.   Note  that  map must be a single valued mapping, a
multi  valued  mapping is not  allowed (see  Images).  This can also be
expressed as elm ^ map (see Operations for Mappings).
    gap> g := Group( (1,2,3,4), (2,4), (5,6,7) );;  g.name := "g";;
    gap> p4 := MappingByFunction( g, g, x -> x^4 );
    MappingByFunction( g, g, function ( x )
        return x ^ 4;
    end )
    gap> Image( p4, (2,4)(5,6,7) );
    (5,6,7)
    gap> p5 := MappingByFunction( g, g, x -> x^5 );
    MappingByFunction( g, g, function ( x )
        return x ^ 5;
    end )
    gap> Image( p5, (2,4)(5,6,7) );
    (2,4)(5,7,6) 
Image( map, elms )
In this form  Image returns the  image of the set of elements elms of
the source  of the mapping map under map,  i.e., set of images of the
elements in elms.  elms may be a proper set (see Sets) or a  domain
(see  Domains).   The result will be  a subset  of the  range of map,
either as a proper set  or  as  a  domain.  Again map must be a  single
valued mapping, a multi valued mapping is not allowed (see Images).
    gap> Image( p4, Subgroup( g, [ (2,4), (5,6,7) ] ) );
    [ (), (5,6,7), (5,7,6) ]
    gap> Image( p5, [ (5,6,7), (2,4) ] );
    [ (5,7,6), (2,4) ] 
Note that in the  first example, the  result is returned as a proper set,
even though it is mathematically a subgroup.  This is because p4 is not
known to be a homomorphism, even though it is one.
Image( map )
In  this form Image returns the image of the  mapping map, i.e.,  the
subset  of element  of  the range  of map  that are  actually values of
map.  Note that in  this case the argument may also be  a multi  valued
mapping.
    gap> Image( p4 );
    [ (), (5,6,7), (5,7,6) ]
    gap> Image( p5 ) = g;
    true 
Image firsts checks in which form it is called.
In the  first case it  calls map.operations.ImageElm(  map, elm )
and returns this value.
The  default function called  this  way  is  MappingOps.ImageElm, which
checks that map  is  indeed  a single  valued  mapping,  calls Images(
map, elm ), and  returns  the single element of the set  returned by
Images.  Look in the index under Image to see for which mappings this
function is overlaid.
In the second case it calls map.operations.ImageSet( map,  elms )
and returns this value.
The default  function  called this  way is  MappingOps.ImageSet,  which
checks that  map  is  indeed a  single valued  mapping,  calls Images(
map, elms  ),  and returns  this  value.   Look  in the index  under
Image to see for which mappings this function is overlaid.
In the third case  it tests if the field map.image is bound.  If this
field  is  bound,  it  simply  returns this value.   Otherwise  it  calls
map.operations.ImageSource( map ), remembers the returned  value in
map.image, and returns it.
The default function  called this way is  MappingOps.ImageSource, which
calls Images(  map,  map.source  ),  and returns  this value.  This
function  is  seldom   overlaid,  since   all   the   work  is   done  by
map.operations.ImagesSet.
GAP 3.4.4