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