{
 "cells": [
  {
   "cell_type": "markdown",
   "id": "5d0f66de-8284-4f8f-80b2-5d999a2bd661",
   "metadata": {},
   "source": [
    "# Molecule Depiction in Jupiter Notebook"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "c00820f5-2b91-49cf-8eff-99521fb4b707",
   "metadata": {},
   "outputs": [],
   "source": [
    "from IPython.display import SVG, Image, display\n",
    "from openeye import oechem, oedepict\n",
    "\n",
    "mol = oechem.OEGraphMol()\n",
    "oechem.OESmilesToMol(mol, \"Cn1cnc2c1c(=O)n(c(=O)n2C)C caffeine\")\n",
    "oedepict.OEPrepareDepiction(mol)\n",
    "\n",
    "image_width, image_height = 300.0, 300.0"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "f6e1d029-b388-445b-bc5e-436a3171bf3a",
   "metadata": {},
   "source": [
    "## PNG Depiction"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "id": "e6805017-9f67-4d91-86ef-6b08646275c3",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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",
      "text/plain": [
       "<IPython.core.display.Image object>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "image = oedepict.OEImage(image_width, image_height)\n",
    "oedepict.OERenderMolecule(image, mol)\n",
    "oedepict.OEDrawCurvedBorder(image, oedepict.OELightGreyPen, 20)\n",
    "display(Image(oedepict.OEWriteImageToBytes(\"png\", image)))"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "e20c67b1-f5d1-4c27-b1db-7b056de7dba7",
   "metadata": {},
   "source": [
    "## SVG Depiction\n",
    "\n",
    "By default, OEDepict generates an SVG image without specifying a fixed width or height, defining only the image's viewBox.\n",
    "When this SVG image is displayed in a Jupyter notebook, it is automatically scaled to fit the width of the cell.\n",
    "\n",
    "#### See Also\n",
    "* [ViewBox - A Window Into The Soul Of SVG](https://web.archive.org/web/20140119030353/https://software.intel.com/en-us/html5/blogs/viewbox-a-window-into-the-soul-of-svg)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "id": "23c872ab-2e0e-4aad-b02e-1cca82cdf13f",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/svg+xml": [
       "<svg xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" viewBox=\"0.00 0.00 300.00 300.00\">\n",
       "<!-- Created by OpenEye Scientific Software -->\n",
       "<!-- Creation Date Fri Oct 31 15:34:15 2025 -->\n",
       "<rect width=\"300.00\" height=\"300.00\" fill=\"white\"/>\n",
       "<line x1=\"244.34\" y1=\"100.51\" x2=\"252.74\" y2=\"74.66\" stroke=\"black\" stroke-width=\"2\" stroke-linejoin=\"round\" stroke-linecap=\"round\"/>\n",
       "<line x1=\"244.34\" y1=\"100.51\" x2=\"239.80\" y2=\"114.50\" stroke=\"blue\" stroke-width=\"2\" stroke-linejoin=\"round\" stroke-linecap=\"round\"/>\n",
       "<line x1=\"209.91\" y1=\"134.81\" x2=\"224.09\" y2=\"130.20\" stroke=\"blue\" stroke-width=\"2\" stroke-linejoin=\"round\" stroke-linecap=\"round\"/>\n",
       "<line x1=\"209.91\" y1=\"134.81\" x2=\"183.88\" y2=\"143.26\" stroke=\"black\" stroke-width=\"2\" stroke-linejoin=\"round\" stroke-linecap=\"round\"/>\n",
       "<line x1=\"252.03\" y1=\"148.49\" x2=\"243.27\" y2=\"136.44\" stroke=\"blue\" stroke-width=\"2\" stroke-linejoin=\"round\" stroke-linecap=\"round\"/>\n",
       "<line x1=\"252.03\" y1=\"148.49\" x2=\"268.12\" y2=\"170.63\" stroke=\"black\" stroke-width=\"2\" stroke-linejoin=\"round\" stroke-linecap=\"round\"/>\n",
       "<line x1=\"252.03\" y1=\"192.78\" x2=\"268.12\" y2=\"170.63\" stroke=\"black\" stroke-width=\"2\" stroke-linejoin=\"round\" stroke-linecap=\"round\"/>\n",
       "<line x1=\"252.03\" y1=\"192.78\" x2=\"243.27\" y2=\"204.84\" stroke=\"blue\" stroke-width=\"2\" stroke-linejoin=\"round\" stroke-linecap=\"round\"/>\n",
       "<line x1=\"244.19\" y1=\"187.08\" x2=\"255.13\" y2=\"172.02\" stroke=\"black\" stroke-width=\"2\" stroke-linejoin=\"round\" stroke-linecap=\"round\"/>\n",
       "<line x1=\"244.19\" y1=\"187.08\" x2=\"233.25\" y2=\"202.14\" stroke=\"blue\" stroke-width=\"2\" stroke-linejoin=\"round\" stroke-linecap=\"round\"/>\n",
       "<line x1=\"209.91\" y1=\"206.46\" x2=\"224.09\" y2=\"211.07\" stroke=\"blue\" stroke-width=\"2\" stroke-linejoin=\"round\" stroke-linecap=\"round\"/>\n",
       "<line x1=\"209.91\" y1=\"206.46\" x2=\"183.88\" y2=\"198.00\" stroke=\"black\" stroke-width=\"2\" stroke-linejoin=\"round\" stroke-linecap=\"round\"/>\n",
       "<line x1=\"160.29\" y1=\"211.50\" x2=\"183.88\" y2=\"198.00\" stroke=\"black\" stroke-width=\"2\" stroke-linejoin=\"round\" stroke-linecap=\"round\"/>\n",
       "<line x1=\"160.29\" y1=\"211.50\" x2=\"147.52\" y2=\"218.81\" stroke=\"blue\" stroke-width=\"2\" stroke-linejoin=\"round\" stroke-linecap=\"round\"/>\n",
       "<line x1=\"183.88\" y1=\"198.00\" x2=\"183.88\" y2=\"143.26\" stroke=\"black\" stroke-width=\"2\" stroke-linejoin=\"round\" stroke-linecap=\"round\"/>\n",
       "<line x1=\"174.18\" y1=\"189.24\" x2=\"174.18\" y2=\"152.02\" stroke=\"black\" stroke-width=\"2\" stroke-linejoin=\"round\" stroke-linecap=\"round\"/>\n",
       "<line x1=\"183.88\" y1=\"143.26\" x2=\"136.70\" y2=\"115.65\" stroke=\"black\" stroke-width=\"2\" stroke-linejoin=\"round\" stroke-linecap=\"round\"/>\n",
       "<line x1=\"141.55\" y1=\"88.47\" x2=\"141.55\" y2=\"115.65\" stroke=\"black\" stroke-width=\"2\" stroke-linejoin=\"round\" stroke-linecap=\"round\"/>\n",
       "<line x1=\"141.55\" y1=\"88.47\" x2=\"141.55\" y2=\"75.70\" stroke=\"red\" stroke-width=\"2\" stroke-linejoin=\"round\" stroke-linecap=\"round\"/>\n",
       "<line x1=\"131.85\" y1=\"88.47\" x2=\"131.85\" y2=\"115.65\" stroke=\"black\" stroke-width=\"2\" stroke-linejoin=\"round\" stroke-linecap=\"round\"/>\n",
       "<line x1=\"131.85\" y1=\"88.47\" x2=\"131.85\" y2=\"75.70\" stroke=\"red\" stroke-width=\"2\" stroke-linejoin=\"round\" stroke-linecap=\"round\"/>\n",
       "<line x1=\"113.11\" y1=\"129.46\" x2=\"136.70\" y2=\"115.65\" stroke=\"black\" stroke-width=\"2\" stroke-linejoin=\"round\" stroke-linecap=\"round\"/>\n",
       "<line x1=\"113.11\" y1=\"129.46\" x2=\"100.28\" y2=\"136.96\" stroke=\"blue\" stroke-width=\"2\" stroke-linejoin=\"round\" stroke-linecap=\"round\"/>\n",
       "<line x1=\"89.52\" y1=\"170.60\" x2=\"89.52\" y2=\"155.73\" stroke=\"blue\" stroke-width=\"2\" stroke-linejoin=\"round\" stroke-linecap=\"round\"/>\n",
       "<line x1=\"89.52\" y1=\"170.60\" x2=\"89.52\" y2=\"197.93\" stroke=\"black\" stroke-width=\"2\" stroke-linejoin=\"round\" stroke-linecap=\"round\"/>\n",
       "<line x1=\"63.57\" y1=\"207.36\" x2=\"87.09\" y2=\"193.74\" stroke=\"black\" stroke-width=\"2\" stroke-linejoin=\"round\" stroke-linecap=\"round\"/>\n",
       "<line x1=\"63.57\" y1=\"207.36\" x2=\"52.52\" y2=\"213.76\" stroke=\"red\" stroke-width=\"2\" stroke-linejoin=\"round\" stroke-linecap=\"round\"/>\n",
       "<line x1=\"68.43\" y1=\"215.75\" x2=\"91.95\" y2=\"202.13\" stroke=\"black\" stroke-width=\"2\" stroke-linejoin=\"round\" stroke-linecap=\"round\"/>\n",
       "<line x1=\"68.43\" y1=\"215.75\" x2=\"57.38\" y2=\"222.15\" stroke=\"red\" stroke-width=\"2\" stroke-linejoin=\"round\" stroke-linecap=\"round\"/>\n",
       "<line x1=\"113.11\" y1=\"211.46\" x2=\"89.52\" y2=\"197.93\" stroke=\"black\" stroke-width=\"2\" stroke-linejoin=\"round\" stroke-linecap=\"round\"/>\n",
       "<line x1=\"113.11\" y1=\"211.46\" x2=\"125.89\" y2=\"218.79\" stroke=\"blue\" stroke-width=\"2\" stroke-linejoin=\"round\" stroke-linecap=\"round\"/>\n",
       "<line x1=\"136.68\" y1=\"252.17\" x2=\"136.69\" y2=\"237.46\" stroke=\"blue\" stroke-width=\"2\" stroke-linejoin=\"round\" stroke-linecap=\"round\"/>\n",
       "<line x1=\"136.68\" y1=\"252.17\" x2=\"136.67\" y2=\"279.35\" stroke=\"black\" stroke-width=\"2\" stroke-linejoin=\"round\" stroke-linecap=\"round\"/>\n",
       "<line x1=\"65.94\" y1=\"129.74\" x2=\"78.71\" y2=\"137.06\" stroke=\"blue\" stroke-width=\"2\" stroke-linejoin=\"round\" stroke-linecap=\"round\"/>\n",
       "<line x1=\"65.94\" y1=\"129.74\" x2=\"42.37\" y2=\"116.22\" stroke=\"black\" stroke-width=\"2\" stroke-linejoin=\"round\" stroke-linecap=\"round\"/>\n",
       "<text x=\"235.94\" y=\"133.95\" fill=\"blue\" font-family=\"Arial\" font-size=\"23\" font-style=\"normal\" font-weight=\"normal\" text-anchor=\"middle\">  N </text>\n",
       "<text x=\"235.94\" y=\"222.51\" fill=\"blue\" font-family=\"Arial\" font-size=\"23\" font-style=\"normal\" font-weight=\"normal\" text-anchor=\"middle\">  N </text>\n",
       "<text x=\"136.70\" y=\"68.89\" fill=\"red\" font-family=\"Arial\" font-size=\"23\" font-style=\"normal\" font-weight=\"normal\" text-anchor=\"middle\">  O </text>\n",
       "<text x=\"89.52\" y=\"150.85\" fill=\"blue\" font-family=\"Arial\" font-size=\"23\" font-style=\"normal\" font-weight=\"normal\" text-anchor=\"middle\">  N </text>\n",
       "<text x=\"42.48\" y=\"232.77\" fill=\"red\" font-family=\"Arial\" font-size=\"23\" font-style=\"normal\" font-weight=\"normal\" text-anchor=\"middle\">  O </text>\n",
       "<text x=\"136.70\" y=\"232.59\" fill=\"blue\" font-family=\"Arial\" font-size=\"23\" font-style=\"normal\" font-weight=\"normal\" text-anchor=\"middle\">  N </text>\n",
       "<text x=\"150.00\" y=\"32.50\" fill=\"black\" font-family=\"Arial\" font-size=\"30\" font-style=\"normal\" font-weight=\"normal\" text-anchor=\"middle\">  caffeine </text>\n",
       "<path d=\"M 20.50 0.50 L 279.50 0.50 C 290.54 0.50 299.50 9.46 299.50 20.50 L 299.50 279.50 C 299.50 290.54 290.54 299.50 279.50 299.50 L 20.50 299.50 C 9.46 299.50 0.50 290.54 0.50 279.50 L 0.50 20.50 C 0.50 9.46 9.46 0.50 20.50 0.50 Z\" fill=\"none\" stroke=\"#bfbfbf\" stroke-linejoin=\"round\" stroke-linecap=\"round\"/>\n",
       "</svg>"
      ],
      "text/plain": [
       "<IPython.core.display.SVG object>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "display(SVG(oedepict.OEWriteImageToBytes(\"svg\", image)))"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "17ff514c-9d7e-4e4a-a176-c7c6603c3d5a",
   "metadata": {},
   "source": [
    "## SVG Depiction (Resized)\n",
    "\n",
    "The SVG image can be displayed at its original size by using the ResizeSVG class."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "45ca0282-5988-41a2-96c1-18f121766e24",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n",
       "<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\"\n",
       "  \"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\">\n",
       "<svg xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\"   width=\"300.00\" height=\"300.00\">\n",
       "<!-- Created by OpenEye Scientific Software -->\n",
       "<!-- Creation Date Fri Oct 31 15:34:15 2025 -->\n",
       "<rect width=\"300.00\" height=\"300.00\" fill=\"white\" />\n",
       "<line x1=\"244.34\" y1=\"100.51\" x2=\"252.74\" y2=\"74.66\" stroke=\"black\" stroke-width=\"2\" stroke-linejoin=\"round\" stroke-linecap=\"round\" />\n",
       "<line x1=\"244.34\" y1=\"100.51\" x2=\"239.80\" y2=\"114.50\" stroke=\"blue\" stroke-width=\"2\" stroke-linejoin=\"round\" stroke-linecap=\"round\" />\n",
       "<line x1=\"209.91\" y1=\"134.81\" x2=\"224.09\" y2=\"130.20\" stroke=\"blue\" stroke-width=\"2\" stroke-linejoin=\"round\" stroke-linecap=\"round\" />\n",
       "<line x1=\"209.91\" y1=\"134.81\" x2=\"183.88\" y2=\"143.26\" stroke=\"black\" stroke-width=\"2\" stroke-linejoin=\"round\" stroke-linecap=\"round\" />\n",
       "<line x1=\"252.03\" y1=\"148.49\" x2=\"243.27\" y2=\"136.44\" stroke=\"blue\" stroke-width=\"2\" stroke-linejoin=\"round\" stroke-linecap=\"round\" />\n",
       "<line x1=\"252.03\" y1=\"148.49\" x2=\"268.12\" y2=\"170.63\" stroke=\"black\" stroke-width=\"2\" stroke-linejoin=\"round\" stroke-linecap=\"round\" />\n",
       "<line x1=\"252.03\" y1=\"192.78\" x2=\"268.12\" y2=\"170.63\" stroke=\"black\" stroke-width=\"2\" stroke-linejoin=\"round\" stroke-linecap=\"round\" />\n",
       "<line x1=\"252.03\" y1=\"192.78\" x2=\"243.27\" y2=\"204.84\" stroke=\"blue\" stroke-width=\"2\" stroke-linejoin=\"round\" stroke-linecap=\"round\" />\n",
       "<line x1=\"244.19\" y1=\"187.08\" x2=\"255.13\" y2=\"172.02\" stroke=\"black\" stroke-width=\"2\" stroke-linejoin=\"round\" stroke-linecap=\"round\" />\n",
       "<line x1=\"244.19\" y1=\"187.08\" x2=\"233.25\" y2=\"202.14\" stroke=\"blue\" stroke-width=\"2\" stroke-linejoin=\"round\" stroke-linecap=\"round\" />\n",
       "<line x1=\"209.91\" y1=\"206.46\" x2=\"224.09\" y2=\"211.07\" stroke=\"blue\" stroke-width=\"2\" stroke-linejoin=\"round\" stroke-linecap=\"round\" />\n",
       "<line x1=\"209.91\" y1=\"206.46\" x2=\"183.88\" y2=\"198.00\" stroke=\"black\" stroke-width=\"2\" stroke-linejoin=\"round\" stroke-linecap=\"round\" />\n",
       "<line x1=\"160.29\" y1=\"211.50\" x2=\"183.88\" y2=\"198.00\" stroke=\"black\" stroke-width=\"2\" stroke-linejoin=\"round\" stroke-linecap=\"round\" />\n",
       "<line x1=\"160.29\" y1=\"211.50\" x2=\"147.52\" y2=\"218.81\" stroke=\"blue\" stroke-width=\"2\" stroke-linejoin=\"round\" stroke-linecap=\"round\" />\n",
       "<line x1=\"183.88\" y1=\"198.00\" x2=\"183.88\" y2=\"143.26\" stroke=\"black\" stroke-width=\"2\" stroke-linejoin=\"round\" stroke-linecap=\"round\" />\n",
       "<line x1=\"174.18\" y1=\"189.24\" x2=\"174.18\" y2=\"152.02\" stroke=\"black\" stroke-width=\"2\" stroke-linejoin=\"round\" stroke-linecap=\"round\" />\n",
       "<line x1=\"183.88\" y1=\"143.26\" x2=\"136.70\" y2=\"115.65\" stroke=\"black\" stroke-width=\"2\" stroke-linejoin=\"round\" stroke-linecap=\"round\" />\n",
       "<line x1=\"141.55\" y1=\"88.47\" x2=\"141.55\" y2=\"115.65\" stroke=\"black\" stroke-width=\"2\" stroke-linejoin=\"round\" stroke-linecap=\"round\" />\n",
       "<line x1=\"141.55\" y1=\"88.47\" x2=\"141.55\" y2=\"75.70\" stroke=\"red\" stroke-width=\"2\" stroke-linejoin=\"round\" stroke-linecap=\"round\" />\n",
       "<line x1=\"131.85\" y1=\"88.47\" x2=\"131.85\" y2=\"115.65\" stroke=\"black\" stroke-width=\"2\" stroke-linejoin=\"round\" stroke-linecap=\"round\" />\n",
       "<line x1=\"131.85\" y1=\"88.47\" x2=\"131.85\" y2=\"75.70\" stroke=\"red\" stroke-width=\"2\" stroke-linejoin=\"round\" stroke-linecap=\"round\" />\n",
       "<line x1=\"113.11\" y1=\"129.46\" x2=\"136.70\" y2=\"115.65\" stroke=\"black\" stroke-width=\"2\" stroke-linejoin=\"round\" stroke-linecap=\"round\" />\n",
       "<line x1=\"113.11\" y1=\"129.46\" x2=\"100.28\" y2=\"136.96\" stroke=\"blue\" stroke-width=\"2\" stroke-linejoin=\"round\" stroke-linecap=\"round\" />\n",
       "<line x1=\"89.52\" y1=\"170.60\" x2=\"89.52\" y2=\"155.73\" stroke=\"blue\" stroke-width=\"2\" stroke-linejoin=\"round\" stroke-linecap=\"round\" />\n",
       "<line x1=\"89.52\" y1=\"170.60\" x2=\"89.52\" y2=\"197.93\" stroke=\"black\" stroke-width=\"2\" stroke-linejoin=\"round\" stroke-linecap=\"round\" />\n",
       "<line x1=\"63.57\" y1=\"207.36\" x2=\"87.09\" y2=\"193.74\" stroke=\"black\" stroke-width=\"2\" stroke-linejoin=\"round\" stroke-linecap=\"round\" />\n",
       "<line x1=\"63.57\" y1=\"207.36\" x2=\"52.52\" y2=\"213.76\" stroke=\"red\" stroke-width=\"2\" stroke-linejoin=\"round\" stroke-linecap=\"round\" />\n",
       "<line x1=\"68.43\" y1=\"215.75\" x2=\"91.95\" y2=\"202.13\" stroke=\"black\" stroke-width=\"2\" stroke-linejoin=\"round\" stroke-linecap=\"round\" />\n",
       "<line x1=\"68.43\" y1=\"215.75\" x2=\"57.38\" y2=\"222.15\" stroke=\"red\" stroke-width=\"2\" stroke-linejoin=\"round\" stroke-linecap=\"round\" />\n",
       "<line x1=\"113.11\" y1=\"211.46\" x2=\"89.52\" y2=\"197.93\" stroke=\"black\" stroke-width=\"2\" stroke-linejoin=\"round\" stroke-linecap=\"round\" />\n",
       "<line x1=\"113.11\" y1=\"211.46\" x2=\"125.89\" y2=\"218.79\" stroke=\"blue\" stroke-width=\"2\" stroke-linejoin=\"round\" stroke-linecap=\"round\" />\n",
       "<line x1=\"136.68\" y1=\"252.17\" x2=\"136.69\" y2=\"237.46\" stroke=\"blue\" stroke-width=\"2\" stroke-linejoin=\"round\" stroke-linecap=\"round\" />\n",
       "<line x1=\"136.68\" y1=\"252.17\" x2=\"136.67\" y2=\"279.35\" stroke=\"black\" stroke-width=\"2\" stroke-linejoin=\"round\" stroke-linecap=\"round\" />\n",
       "<line x1=\"65.94\" y1=\"129.74\" x2=\"78.71\" y2=\"137.06\" stroke=\"blue\" stroke-width=\"2\" stroke-linejoin=\"round\" stroke-linecap=\"round\" />\n",
       "<line x1=\"65.94\" y1=\"129.74\" x2=\"42.37\" y2=\"116.22\" stroke=\"black\" stroke-width=\"2\" stroke-linejoin=\"round\" stroke-linecap=\"round\" />\n",
       "<text x=\"235.94\" y=\"133.95\" fill=\"blue\" font-family=\"Arial\" font-size=\"23\" font-style=\"normal\" font-weight=\"normal\" text-anchor=\"middle\">  N </text>\n",
       "<text x=\"235.94\" y=\"222.51\" fill=\"blue\" font-family=\"Arial\" font-size=\"23\" font-style=\"normal\" font-weight=\"normal\" text-anchor=\"middle\">  N </text>\n",
       "<text x=\"136.70\" y=\"68.89\" fill=\"red\" font-family=\"Arial\" font-size=\"23\" font-style=\"normal\" font-weight=\"normal\" text-anchor=\"middle\">  O </text>\n",
       "<text x=\"89.52\" y=\"150.85\" fill=\"blue\" font-family=\"Arial\" font-size=\"23\" font-style=\"normal\" font-weight=\"normal\" text-anchor=\"middle\">  N </text>\n",
       "<text x=\"42.48\" y=\"232.77\" fill=\"red\" font-family=\"Arial\" font-size=\"23\" font-style=\"normal\" font-weight=\"normal\" text-anchor=\"middle\">  O </text>\n",
       "<text x=\"136.70\" y=\"232.59\" fill=\"blue\" font-family=\"Arial\" font-size=\"23\" font-style=\"normal\" font-weight=\"normal\" text-anchor=\"middle\">  N </text>\n",
       "<text x=\"150.00\" y=\"32.50\" fill=\"black\" font-family=\"Arial\" font-size=\"30\" font-style=\"normal\" font-weight=\"normal\" text-anchor=\"middle\">  caffeine </text>\n",
       "<path d=\"M 20.50 0.50 L 279.50 0.50 C 290.54 0.50 299.50 9.46 299.50 20.50 L 299.50 279.50 C 299.50 290.54 290.54 299.50 279.50 299.50 L 20.50 299.50 C 9.46 299.50 0.50 290.54 0.50 279.50 L 0.50 20.50 C 0.50 9.46 9.46 0.50 20.50 0.50 Z\" fill=\"none\" stroke=\"#bfbfbf\" stroke-linejoin=\"round\" stroke-linecap=\"round\" />\n",
       "</svg>\n"
      ],
      "text/plain": [
       "<__main__.ResizeSVG at 0x106d2c440>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "\n",
    "class ResizeSVG:\n",
    "    \"\"\"Utility class to add with/height to SVG image.\"\"\"\n",
    "\n",
    "    def __init__(self, svg: bytes) -> None:\n",
    "        \"\"\"Initialize.\"\"\"\n",
    "        svg_str: str = svg.decode(\"utf-8\")\n",
    "        import re  # noqa: PLC0415\n",
    "        match = re.search(r'viewBox=\"(\\d+\\.?\\d*)\\s+(\\d+\\.?\\d*)\\s+(\\d+\\.?\\d*)\\s+(\\d+\\.?\\d*)\"', svg_str)\n",
    "        if match and len(match.groups()) == 4:\n",
    "            width, height = match.group(3), match.group(4)\n",
    "            self.svg_content =  svg_str.replace( match.group(), f'width=\"{width}\" height=\"{height}\"')\n",
    "        else:\n",
    "            # SVG can not be resized\n",
    "            self.svg_content = svg_str\n",
    "    def _repr_html_(self) -> str:\n",
    "        return self.svg_content\n",
    "\n",
    "display(ResizeSVG(oedepict.OEWriteImageToBytes(\"svg\", image)))"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3 (ipykernel)",
   "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.12.11"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 5
}
