Skip to content

Instantly share code, notes, and snippets.

@book000
Last active February 27, 2022 11:26
Show Gist options
  • Save book000/16ff21e6916ae94033dfeba27a20eb90 to your computer and use it in GitHub Desktop.
Save book000/16ff21e6916ae94033dfeba27a20eb90 to your computer and use it in GitHub Desktop.
あ~んをフォントを指定して絵文字画像を作成するPHPスクリプト (GD使用)
<?php
/*
あ~んをフォントを指定して絵文字画像を作成するPHPスクリプト (GD使用)
- Created by Tomachi https://gist.github.com/book000/16ff21e6916ae94033dfeba27a20eb90
PREFIX_images ディレクトリに50枚の画像が生成されます。
PREFIX_emojis.txt には絵文字の一覧を示すメッセージ用テキストが生成され出力されます。
stdout には50音表に並んだ絵文字表が出力されます。
*/
// フォントサイズ
$font_size = 130;
// フォントファイルへのパス
$font = __DIR__ . '/ReggaeOne-Regular.ttf';
// 接頭辞
$prefix = "reggae_";
// 生成する文字
$kanas = [
"あ" => "a",
"い" => "i",
"う" => "u",
"え" => "e",
"お" => "o",
"か" => "ka",
"き" => "ki",
"く" => "ku",
"け" => "ke",
"こ" => "ko",
"さ" => "sa",
"し" => "si",
"す" => "su",
"せ" => "se",
"そ" => "so",
"た" => "ta",
"ち" => "chi",
"つ" => "tsu",
"て" => "te",
"と" => "to",
"な" => "na",
"に" => "ni",
"ぬ" => "nu",
"ね" => "ne",
"の" => "no",
"は" => "ha",
"ひ" => "hi",
"ふ" => "hu",
"へ" => "he",
"ほ" => "ho",
"ま" => "ma",
"み" => "mi",
"む" => "mu",
"め" => "me",
"も" => "mo",
"や" => "ya",
"ゆ" => "yu",
"よ" => "yo",
"ら" => "ra",
"り" => "ri",
"る" => "ru",
"れ" => "re",
"ろ" => "ro",
"わ" => "wa",
"を" => "wo",
"ん" => "n",
"゛" => "dakuten",
"゜" => "handakuten",
"ー" => "chouon",
"っ" => "tsu_small"
];
mkdir(__DIR__ . "/${prefix}images", 0777, true);
$emojis = [];
foreach ($kanas as $kana => $romaji) {
$img = imagecreatetruecolor(200, 200);
$font_color = imagecolorallocate($img, 255, 255, 255);
$bg_color = imagecolorallocatealpha($img, 255, 255, 255, 127);
imagealphablending($img, true);
imagesavealpha($img, true);
imagefill($img, 0, 0, $bg_color);
$text = $kana;
imagettftext($img, $font_size, 0, $font_size * 0.1, $font_size * 1.3, $font_color, $font, $text);
imagepng($img, __DIR__ . "/${prefix}images/$prefix$romaji.png");
$emojis[] = ":$prefix$romaji: = `:$prefix$romaji:`";
}
file_put_contents(__DIR__ . "/${prefix}emojis.txt", implode("\n", $emojis));
$kana_table = <<<EOF
:^PREFIX^a::^PREFIX^ka::^PREFIX^sa::^PREFIX^ta::^PREFIX^na::^PREFIX^ha::^PREFIX^ma::^PREFIX^ya::^PREFIX^ra::^PREFIX^wa::^PREFIX^dakuten:
:^PREFIX^i::^PREFIX^ki::^PREFIX^si::^PREFIX^chi::^PREFIX^ni::^PREFIX^hi::^PREFIX^mi::blank::^PREFIX^ri::blank::blank:
:^PREFIX^u::^PREFIX^ku::^PREFIX^su::^PREFIX^tsu::^PREFIX^nu::^PREFIX^hu::^PREFIX^mu::^PREFIX^yu::^PREFIX^ru::^PREFIX^wo::^PREFIX^handakuten:
:^PREFIX^e::^PREFIX^ke::^PREFIX^se::^PREFIX^te::^PREFIX^ne::^PREFIX^he::^PREFIX^me::blank::^PREFIX^re::blank::blank:
:^PREFIX^o::^PREFIX^ko::^PREFIX^so::^PREFIX^to::^PREFIX^no::^PREFIX^ho::^PREFIX^mo::^PREFIX^yo::^PREFIX^ro::^PREFIX^n::^PREFIX^chouon: :^PREFIX^tsu_small:
EOF;
echo str_replace("^PREFIX^", $prefix, $kana_table);
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment