widget_image.py
46 lines
| 1.7 KiB
| text/x-python
|
PythonLexer
Jonathan Frederic
|
r17598 | """Image class. | ||
Jonathan Frederic
|
r14449 | |||
Maximilian Albert
|
r16376 | Represents an image in the frontend using a widget. | ||
Jonathan Frederic
|
r14449 | """ | ||
#----------------------------------------------------------------------------- | ||||
# Copyright (c) 2013, the IPython Development Team. | ||||
# | ||||
# Distributed under the terms of the Modified BSD License. | ||||
# | ||||
# The full license is in the file COPYING.txt, distributed with this software. | ||||
#----------------------------------------------------------------------------- | ||||
#----------------------------------------------------------------------------- | ||||
# Imports | ||||
#----------------------------------------------------------------------------- | ||||
import base64 | ||||
Jonathan Frederic
|
r14540 | from .widget import DOMWidget | ||
Jonathan Frederic
|
r14669 | from IPython.utils.traitlets import Unicode, CUnicode, Bytes | ||
Jonathan Frederic
|
r17598 | from IPython.utils.warn import DeprecatedClass | ||
Jonathan Frederic
|
r14449 | |||
#----------------------------------------------------------------------------- | ||||
# Classes | ||||
#----------------------------------------------------------------------------- | ||||
Jonathan Frederic
|
r17598 | class Image(DOMWidget): | ||
Jonathan Frederic
|
r17602 | """Displays an image as a widget. | ||
The `value` of this widget accepts a byte string. The byte string is the raw | ||||
image data that you want the browser to display. You can explicitly define | ||||
the format of the byte string using the `format` trait (which defaults to | ||||
"png").""" | ||||
Jonathan Frederic
|
r14701 | _view_name = Unicode('ImageView', sync=True) | ||
Jonathan Frederic
|
r14449 | |||
# Define the custom state properties to sync with the front-end | ||||
Jonathan Frederic
|
r14588 | format = Unicode('png', sync=True) | ||
Jonathan Frederic
|
r14669 | width = CUnicode(sync=True) | ||
height = CUnicode(sync=True) | ||||
Jonathan Frederic
|
r14588 | _b64value = Unicode(sync=True) | ||
Jonathan Frederic
|
r14449 | |||
value = Bytes() | ||||
def _value_changed(self, name, old, new): | ||||
Maximilian Albert
|
r16376 | self._b64value = base64.b64encode(new) | ||
Jonathan Frederic
|
r17598 | |||
Jonathan Frederic
|
r17602 | |||
# Remove in IPython 4.0 | ||||
Jonathan Frederic
|
r17598 | ImageWidget = DeprecatedClass(Image, 'ImageWidget') | ||