Making before/after image sliders in JupyterLab
Project description
Jupyter Splitview
A cell magic that displays images in splitview using https://github.com/NUKnightLab/juxtapose.
NOTE: Still work in progress, there will be breaking changes.
*Note: JupyterLite example is still work in progress
Installation
pip install jupyter-splitview
Example
import jupyter_splitview
%%splity
from skimage import data
from skimage.util import random_noise
import matplotlib.pyplot as plt
img = data.chelsea()
noisy_img = random_noise(img, var=0.02)
fig, ax1 = plt.subplots()
ax1.axis("off")
ax1.imshow(img)
fig, ax2 = plt.subplots()
ax2.axis("off")
ax2.imshow(noisy_img)
Note: The split view widget is still responsive after closing and reopening the notebook without running the cell again.
Another example:
%%splity --position 73% --height auto
import matplotlib.pyplot as plt
import numpy as np
array1 = np.full((15, 30), 10)
array2 = np.random.randint(0, 10, size=(15, 30))
fig, ax1 = plt.subplots(figsize=(5, 10))
ax1.imshow(array1)
fig, ax2 = plt.subplots(figsize=(5, 10))
ax2.imshow(array2)
Notebook arguments
--position 73%
will set the slider start position to 73%.- The height of the widget.
--height 220
will set the height to 220 pixel.- When
--height
is not provided, the default height of the widget is 300 pixel. --height auto
will set the height by the value of the first image's resolution in vertical direction.- The widget's width will always be adjusted automatically.
Notebook formatting
Formatting with black can be done this way:
pip install 'black[jupyter]'
black --python-cell-magics splity splitview_magic.ipynb
Developer Installation
git clone --recurse https://github.com/kolibril13/jupyter-splitview
(Note: In case that the repo was already cloned e.g. with the GitHub Desktop client, the GitHub submodule has to be loaded viagit submodule update --init --recursive
)poetry install
Changelog
Milestones
-
Handle cases where n ≠ 2 images. Currently: All further img are ignored.
-
implement tests, find out how to test a magic class
-
Idea: Second option without using cell magic:
from splitview import Splity # (does not yet exist)
my_splity = Splity(left_layer=img1, right_layer=img2)
display(my_splity)
0.0.8 (Work in Progress)
- Make this work also in VSCode notebooks, see this issue.
0.0.7
- Rewrite of the import of JavaScript and CSS to make it more robust when closing and opening the notebook
- First attempt to add a JupyterLite example.
0.0.6
Fix poetry workflow
0.0.5
- Ship the javascript directly with the package, so no internet connection is required
- use jinja2 to save HTML in separate file
- load stylesheet and javascript only once in the beginning, and not in every cell that contains the splitview widget.
0.0.4
- New
--height
parameter
0.0.3
- default slider position
- updated minimal example
- internal code restructuring and formatting
- Handle import in non jupyter context
0.0.2
- save images in base64 strings and don't load images to disk (increases package security).
0.0.1
- First release
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file jupyter-splitview-0.0.7.tar.gz
.
File metadata
- Download URL: jupyter-splitview-0.0.7.tar.gz
- Upload date:
- Size: 14.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/1.1.13 CPython/3.9.13 Linux/5.13.0-1029-azure
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 5268f723431c33e030c7b07f1e06e071894ea5342622f3988e8821007a72047d |
|
MD5 | 6cc9e065fdc00d337ee2e3be0edb3ee4 |
|
BLAKE2b-256 | 35277c44bd61797b6472d38504617ff9afaead6490459d5fe04ff18811340446 |
File details
Details for the file jupyter_splitview-0.0.7-py3-none-any.whl
.
File metadata
- Download URL: jupyter_splitview-0.0.7-py3-none-any.whl
- Upload date:
- Size: 13.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/1.1.13 CPython/3.9.13 Linux/5.13.0-1029-azure
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 48c857bb1daa83d4f2e245153e4b5d58adc9befa4190b9dac757e59451378c08 |
|
MD5 | 2f60fd80dd1743cc08a41103c848abc4 |
|
BLAKE2b-256 | 2087517430782f9a18c5cfa3070c20cb99fe2818e761a8019855b368422c6de7 |