Created
November 5, 2019 17:00
-
-
Save aemarkov/6eb63c39100f732e28f4bf888a876107 to your computer and use it in GitHub Desktop.
texture-generator.ipynb
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| { | |
| "cells": [ | |
| { | |
| "cell_type": "code", | |
| "execution_count": 12, | |
| "metadata": {}, | |
| "outputs": [], | |
| "source": [ | |
| "import numpy as np\n", | |
| "import matplotlib.pyplot as plt\n", | |
| "from PIL import Image, ImageDraw\n", | |
| "from colorsys import hsv_to_rgb as hsv" | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "execution_count": 52, | |
| "metadata": {}, | |
| "outputs": [], | |
| "source": [ | |
| "def draw_tile(pos, size, color):\n", | |
| " p1 = tuple(pos * cell_size)\n", | |
| " p2 = tuple((pos + size) * cell_size)\n", | |
| " draw.rectangle((p1, p2), fill=hsv(*color)) #, outline='#000', width=5)" | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "execution_count": 103, | |
| "metadata": {}, | |
| "outputs": [], | |
| "source": [ | |
| "size = np.array([2048, 2048])\n", | |
| "cell_size = 64\n", | |
| "\n", | |
| "color_base = (0, 0, 200)\n", | |
| "color_min = (0, 0, 150)\n", | |
| "color_max = (0, 0, 220)\n", | |
| "color_border = (0, 0, 0)\n", | |
| "\n", | |
| "grid_size = size / cell_size" | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "execution_count": 100, | |
| "metadata": {}, | |
| "outputs": [ | |
| { | |
| "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": [ | |
| "tile_min = np.array([1, 1])\n", | |
| "tile_max = np.array([6, 2])\n", | |
| "border_width = 5\n", | |
| "\n", | |
| "img = Image.new(\"RGB\", tuple(size)) \n", | |
| "draw = ImageDraw.Draw(img)\n", | |
| "draw.rectangle(((0, 0), tuple(size)), fill=hsv(*color_base))\n", | |
| "\n", | |
| "for _ in range(50):\n", | |
| " color = np.random.randint(2)\n", | |
| " tile_pos = np.random.randint(grid_size)\n", | |
| " tile_size = np.random.randint(tile_min, tile_max)\n", | |
| " draw_tile(tile_pos, tile_size, color_min)\n", | |
| "\n", | |
| "plt.imshow(np.asarray(img))\n", | |
| "plt.show()" | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "execution_count": 104, | |
| "metadata": {}, | |
| "outputs": [ | |
| { | |
| "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": [ | |
| "img = Image.new(\"RGB\", tuple(size)) \n", | |
| "draw = ImageDraw.Draw(img)\n", | |
| "draw.rectangle(((0, 0), tuple(size)), fill=hsv(*color_base))\n", | |
| "\n", | |
| "for x in range(int(grid_size[0])):\n", | |
| " for y in range(int(grid_size[1])):\n", | |
| " v = np.random.randint(100)\n", | |
| " if v > 60:\n", | |
| " c = np.random.randint(2)\n", | |
| " draw_tile(np.array([x, y]), np.array([1, 1]), color_min if c else color_max)\n", | |
| " \n", | |
| "plt.imshow(np.asarray(img))\n", | |
| "plt.show()" | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "execution_count": 107, | |
| "metadata": {}, | |
| "outputs": [], | |
| "source": [ | |
| "img.save('texture.png')" | |
| ] | |
| }, | |
| { | |
| "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.6.8" | |
| } | |
| }, | |
| "nbformat": 4, | |
| "nbformat_minor": 2 | |
| } |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment