From 1f827214d287e02f4527535c5349db6afbae902f Mon Sep 17 00:00:00 2001 From: Steven Robertson Date: Sun, 18 Dec 2011 11:30:52 -0500 Subject: [PATCH 1/3] Round and clamp palette before encoding --- cuburn/genome.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/cuburn/genome.py b/cuburn/genome.py index 27857bd..6b60985 100644 --- a/cuburn/genome.py +++ b/cuburn/genome.py @@ -105,7 +105,8 @@ def palette_encode(data, format='rgb8'): """ if format != 'rgb8': raise NotImplementedError - enc = base64.b64encode(np.uint8(data[:,:3]*255.0)) + clamp = np.maximum(0, np.minimum(255, np.round(data[:,:3]*255.0))) + enc = base64.b64encode(np.uint8(clamp)) return ['rgb8'] + [enc[i:i+64] for i in range(0, len(enc), 64)] class _AttrDict(dict): From b29261771b5335e80353339e045db86ecff63638 Mon Sep 17 00:00:00 2001 From: Steven Robertson Date: Sun, 18 Dec 2011 11:31:18 -0500 Subject: [PATCH 2/3] Use AttributeError in _AttrDict --- cuburn/genome.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/cuburn/genome.py b/cuburn/genome.py index 6b60985..9efc19c 100644 --- a/cuburn/genome.py +++ b/cuburn/genome.py @@ -111,7 +111,9 @@ def palette_encode(data, format='rgb8'): class _AttrDict(dict): def __getattr__(self, name): - return self[name] + if name in self: + return self[name] + raise AttributeError('%s not a dict key' % name) @classmethod def _wrap(cls, dct): From d4f82f8d38b2248e082c37b2fdf7859241b3f239 Mon Sep 17 00:00:00 2001 From: Steven Robertson Date: Sun, 18 Dec 2011 11:35:20 -0500 Subject: [PATCH 3/3] Better info section format --- cuburn/genome.py | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/cuburn/genome.py b/cuburn/genome.py index 9efc19c..ffe59ed 100644 --- a/cuburn/genome.py +++ b/cuburn/genome.py @@ -299,9 +299,12 @@ def convert_flame(flame): } info = {} - for k, f in [('name', 'name'), ('author_url', 'url'), ('author', 'nick')]: - if f in flame: - info[k] = flame[f] + if 'name' in flame: + info['name'] = flame['name'] + if 'nick' in flame: + info['authors'] = [flame['nick']] + if 'url' in flame: + info['authors'][0] = info['authors'][0] + ', http://' + flame['url'] time = dict(frame_width=float(flame.get('temporal_filter_width', 1)), duration=1)