Skip to content

Instantly share code, notes, and snippets.

@adamatan
Created January 9, 2020 17:01
Show Gist options
  • Save adamatan/05abb6d53d111d3f62fda19a41a24240 to your computer and use it in GitHub Desktop.
Save adamatan/05abb6d53d111d3f62fda19a41a24240 to your computer and use it in GitHub Desktop.
Display the source blob
Display the rendered blob
Raw
{
"cells": [
{
"cell_type": "code",
"execution_count": 2,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Looking in indexes: https://repo.dev.wixpress.com/artifactory/api/pypi/pypi-local/simple, https://pypi.python.org/simple\n",
"Collecting pillow\n",
"\u001b[?25l Downloading https://files.pythonhosted.org/packages/0c/43/b52847e473ac6cbd10a749b63018b2bb08b55c6e1a1923872361443906de/Pillow-7.0.0-cp37-cp37m-macosx_10_6_intel.whl (3.9MB)\n",
"\u001b[K |████████████████████████████████| 3.9MB 575kB/s eta 0:00:01\n",
"\u001b[?25hInstalling collected packages: pillow\n",
"Successfully installed pillow-7.0.0\n",
"Note: you may need to restart the kernel to use updated packages.\n"
]
}
],
"source": [
"pip install pillow"
]
},
{
"cell_type": "code",
"execution_count": 16,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"<matplotlib.image.AxesImage at 0x11401ad10>"
]
},
"execution_count": 16,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"%matplotlib inline\n",
"from PIL import Image\n",
"import numpy as np\n",
"from matplotlib.pyplot import imshow\n",
"\n",
"w, h = 512, 512\n",
"data = np.zeros((h, w, 3), dtype=np.uint8)\n",
"data[0:256, 0:256] = [255, 0, 0]\n",
"data[330:350, 300:302] = [255,100,100]\n",
"\n",
"img = Image.fromarray(data, 'RGB')\n",
"img.save('my.png')\n",
"\n",
"pil_im = Image.open('my.png')\n",
"imshow(np.asarray(pil_im))\n",
"\n"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3",
"language": "python",
"name": "python3"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.7.4"
}
},
"nbformat": 4,
"nbformat_minor": 2
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment