| Extracted from Pike v7.8 release 866 at 2016-04-05.

[Top]
Image
Image.GIF

# Method Image.GIF.encode()

Method encode

  `string encode(object img)`
  `string encode(object img, int colors)`
  `string encode(object img, object colortable)`
  `string encode_trans(object img, object alpha)`
  `string encode_trans(object img, int tr_r, int tr_g, int tr_b)`
  `string encode_trans(object img, int colors, object alpha)`
  `string encode_trans(object img, int colors, int tr_r, int tr_g, int tr_b)`
  `string encode_trans(object img, int colors, object alpha, int tr_r, int tr_g, int tr_b)`
  `string encode_trans(object img, object colortable, object alpha)`
  `string encode_trans(object img, object colortable, int tr_r, int tr_g, int tr_b)`
  `string encode_trans(object img, object colortable, object alpha, int a_r, int a_g, int a_b)`
  `string encode_trans(object img, object colortable, int transp_index)`

Description

  Create a complete GIF file.

  The latter (encode_trans ) functions add transparency capabilities.

  Example:

      img=Image.Image ([...]);
      [...] // make your very-nice image
      write(Image.GIF.encode (img)); // write it as GIF on stdout

Parameter `img`

  The image which to encode.

Parameter `colors`
Parameter `colortable`

  These arguments decides what colors the image should be encoded with. If a number is given, a colortable with be created with (at most) that amount of colors. Default is '256' (GIF maximum amount of colors).

Parameter `alpha`

  Alpha channel image (defining what is transparent); black color indicates transparency. GIF has only transparent or nontransparent (no real alpha channel). You can always dither a transparency channel: `Image.Colortable(my_alpha, ({({0,0,0}),({255,255,255})}))
  ->full()
  ->floyd_steinberg()
  ->map(my_alpha)`

Parameter `tr_r`
Parameter `tr_g`
Parameter `tr_b`

  Use this (or the color closest to this) color as transparent pixels.

Parameter `a_r`
Parameter `a_g`
Parameter `a_b`

  Encode transparent pixels (given by alpha channel image) to have this color. This option is for making GIFs for the decoders that doesn't support transparency.

Parameter `transp_index`

  Use this color no in the colortable as transparent color.

Note

  For advanced users:

      Image.GIF.encode_trans(img,colortable,alpha);

  is equivalent of using

      Image.GIF.header_block(img->xsize(),img->ysize(),colortable)+
      Image.GIF.render_block(img,colortable,0,0,0,alpha)+
      Image.GIF.end_block();

  and is actually implemented that way.