''' A really quick and dirty hack to extend PixMapWrapper They are mere copies of the toImage and fromImage methods. Riccardo Trocca (rtrocca@libero.it) ''' from PixMapWrapper import * import Numeric class ExtPixMapWrapper(PixMapWrapper): def toNumeric(self): data = self.tostring()[1:] + chr(0) bounds = self.bounds tmp=Numeric.fromstring(data,Numeric.UnsignedInt8) #tmp.shape=(bounds[3]-bounds[1],bounds[2]-bounds[0],4) tmp.shape=(bounds[2]-bounds[0],bounds[3]-bounds[1],4) return Numeric.transpose(tmp,(1,0,2)) def fromNumeric(self,num): s=num.shape x=num.shape[1] y=num.shape[0] #bands=1 Greyscale image #bands=3 RGB image #bands=4 RGBA image if len(s)==2: bands=1 num=Numeric.resize(num,(y,x,1)) else: bands=num.shape[2] if bands==1: num=Numeric.concatenate((num,num,num),2) bands=3 if bands==3: alpha=Numeric.ones((y,x))*255 alpha.shape=(y,x,1) num=Numeric.concatenate((num,alpha),2) data=chr(0)+Numeric.transpose(num,(1,0,2)).astype(Numeric.UnsignedInt8).tostring() PixMapWrapper.fromstring(self,data,x,y)