text: #--------------------------------------------------------------
  #
  #   PyGUI - NumPy interface - Windows
  #
  #--------------------------------------------------------------
  
  from numpy import ndarray, uint8
  from GUI import GDIPlus as gdi
  from GUI import Image
  
  def image_from_ndarray(array, format, size = None):
  	"""
  	Creates an Image from a numpy ndarray object. The format
  	may be 'RGB' or 'RGBA'. If a size is specified, the array
  	will be implicitly reshaped to that size, otherwise the size
  	is inferred from the first two dimensions of the array.
  	"""
  	if array.itemsize <> 1:
  		raise ValueError("Color component size must be 1 byte")
  	if size is None:
  		shape = array.shape
  		if len(shape) <> 3:
  			raise ValueError("Array has wrong number of dimensions")
  		height, width, pixel_size = shape
  		if pixel_size <> len(format):
  			raise ValueError("Last dimension of array does not match format")
  	else:
  		width, height = size
  		pixel_size = len(format)
  		data_size = array.size
  		if data_size <> width * height * pixel_size:
  			raise ValueError("Array has wrong shape for specified size and format")
  		shape = (height, width, pixel_size)
  		array = array.reshape(shape)
  	swapped = ndarray(shape, uint8)
  	swapped[..., 0] = array[..., 2]
  	swapped[..., 1] = array[..., 1]
  	swapped[..., 2] = array[..., 0]
  	if pixel_size == 4:
  		fmt = gdi.PixelFormat32bppARGB
  		swapped[..., 3] = array[..., 3]
  	else:
  		fmt = gdi.PixelFormat24bppRGB
  	data = swapped.tostring()
  	bitmap = gdi.Bitmap.from_data(width, height, fmt, data)
  	image = Image.__new__(Image)
  	image._win_image = bitmap
  	image._data = data
  	return image
  