I'm trying to execute this bit of code I found in one of the devkit examples. (customImagePlane.py)
image = OpenMaya.MImage() image.readFromFile(filenameStr) scriptUtil = OpenMaya.MScriptUtil() widthPtr = scriptUtil.asUintPtr() heightPtr = scriptUtil.asUintPtr() scriptUtil.setUint( widthPtr, 0 ) scriptUtil.setUint( heightPtr, 0 ) image.getSize( widthPtr, heightPtr ) pWidth = scriptUtil.getUint(widthPtr) pHeight = scriptUtil.getUint(heightPtr) print 'readBandedImageNode: ', pWidth, pHeight size = pWidth * pHeight # Implement transparency charPixelPtr = image.pixels() for i in range( 0, size, 4 ): alphaIndex = (i*4)+3 alpha = OpenMayaScript.getCharArrayItem(charPixelPtr,alphaIndex) OpenMayaScript.setCharArray( alpha * (1.0 - self.fTransparency), alphaIndex ) First off, what is OpenMayaScript? It doesn't declare it or import it anywhere, so I'm assuming they meant MScriptUtil() as those are functions of it being used. Secondly, this isn't working =P. I'm getting this error: # TypeError: argument number 1: a 'char *' is expected, 'PySwigObject (_p_unsigned_char)' is received # I'm really not having much luck learning the python api as it seems all these expected types that C++ requires are getting lost in pythonese. image.pixels() is supposed to return a constant unsigned char... so why is piping that into that variable above breaking it? This is sample code so it should work? What is a PySwigObject? I've also tried using image.floatPixels from the MImage class and it returns None every time. I'm trying to get pixel value information at given coordinates. I found another C++ example of what I want to do but I'm a little lost on the c++ to python syntax change. C++ exmaple: const unsigned char* pix = image.pixels() + (w*py*4 + 4*px); Can anyone tell me what I'm doing wrong, or is this another bug? --~--~---------~--~----~------------~-------~--~----~ http://groups.google.com/group/python_inside_maya -~----------~----~----~----~------~----~------~--~---