Update images
This commit is contained in:
@@ -0,0 +1,130 @@
|
||||
{
|
||||
"cells": [
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"id": "6297ef3a",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"# SD Font Preview Generation\n",
|
||||
"\n",
|
||||
"This notebook scans `./assets/sd-fonts`, generates preview images for each available SD font family, and creates a markdown listing page that embeds those images."
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": null,
|
||||
"id": "adfac037",
|
||||
"metadata": {},
|
||||
"outputs": [],
|
||||
"source": [
|
||||
"import os\n",
|
||||
"from pathlib import Path\n",
|
||||
"from PIL import Image, ImageDraw, ImageFont\n",
|
||||
"from IPython.display import display, Markdown, Image as DisplayImage\n",
|
||||
"\n",
|
||||
"root_dir = Path('assets/sd-fonts')\n",
|
||||
"output_image_dir = Path('docs/images/sd-font-previews')\n",
|
||||
"output_image_dir.mkdir(parents=True, exist_ok=True)\n",
|
||||
"output_markdown_path = Path('docs/sd-fonts-preview.md')\n",
|
||||
"\n",
|
||||
"print(f'Root font directory: {root_dir.resolve()}')\n",
|
||||
"print(f'Preview image output directory: {output_image_dir.resolve()}')\n",
|
||||
"print(f'Markdown output path: {output_markdown_path.resolve()}')"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": null,
|
||||
"id": "305e0f28",
|
||||
"metadata": {},
|
||||
"outputs": [],
|
||||
"source": [
|
||||
"# Discover available font families\n",
|
||||
"font_families = [p.name for p in sorted(root_dir.iterdir()) if p.is_dir()]\n",
|
||||
"print(f'Found {len(font_families)} font families:')\n",
|
||||
"for family in font_families:\n",
|
||||
" print(f' - {family}')"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": null,
|
||||
"id": "5771f18f",
|
||||
"metadata": {},
|
||||
"outputs": [],
|
||||
"source": [
|
||||
"sample_text = 'Everyone has the right to freedom of thought...'\n",
|
||||
"preview_texts = {family: f'{family} - {sample_text}' for family in font_families}\n",
|
||||
"\n",
|
||||
"for family, text in preview_texts.items():\n",
|
||||
" print(f'{family}: {text}')"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": null,
|
||||
"id": "86bf3966",
|
||||
"metadata": {},
|
||||
"outputs": [],
|
||||
"source": [
|
||||
"# Render and save preview images\n",
|
||||
"font_size = 28\n",
|
||||
"try:\n",
|
||||
" default_font = ImageFont.truetype('arial.ttf', font_size)\n",
|
||||
"except Exception:\n",
|
||||
" default_font = ImageFont.load_default()\n",
|
||||
"\n",
|
||||
"image_width = 1080\n",
|
||||
"image_height = 220\n",
|
||||
"\n",
|
||||
"for family, text in preview_texts.items():\n",
|
||||
" image = Image.new('RGB', (image_width, image_height), 'white')\n",
|
||||
" draw = ImageDraw.Draw(image)\n",
|
||||
" text_width, text_height = draw.textsize(text, font=default_font)\n",
|
||||
" x = 20\n",
|
||||
" y = (image_height - text_height) // 2\n",
|
||||
" draw.text((x, y), text, fill='black', font=default_font)\n",
|
||||
" output_path = output_image_dir / f'{family}.png'\n",
|
||||
" image.save(output_path)\n",
|
||||
" print(f'Saved {output_path}')\n",
|
||||
"\n",
|
||||
"print('All preview images generated.')"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": null,
|
||||
"id": "d5636615",
|
||||
"metadata": {},
|
||||
"outputs": [],
|
||||
"source": [
|
||||
"# Generate markdown listing with embedded preview images\n",
|
||||
"lines = [\n",
|
||||
" '# SD Font Preview',\n",
|
||||
" '',\n",
|
||||
" 'This page lists the available SD font families under `assets/sd-fonts` and embeds rendered preview images for each family.',\n",
|
||||
" '',\n",
|
||||
" '| Font Family | Preview |',\n",
|
||||
" '|---|---|',\n",
|
||||
"]\n",
|
||||
"\n",
|
||||
"for family in font_families:\n",
|
||||
" image_rel_path = f'images/sd-font-previews/{family}.png'\n",
|
||||
" lines.append(f'| {family} |  |')\n",
|
||||
"\n",
|
||||
"output_markdown_path.write_text('\\n'.join(lines) + '\\n', encoding='utf-8')\n",
|
||||
"print(f'Generated markdown page at {output_markdown_path}')\n",
|
||||
"\n",
|
||||
"# Display a preview of the generated markdown in the notebook\n",
|
||||
"display(Markdown('\\n'.join(lines[:8]) + '\\n...'))"
|
||||
]
|
||||
}
|
||||
],
|
||||
"metadata": {
|
||||
"language_info": {
|
||||
"name": "python"
|
||||
}
|
||||
},
|
||||
"nbformat": 4,
|
||||
"nbformat_minor": 5
|
||||
}
|
||||
Reference in New Issue
Block a user