title: Create Vips Image from Numpy RGB array for big images
body: <p>I was trying to output a large, generated image with PIL/Pillow, but it breaks when the image sizes get bigger.</p>
  
  <p>So based on things I read on SO, I'm trying to use Vips.</p>
  
  <p>My generated data is a numpy array of RGB values.  I want to convert this to a image in Vips so I can save it.  However I cannot work out how to get the pixel data into Vips.</p>
  
  <pre><code>import numpy
  import gi
  gi.require_version('Vips', '8.0')
  from gi.repository import Vips
  
  WIDTH=32768
  HEIGHT=32768
  UCHAR=Vips.BandFormat.UCHAR
  
  # Create an RGB black image
  black_space = numpy.zeros( ( WIDTH, HEIGHT, 3 ), dtype=numpy.uint8 )
  
  # this doesn't work
  vips_image = Vips.Image.new_from_memory( black_space, WIDTH, HEIGHT, bands=3, format=UCHAR )
  vips_image.write_to_file( "space_32k.tiff" )
  </code></pre>
  
  <p>Of course it fails with the error when creating the Vips image:</p>
  
  <pre><code>Traceback (most recent call last):
    File "./bad_vips.py", line 14, in &lt;module&gt;
      vips_image = Vips.Image.new_from_memory( black_space, WIDTH, HEIGHT, bands=3, format=UCHAR )
  TypeError: Item 0: expected int argument
  </code></pre>
  
  <p>Is there a way of transforming the numpy array so it works with Vips?  </p>
  
  <p>I also tried passing <code>black_space.data</code>, but then I get:</p>
  
  <pre><code>NotImplementedError: Item 0: multi-dimensional sub-views are not implemented
  </code></pre>