With the help of Windows Subsystem for Linux (WSL, for short)1, we can use the nearly full Linux environment on Windows system. In this post, I would like to share how to display images inside Ubuntu on Windows, which is one of the popular distrubtions.
If you try to show an image with Pillow using the following code inside WSL:
from PIL import Image im = Image.open("test.jpg") im.show()
you will find that nothing happens if you run the above code. The reason is two-fold:
- There is no valid image viewer on your Ubuntu on Windows (Pillow will use the system default image viewer, which is Imagemagick on Linux)
- There is no X server by which you can use GUI applications.
After knowing the reasons, the solution is simple. First, we need to install Imagemagick for Ubuntu on Windows (not on Windows 10 itself, this is important!):
sudo apt install imagemagick
choco install vcxsrv
After install, run it on your system. Inside Ubuntu on Windows, you should also
DISPALY environment variable in your
echo "export DISPLAY=localhost:0.0" >> ~/.bashrc && source ~/.bashrc
Run your Python code again and you should be able to see the image displayed properly on your screen.
License CC BY-NC-ND 4.0