def write(filename, data, file=None, chart=(0,0)): atlases = formats.get_atlases(data) for i, atlas in enumerate(list(atlases)): for j, chart in enumerate(list(atlas)): atlases[i][j] = chart.transpose() meta_to_store = dict(data) del meta_to_store['center'] #put in CRPIX in header. extra = meta.encode(meta_to_store) special_records = [] while extra: special_records.append(SPECIAL_RECORD_HEADER + extra[:SPECIAL_RECORD_SIZE]) extra = extra[SPECIAL_RECORD_SIZE:] images = [] if 'center' in data: center = data['center'] crpix = [center[0] + 1, center[1] + 1, 1, 1] if 'palette' in data: import numpy palette = numpy.array(data['palette'], dtype=numpy.int32) images.append((palette, {'ctype': ['COLOR']} )) fits.write(file or open(filename, 'wb'), atlases, special_records=special_records, ctype=('X', 'Y', 'CHART', 'HISTORY'), crpix=crpix, images=images )
def write(filename, data, file=None, chart=(0,0)): image = data['chart(%d,%d)' % chart] from views import palette from StringIO import StringIO w = png.Writer(size=image.shape, bitdepth=8, palette=palette.to_rgb(data['palette']), text=[{'key': META_TAG, 'value': meta.encode(data), 'compression': True}]) s = StringIO() w.write(s, numpy.transpose(image)) if not file: file = open(filename, 'wb') file.write(s.getvalue())
def write(filename, data, file=None, chart=None): f = zipfile.ZipFile(file or filename, 'w', zipfile.ZIP_DEFLATED) #First try to save PNG data (charts with palettes) _write_charts(f, data) f.writestr('meta.txt', meta.encode(data)) f.close()