Fix palette encoding

This commit is contained in:
Steven Robertson 2011-12-17 21:06:00 -05:00
parent f057108360
commit 201f5b0963

View File

@ -105,7 +105,7 @@ def palette_encode(data, format='rgb8'):
""" """
if format != 'rgb8': if format != 'rgb8':
raise NotImplementedError raise NotImplementedError
enc = base64.b64encode(np.uint8(data*255.0)) enc = base64.b64encode(np.uint8(data[:,:3]*255.0))
return ['rgb8'] + [enc[i:i+64] for i in range(0, len(enc), 64)] return ['rgb8'] + [enc[i:i+64] for i in range(0, len(enc), 64)]
class _AttrDict(dict): class _AttrDict(dict):
@ -260,14 +260,15 @@ class XMLGenomeParser(object):
assert self._flame is None assert self._flame is None
self._flame = dict(attrs) self._flame = dict(attrs)
self._flame['xforms'] = [] self._flame['xforms'] = []
self._flame['palette'] = np.zeros((256, 3), dtype=np.uint8) self._flame['palette'] = np.ones((256, 4), dtype=np.float32)
elif name == 'xform': elif name == 'xform':
self._flame['xforms'].append(dict(attrs)) self._flame['xforms'].append(dict(attrs))
elif name == 'finalxform': elif name == 'finalxform':
self._flame['finalxform'] = dict(attrs) self._flame['finalxform'] = dict(attrs)
elif name == 'color': elif name == 'color':
idx = int(attrs['index']) idx = int(attrs['index'])
self._flame['palette'][idx] = map(float, attrs['rgb'].split()) self._flame['palette'][idx][:3] = [float(v) / 255.0
for v in attrs['rgb'].split()]
def end_element(self, name): def end_element(self, name):
if name == 'flame': if name == 'flame':
self.flames.append(self._flame) self.flames.append(self._flame)