前回作成したPythonの麻雀ライブラリ「cmajiang」に、手牌をSVG画像で表示する機能を追加した。
Jupyterノートブックで、
from cmajiang import * Shoupai("m340p123z1z1,s340-,z2222")
のようにすると、このようにSVG画像が表示される。
牌の画像
牌の画像は、Gutenberg LaboのGL-MahjongTileを使用した。
改変も再配布も許可されている。
オープンタイプフォントから、opentype-svgを使用してSVGに変換を行った。
fonts2svg -av GL-MahjongTile.otf
オプションで、「-av」(adjust-viewbox)を付けないと原点座標が画像外の位置になる。
原点が左下になっていなかったため、pathタグに「transform="translate(-30, -35)"」を付けて座標移動を行った。
また、副露した面子で、牌を横向きにする場合、「transform="translate(795, 30) rotate(-90)"」で座標移動と回転を行うことで、横向き画像の左下が原点になるようにした。
赤牌は、pathのfill属性で色を変えると、牌の外枠の色も変わってしまうため、Inkscapeで、外枠のパスを削除して色を指定した後に、白の牌の外枠をコピーして、2つのpathで構成して、gタグでグループ化した。