Ah, ok, I'll fix the type issue.

On Jun 29, 2015, at 5:37 PM, Jonathan Gibbs <[email protected]> wrote:

> I should have seen this sooner, but it appears that set_pixels in python is 
> hard-coded to expect TypeDesc::TypeFloat, where as get_pixels lets me get the 
> values using any type I specify. Do you think it's a good idea to be 
> symmetric here?
> 
> (py_imagebuf.cpp line 362)
> 
> My particular use case is 16-bit int data. It's probably OK to promote to 
> float given the processing I'm doing, but wasn't going to do that without a 
> need.
> 
> The current get_pixels/set_pixels interface return a python array 
> (array.array), which I'm converting to a numpy.ndarray without trouble. I 
> think I'm copying the data. There may be some way to get numpy and array to 
> share memory, I'm still figuring that out. I imagine most will want them as 
> numpy ndarrays, but it is nice to not have OIIO dependent on NumPy.
> 
> (For the python-ites:
> 
> numpyPixels = numpy.asarray(arrayPixels).reshape((spec.width, spec.height))
> 
> and
> 
> arrayPixels = array.array('H', numpyPixels.flatten())
> )
> 
> --jono
> 
> PS: Either Google or Apply insist of changing "numpy" into "bumpy" every 
> single time. Bumpy is a much better name for the library.
> 
> 
> On Mon, Jun 15, 2015 at 2:54 PM Larry Gritz <[email protected]> wrote:
> Jono, see this: https://github.com/OpenImageIO/oiio/pull/1167
> 
> This adds a set_pixels (and in the Python binding, it takes either a tuple or 
> a Python array). It's probably not super efficient (ick, there's an 
> intermediate copy to a std::vector involved), but it's a start.
> 
> I'm not experienced enough with numpy to know; how would you want the Python 
> API to look to be most efficient for your purposes?
> 
>       -- lg
> 
> 
> On Jun 4, 2015, at 4:24 PM, Jonathan Gibbs <[email protected]> wrote:
> 
>> Does anyone have a good/simple example of working with OIIO in python. I can 
>> get at the raw pixels nicely enough with ImageBuf.get_pixels(), but it's not 
>> clear the best way to get those pixels back into an ImageBuf for writing.  
>> (There is no set_pixels.)
>> 
>> As a side note, get_pixels returns a Python array, which I can convert 
>> easily enough to a numpy.ndarray. Is there a better way to get from a 
>> ImageBuf to a numpy.ndarray and back again in a reasonably efficient manner?
>> 
>> --jono
> 
>> _______________________________________________
>> Oiio-dev mailing list
>> [email protected]
>> http://lists.openimageio.org/listinfo.cgi/oiio-dev-openimageio.org
> 
> 
> --
> Larry Gritz
> [email protected]
> 
> 
> 
> _______________________________________________
> Oiio-dev mailing list
> [email protected]
> http://lists.openimageio.org/listinfo.cgi/oiio-dev-openimageio.org
> _______________________________________________
> Oiio-dev mailing list
> [email protected]
> http://lists.openimageio.org/listinfo.cgi/oiio-dev-openimageio.org

--
Larry Gritz
[email protected]



_______________________________________________
Oiio-dev mailing list
[email protected]
http://lists.openimageio.org/listinfo.cgi/oiio-dev-openimageio.org

Reply via email to