Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save Hiroshiba/fa532ad1e3944ac256038a355f5547fd to your computer and use it in GitHub Desktop.
Save Hiroshiba/fa532ad1e3944ac256038a355f5547fd to your computer and use it in GitHub Desktop.
Display the source blob
Display the rendered blob
Raw
{
"cells": [
{
"cell_type": "code",
"execution_count": 35,
"metadata": {},
"outputs": [],
"source": [
"from colormath.color_objects import LabColor, sRGBColor\n",
"from colormath.color_conversions import convert_color\n",
"\n",
"import numpy\n",
"import matplotlib.pyplot as plt\n",
"%matplotlib inline"
]
},
{
"cell_type": "code",
"execution_count": 71,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"<matplotlib.image.AxesImage at 0x7f2f97162510>"
]
},
"execution_count": 71,
"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": [
"tone_colors = [\n",
" convert_color(sRGBColor.new_from_rgb_hex(s), LabColor)\n",
" for s in [\n",
" \"#C6006F\",\n",
" \"#C70044\",\n",
" \"#C7000B\",\n",
" \"#D28300\",\n",
" \"#DFD000\",\n",
" \"#7BAA17\",\n",
" \"#00873C\",\n",
" \"#008A83\",\n",
" \"#008DCB\",\n",
" \"#005AA0\",\n",
" \"#181878\",\n",
" \"#800073\",\n",
" ]\n",
"]\n",
"\n",
"rgbs = []\n",
"for lab in tone_colors:\n",
" rgb = convert_color(lab, sRGBColor)\n",
" rgbs.append([rgb.rgb_r, rgb.rgb_g, rgb.rgb_b])\n",
"\n",
"plt.imshow([rgbs])"
]
},
{
"cell_type": "code",
"execution_count": 87,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"<matplotlib.image.AxesImage at 0x7f2f978a90d0>"
]
},
"execution_count": 87,
"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": [
"luminance = numpy.median([c.lab_l for c in tone_colors]) \n",
"radius = numpy.median([numpy.sqrt(c.lab_a**2 + c.lab_b**2) for c in tone_colors])\n",
"\n",
"rgbs = []\n",
"for angle in numpy.linspace(numpy.pi/2, -numpy.pi*3/2, num=12, endpoint=False):\n",
" lab_a = numpy.sin(angle) * radius\n",
" lab_b = numpy.cos(angle) * radius\n",
" lab = LabColor(luminance, lab_a, lab_b)\n",
" rgb = convert_color(lab, sRGBColor)\n",
" rgbs.append([rgb.rgb_r, rgb.rgb_g, rgb.rgb_b])\n",
"\n",
"plt.imshow([rgbs])"
]
},
{
"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.5"
}
},
"nbformat": 4,
"nbformat_minor": 4
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment