def iacrop(f, side='all', color='black'):
from Numeric import asarray, NewAxis, sometrue, nonzero
##if len(f.shape) == 1: f = f[NewAxis,:]
##aux1, aux2 = sometrue(f,0), sometrue(f,1)
##col, row = nonzero(aux1), nonzero(aux2)
##g = f[row[0]:row[-1]+1, col[0]:col[-1]+1]
f = asarray(f)
if len(f.shape) == 1: f = f[NewAxis,:]
if color == 'white': f = ianeg(f)
aux1, aux2 = sometrue(f,0), sometrue(f,1)
col, row = nonzero(aux1), nonzero(aux2)
if (not col) and (not row):
return None
if side == 'left': g = f[:, col[0]::]
elif side == 'right': g = f[:, 0:col[-1]+1]
elif side == 'top': g = f[row[0]::, :]
elif side == 'bottom': g = f[0:row[-1]+1, :]
else: g = f[row[0]:row[-1]+1, col[0]:col[-1]+1]
if color == 'white': g = ianeg(g)
return g