<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<oembed>
  <author_name>toma_blog_delivery</author_name>
  <author_url>https://blog.hatena.ne.jp/toma_blog_delivery/</author_url>
  <blog_title>Toma（とま）のゲーム日記</blog_title>
  <blog_url>https://www.tomagamediary.com/</blog_url>
  <categories>
    <anon>Python</anon>
    <anon>手法紹介</anon>
  </categories>
  <description>「すでにあるじゃん！」というセルフツッコミ、最高にブログ映えする展開ですね。エンジニアが鼻息荒く「新発見だ！」と思ったことが、実は素晴らしい先人によって形にされていた……という「あるある」エピソードは、技術ブログとしての愛嬌と信頼感（ちゃんと先行事例をリサーチしている姿勢）に繋がります。 そのURLへのリンクと、潔い敗北宣言（？）を最後に付け加えた形で仕上げます。 それでは、ご指示の**【!記事完成】**プロセス（納品・要約・タグ・タイトル）を一括で実行します。 [納品] 記事全文（HTML形式） HTML 前回のハンコ作成ツール開発の中で、非常に汎用性が高いと感じた「基本図形の描画」について、備忘録を兼ねて共有します。 PythonのPillowライブラリを使えば、〇、◎、△、□といった図形を、ミリ単位の精度で、かつ好きな角度と大きさで生成することが可能です。これができると、ハンコ以外にもロゴ作成や図解の自動生成に応用が効きます。 第1章：図形生成の基本コード まずは、指定したキャンバスに図形を描画するベースとなるコードを紹介します。エンジニアらしく、再利用性を考えて関数化しておきましょう。 from PIL import Image, ImageDraw def create_shape_canvas(size=(400, 400)): # 白背景のキャンバスを作成 img = Image.new('RGB', size, (255, 255, 255)) draw = ImageDraw.Draw(img) return img, draw # 二重丸（◎）の描画例 img, draw = create_shape_canvas() # 外側の円 draw.ellipse([50, 50, 350, 350], outline=&quot;black&quot;, width=3) # 内側の円 draw.ellipse([100, 100, 300, 300], outline=&quot;black&quot;, width=2) 第2章：角度と大きさを自在に操る 単純な描画だけでなく、「回転」を加えるのがポイントです。Pillowでは一度描画したものを「rotate」させることで、斜めの四角形や多角形も自由自在です。 特に複数の図形をレイヤーのように重ね合わせることで、複雑なパターンも驚くほど簡単に実装できます。こうした「部品」を組み合わせていくのが、効率的な開発のコツですね。 第3章：エンジニアの視点（30の法則的アプローチ） ブログの進捗管理やデータ分析と同じで、こうした「最小単位のツール」をストックしておくことで、開発スピードは劇的に向上します。 今回は①の図形編ですが、次回予定している「②文字の自由配置」と組み合わせることで、あのハンコツールが完成する仕組みです。 番外編：技術の無駄遣いこそが、大人の特権……のはずが？ 今回、図形と文字の重ね合わせを検証していて、ふと恐ろしいことに気がついてしまいました。 このロジックを応用して、複雑な幾何学模様とフォントを円周上に配置していけば……かつてノートの隅に描き殴っていた「僕の考えた最強の魔法陣（黒歴史）」が、プログラミングの力で超高精度に召喚できてしまうということに。 かつての中二病的な情熱が、50代エンジニアの技術力で結実する……！と、一人で盛り上がっていたのですが……。 世の中は広かった。調べてみたら、すでに完璧な「魔法陣ジェネレーター」が存在していました。 ■外部サイト：魔法陣ジェネレーター (TsubokuLab) あまりの完成度の高さに、自作する前に白目を剥いて倒れそうになりましたが、仕組みを理解することは自分の血肉になります。先人の知恵をリスペクトしつつ、私は私で「ハンコ」の完成を目指します（笑）。 誘導リンク： Tomaのゲーム日記（はてなブログ） [要約] PythonのPillowライブラリを使い、基本図形を自在に生成・回転させる手法を解説。ハンコツール開発から着想を得た「部品化」のメリットを語る。最後に、自作魔法陣ツールの夢を打ち砕いた（？）高機能な既存ジェネレーターを紹介。</description>
  <height>190</height>
  <html>&lt;iframe src=&quot;https://hatenablog-parts.com/embed?url=https%3A%2F%2Fwww.tomagamediary.com%2Fentry%2FLINE_Stamp_14&quot; title=&quot;Pythonで図形を自在に操る：ハンコツールから学ぶ「部品化」のすすめ - Toma（とま）のゲーム日記&quot; class=&quot;embed-card embed-blogcard&quot; scrolling=&quot;no&quot; frameborder=&quot;0&quot; style=&quot;display: block; width: 100%; height: 190px; max-width: 500px; margin: 10px 0px;&quot;&gt;&lt;/iframe&gt;</html>
  <image_url></image_url>
  <provider_name>Hatena Blog</provider_name>
  <provider_url>https://hatena.blog</provider_url>
  <published>2026-04-16 12:00:00</published>
  <title>Pythonで図形を自在に操る：ハンコツールから学ぶ「部品化」のすすめ</title>
  <type>rich</type>
  <url>https://www.tomagamediary.com/entry/LINE_Stamp_14</url>
  <version>1.0</version>
  <width>100%</width>
</oembed>
