Loading .github/workflows/doc.yml +4 −0 Original line number Diff line number Diff line Loading @@ -24,6 +24,10 @@ jobs: - 18080:8080 steps: - name: Set Swap Space uses: pierotofy/set-swap-space@master with: swap-size-gb: 8 - name: Checkout code uses: actions/checkout@v2 with: Loading .github/workflows/export.yml +2 −1 Original line number Diff line number Diff line Loading @@ -17,7 +17,8 @@ jobs: - '3.8' model-name: # - 'lpips' - 'monochrome' # - 'monochrome' - 'lineart' steps: - name: Checkout code Loading docs/source/_libs/plot.py +36 −2 Original line number Diff line number Diff line from typing import Tuple from typing import Tuple, List import matplotlib.pyplot as plt from PIL import Image from imgutils.data import load_image, grid_transparent from imgutils.data import load_image, grid_transparent, ImageTyping from imgutils.validate.truncate import _mock_load_truncated_images INCHES_TO_PIXELS = 96 def _image_input_process(img) -> Tuple[Image.Image, str]: if isinstance(img, tuple): Loading Loading @@ -45,3 +47,35 @@ def image_plot(*images, save_as: str, columns=2, keep_axis: bool = False, figsiz ax.axis('off') plt.savefig(save_as, bbox_inches='tight', pad_inches=0.1, dpi=300, transparent=True) @_mock_load_truncated_images(True) def image_table(images: List[List[ImageTyping]], columns: List[str], rows: List[str], save_as: str, keep_axis: bool = False, figsize=(720, 600), dpi: int = 300, fontsize: int = 18, padsize: int = 5): plt.cla() plt.tight_layout() assert images, 'No less than 1 images required.' fig, axs = plt.subplots(len(rows), len(columns), figsize=(figsize[0] / INCHES_TO_PIXELS, figsize[1] / INCHES_TO_PIXELS)) plt.subplots_adjust(wspace=padsize / INCHES_TO_PIXELS, hspace=padsize / INCHES_TO_PIXELS) for xi in range(len(rows)): for yi in range(len(columns)): img = images[xi][yi] ax = axs[yi] if len(rows) == 1 else axs[xi, yi] if img: image = load_image(img, force_background=None) ax.imshow(grid_transparent(image)) if not keep_axis: ax.set_xticks([]) ax.set_yticks([]) else: ax.set_xticks([]) ax.set_yticks([]) if xi == 0: ax.set_title(columns[yi], fontsize=fontsize) if yi == 0: ax.set_ylabel(rows[xi], fontsize=fontsize) plt.savefig(save_as, bbox_inches='tight', pad_inches=0.02, dpi=dpi, transparent=True) docs/source/api_doc/data/grid_istack.demo.py 0 → 100644 +21 −0 Original line number Diff line number Diff line import numpy as np from PIL import Image from imgutils.data import istack from plot import image_plot if __name__ == '__main__': width, height = Image.open('nian.png').size hs1 = (1 - np.abs(np.linspace(-1 / 3, 1, height))) ** 0.5 ws1 = (1 - np.abs(np.linspace(-1, 1, width))) ** 0.5 nian_mask = hs1[..., None] * ws1 # HxW image_plot( 'nian.png', (istack('lime', 'nian.png'), 'nian_lime.png'), (istack(('yellow', 0.5), ('nian.png', 0.9)), 'nian_trans.png'), (istack(('nian.png', nian_mask)), 'nian_mask.png'), save_as='grid_istack.dat.svg', columns=2, figsize=(12, 12), ) docs/source/api_doc/data/index.rst +1 −0 Original line number Diff line number Diff line Loading @@ -13,3 +13,4 @@ imgutils.data encode decode image layer Loading
.github/workflows/doc.yml +4 −0 Original line number Diff line number Diff line Loading @@ -24,6 +24,10 @@ jobs: - 18080:8080 steps: - name: Set Swap Space uses: pierotofy/set-swap-space@master with: swap-size-gb: 8 - name: Checkout code uses: actions/checkout@v2 with: Loading
.github/workflows/export.yml +2 −1 Original line number Diff line number Diff line Loading @@ -17,7 +17,8 @@ jobs: - '3.8' model-name: # - 'lpips' - 'monochrome' # - 'monochrome' - 'lineart' steps: - name: Checkout code Loading
docs/source/_libs/plot.py +36 −2 Original line number Diff line number Diff line from typing import Tuple from typing import Tuple, List import matplotlib.pyplot as plt from PIL import Image from imgutils.data import load_image, grid_transparent from imgutils.data import load_image, grid_transparent, ImageTyping from imgutils.validate.truncate import _mock_load_truncated_images INCHES_TO_PIXELS = 96 def _image_input_process(img) -> Tuple[Image.Image, str]: if isinstance(img, tuple): Loading Loading @@ -45,3 +47,35 @@ def image_plot(*images, save_as: str, columns=2, keep_axis: bool = False, figsiz ax.axis('off') plt.savefig(save_as, bbox_inches='tight', pad_inches=0.1, dpi=300, transparent=True) @_mock_load_truncated_images(True) def image_table(images: List[List[ImageTyping]], columns: List[str], rows: List[str], save_as: str, keep_axis: bool = False, figsize=(720, 600), dpi: int = 300, fontsize: int = 18, padsize: int = 5): plt.cla() plt.tight_layout() assert images, 'No less than 1 images required.' fig, axs = plt.subplots(len(rows), len(columns), figsize=(figsize[0] / INCHES_TO_PIXELS, figsize[1] / INCHES_TO_PIXELS)) plt.subplots_adjust(wspace=padsize / INCHES_TO_PIXELS, hspace=padsize / INCHES_TO_PIXELS) for xi in range(len(rows)): for yi in range(len(columns)): img = images[xi][yi] ax = axs[yi] if len(rows) == 1 else axs[xi, yi] if img: image = load_image(img, force_background=None) ax.imshow(grid_transparent(image)) if not keep_axis: ax.set_xticks([]) ax.set_yticks([]) else: ax.set_xticks([]) ax.set_yticks([]) if xi == 0: ax.set_title(columns[yi], fontsize=fontsize) if yi == 0: ax.set_ylabel(rows[xi], fontsize=fontsize) plt.savefig(save_as, bbox_inches='tight', pad_inches=0.02, dpi=dpi, transparent=True)
docs/source/api_doc/data/grid_istack.demo.py 0 → 100644 +21 −0 Original line number Diff line number Diff line import numpy as np from PIL import Image from imgutils.data import istack from plot import image_plot if __name__ == '__main__': width, height = Image.open('nian.png').size hs1 = (1 - np.abs(np.linspace(-1 / 3, 1, height))) ** 0.5 ws1 = (1 - np.abs(np.linspace(-1, 1, width))) ** 0.5 nian_mask = hs1[..., None] * ws1 # HxW image_plot( 'nian.png', (istack('lime', 'nian.png'), 'nian_lime.png'), (istack(('yellow', 0.5), ('nian.png', 0.9)), 'nian_trans.png'), (istack(('nian.png', nian_mask)), 'nian_mask.png'), save_as='grid_istack.dat.svg', columns=2, figsize=(12, 12), )
docs/source/api_doc/data/index.rst +1 −0 Original line number Diff line number Diff line Loading @@ -13,3 +13,4 @@ imgutils.data encode decode image layer