parameters: (ipixels, apixels, ipsize, apsize)
return_statement: return out
docstring: Interleave (colour) planes, e.g. RGB + A = RGBA.
  
      Return an array of pixels consisting of the `ipsize` elements of
      data from each pixel in `ipixels` followed by the `apsize` elements
      of data from each pixel in `apixels`.  Conventionally `ipixels`
      and `apixels` are byte arrays so the sizes are bytes, but it
      actually works with any arrays of the same type.  The returned
      array is the same type as the input arrays which should be the
      same type as each other.
docstring_summary: Interleave (colour) planes, e.g. RGB + A = RGBA.
docstring_tokens: Interleave ( colour ) planes e . g . RGB + A = RGBA .
function: def interleave_planes(ipixels, apixels, ipsize, apsize):
      """
      Interleave (colour) planes, e.g. RGB + A = RGBA.
  
      Return an array of pixels consisting of the `ipsize` elements of
      data from each pixel in `ipixels` followed by the `apsize` elements
      of data from each pixel in `apixels`.  Conventionally `ipixels`
      and `apixels` are byte arrays so the sizes are bytes, but it
      actually works with any arrays of the same type.  The returned
      array is the same type as the input arrays which should be the
      same type as each other.
      """
  
      itotal = len(ipixels)
      atotal = len(apixels)
      newtotal = itotal + atotal
      newpsize = ipsize + apsize
      # Set up the output buffer
      # See http://www.python.org/doc/2.4.4/lib/module-array.html#l2h-1356
      out = array(ipixels.typecode)
      # It's annoying that there is no cheap way to set the array size :-(
      out.extend(ipixels)
      out.extend(apixels)
      # Interleave in the pixel data
      for i in range(ipsize):
          out[i:newtotal:newpsize] = ipixels[i:itotal:ipsize]
      for i in range(apsize):
          out[i+ipsize:newtotal:newpsize] = apixels[i:atotal:apsize]
      return out
function_tokens: def interleave_planes ( ipixels , apixels , ipsize , apsize ) : itotal = len ( ipixels ) atotal = len ( apixels ) newtotal = itotal + atotal newpsize = ipsize + apsize # Set up the output buffer # See http://www.python.org/doc/2.4.4/lib/module-array.html#l2h-1356 out = array ( ipixels . typecode ) # It's annoying that there is no cheap way to set the array size :-( out . extend ( ipixels ) out . extend ( apixels ) # Interleave in the pixel data for i in range ( ipsize ) : out [ i : newtotal : newpsize ] = ipixels [ i : itotal : ipsize ] for i in range ( apsize ) : out [ i + ipsize : newtotal : newpsize ] = apixels [ i : atotal : apsize ] return out