|
1671 | 1671 | "import mmap\n",
|
1672 | 1672 | "import textwrap\n",
|
1673 | 1673 | "\n",
|
| 1674 | + "import zopfli\n", |
| 1675 | + "import zopfli.gzip\n", |
| 1676 | + "\n", |
1674 | 1677 | "import numpy\n",
|
1675 | 1678 | "import numpy as np\n",
|
1676 | 1679 | "\n",
|
|
1728 | 1731 | "* `roi_alpha` (`float`): transparency of the ROIs in a range of [0.0, 1.0].\n",
|
1729 | 1732 | "* `roi_border_width` (`int`): width of the line border on each ROI.\n",
|
1730 | 1733 | "* `trace_plot_width` (`int`): width of the trace plot.\n",
|
1731 |
| - "* `compresslevel` (`int`): compression level to use with zlib for trace data [0, 9]." |
| 1734 | + "* `compresslevel` (`int`): compression level to use with zlib for trace data [0, 9].\n", |
| 1735 | + "* `use_zopfli` (`bool`): whether to use Zopfli or zlib." |
1732 | 1736 | ]
|
1733 | 1737 | },
|
1734 | 1738 | {
|
|
1743 | 1747 | "roi_border_width = 3\n",
|
1744 | 1748 | "trace_plot_width = 500\n",
|
1745 | 1749 | "compresslevel = 6\n",
|
| 1750 | + "use_zopfli = False\n", |
1746 | 1751 | "\n",
|
1747 | 1752 | "\n",
|
1748 | 1753 | "bio.curdoc().clear()\n",
|
|
1821 | 1826 | " plot_projs.append(plot_std)\n",
|
1822 | 1827 | "\n",
|
1823 | 1828 | "\n",
|
1824 |
| - "def gzip_compress(data, compresslevel=6):\n", |
1825 |
| - " compressed = io.BytesIO()\n", |
1826 |
| - " with gzip.GzipFile(fileobj=compressed, mode=\"wb\", compresslevel=compresslevel) as compressor:\n", |
1827 |
| - " compressor.write(data)\n", |
1828 |
| - " return compressed.getvalue()\n", |
| 1829 | + "def gzip_compress(data, compresslevel=6, use_zopfli=False):\n", |
| 1830 | + " if use_zopfli:\n", |
| 1831 | + " return zopfli.gzip.compress(data, gzip_mode=compresslevel)\n", |
| 1832 | + " else:\n", |
| 1833 | + " compressed = io.BytesIO()\n", |
| 1834 | + " with gzip.GzipFile(fileobj=compressed, mode=\"wb\", compresslevel=compresslevel) as compressor:\n", |
| 1835 | + " compressor.write(data)\n", |
| 1836 | + " return compressed.getvalue()\n", |
1829 | 1837 | "\n",
|
1830 | 1838 | "\n",
|
1831 | 1839 | "all_tr_dtype_srcs = ColumnDataSource(data=dict(traces_dtype=traces.dtype.type(0)[None]))\n",
|
1832 | 1840 | "all_tr_shape_srcs = ColumnDataSource(data=dict(traces_shape=traces.shape))\n",
|
1833 | 1841 | "all_tr_srcs = ColumnDataSource(data=dict(\n",
|
1834 | 1842 | " traces=numpy.frombuffer(\n",
|
1835 |
| - " gzip_compress(traces.tobytes(), compresslevel=compresslevel),\n", |
| 1843 | + " gzip_compress(traces.tobytes(), compresslevel=compresslevel, use_zopfli=use_zopfli),\n", |
1836 | 1844 | " dtype=np.uint8\n",
|
1837 | 1845 | " )\n",
|
1838 | 1846 | "))\n",
|
|
0 commit comments