diff --git a/korean/generate_korean.go b/korean/generate_korean.go new file mode 100644 index 0000000..8eba539 --- /dev/null +++ b/korean/generate_korean.go @@ -0,0 +1,147 @@ +package main + +import ( + "fmt" + "os" + "runtime" + + "github.com/gen2brain/raylib-go/raylib" +) + +// Korean Hangul Jamo - Choseong (Initial consonants) +var koreanChoseong = []struct { + character string + name string +}{ + {"ㄱ", "Giyeok"}, {"ㄲ", "SsangGiyeok"}, {"ㄴ", "Nieun"}, {"ㄷ", "Dieut"}, {"ㄸ", "SsangDieut"}, + {"ㄹ", "Rieul"}, {"ㅁ", "Mieum"}, {"ㅂ", "Pieup"}, {"ㅃ", "SsangPieup"}, {"ㅅ", "Siot"}, + {"ㅆ", "SsangSiot"}, {"ㅇ", "Ieung"}, {"ㅈ", "Jieut"}, {"ㅉ", "SsangJieut"}, {"ㅊ", "Chieut"}, + {"ㅋ", "Kieuk"}, {"ㅌ", "Tieut"}, {"ㅍ", "Pieup"}, {"ㅎ", "Hieut"}, +} + +// Korean Hangul Jamo - Jungseong (Medial vowels) +var koreanJungseong = []struct { + character string + name string +}{ + {"ㅏ", "A"}, {"ㅐ", "Ae"}, {"ㅑ", "Ya"}, {"ㅒ", "Yae"}, {"ㅓ", "Eo"}, + {"ㅔ", "E"}, {"ㅕ", "Yeo"}, {"ㅖ", "Ye"}, {"ㅗ", "O"}, {"ㅘ", "Wa"}, + {"ㅙ", "Wae"}, {"ㅚ", "Oe"}, {"ㅛ", "Yo"}, {"ㅜ", "U"}, {"ㅝ", "Wo"}, + {"ㅞ", "We"}, {"ㅟ", "Wi"}, {"ㅠ", "Yu"}, {"ㅡ", "Eu"}, {"ㅢ", "Ui"}, + {"ㅣ", "I"}, +} + +// Korean Hangul Jamo - Jongseong (Final consonants) +var koreanJongseong = []struct { + character string + name string +}{ + {"", "None"}, {"ㄱ", "Giyeok"}, {"ㄲ", "SsangGiyeok"}, {"ㄱㅅ", "Giyeok-Siot"}, {"ㄴ", "Nieun"}, + {"ㄵ", "Nieun-Cieut"}, {"ㄶ", "Nieun-Hieut"}, {"ㄷ", "Dieut"}, {"ㄹ", "Rieul"}, {"ㄺ", "Rieul-Giyeok"}, + {"ㄻ", "Rieul-Mieum"}, {"ㄼ", "Rieul-Pieup"}, {"ㄽ", "Rieul-Siot"}, {"ㄾ", "Rieul-Tieut"}, {"ㄿ", "Rieul-Phup"}, + {"ㅀ", "Rieul-Hieut"}, {"ㅁ", "Mieum"}, {"ㅂ", "Pieup"}, {"ㅄ", "Pieup-Siot"}, {"ㅅ", "Siot"}, + {"ㅆ", "SsangSiot"}, {"ㅇ", "Ieung"}, {"ㅈ", "Jieut"}, {"ㅊ", "Chieut"}, {"ㅋ", "Kieuk"}, + {"ㅌ", "Tieut"}, {"ㅍ", "Pieup"}, {"ㅎ", "Hieut"}, +} + +// Common Hangul syllables +var koreanSyllables = []struct { + character string + name string +}{ + {"가", "Ga"}, {"각", "Gak"}, {"간", "Gan"}, {"갈", "Gal"}, {"감", "Gam"}, + {"갑", "Gap"}, {"강", "Gang"}, {"개", "Gae"}, {"객", "Gaek"}, {"건", "Geon"}, + {"걸", "Geol"}, {"검", "Geom"}, {"겁", "Geop"}, {"게", "Ge"}, {"격", "Gyeok"}, + {"견", "Gyeon"}, {"결", "Gyeol"}, {"겸", "Gyeom"}, {"겹", "Gyeop"}, {"경", "Gyeong"}, + {"계", "Gye"}, {"고", "Go"}, {"곡", "Gok"}, {"곤", "Gon"}, {"골", "Gol"}, + {"공", "Gong"}, {"과", "Gwa"}, {"관", "Gwan"}, {"괄", "Gwal"}, {"광", "Gwang"}, + {"귀", "Gwi"}, {"규", "Gyu"}, {"균", "Gyun"}, {"굴", "Gul"}, {"굼", "Gum"}, + {"국", "Guk"}, {"군", "Gun"}, {"굽", "Gup"}, {"굿", "Gut"}, {"그", "Geu"}, +} + +func main() { + // Initialize raylib for font rendering + runtime.LockOSThread() + rl.InitWindow(1, 1, "Korean Generator") + defer rl.CloseWindow() + + // Create directory for images + if err := os.MkdirAll("images", 0755); err != nil { + panic(err) + } + + // Load a font that supports Korean + font := rl.GetFontDefault() + + fontPaths := []string{ + "/System/Library/Fonts/AppleGothic.ttc", + "/System/Library/Fonts/AppleMyungjo.ttc", + "/Library/Fonts/AppleGothic.ttc", + "/usr/share/fonts/truetype/noto/NotoSansKR-Regular.ttf", + "/usr/share/fonts/truetype/dejavu/DejaVuSans.ttf", + } + + for _, path := range fontPaths { + if _, err := os.Stat(path); err == nil { + font = rl.LoadFont(path) + if font != (rl.Font{}) { + break + } + } + } + + if font == (rl.Font{}) { + font = rl.GetFontDefault() + fmt.Println("Using default font") + } else { + fmt.Println("Loaded Korean font") + } + + // All Korean characters + allKorean := append(koreanChoseong, koreanJungseong...) + allKorean = append(allKorean, koreanJongseong...) + allKorean = append(allKorean, koreanSyllables...) + + // Create image for each character + for _, k := range allKorean { + // Skip empty character + if k.character == "" { + continue + } + + // Create a render texture + texture := rl.LoadRenderTexture(256, 256) + + rl.BeginTextureMode(texture) + rl.ClearBackground(rl.White) + + // Draw the Korean character + charWidth := rl.MeasureText(k.character, 128) + charX := int32((256 - charWidth) / 2) + charY := int32(80) + rl.DrawText(k.character, charX, charY, 128, rl.Black) + + // Draw name at the bottom + nameWidth := rl.MeasureText(k.name, 24) + nameX := int32((256 - nameWidth) / 2) + nameY := int32(200) + rl.DrawText(k.name, nameX, nameY, 24, rl.Blue) + + rl.EndTextureMode() + + // Convert render texture to image + img := rl.LoadImageFromTexture(texture.Texture) + + // Save as PNG + filename := "images/" + k.character + "_" + k.name + ".png" + rl.ExportImage(*img, filename) + + // Cleanup + rl.UnloadImage(img) + rl.UnloadRenderTexture(texture) + + fmt.Println("Generated:", filename) + } + + fmt.Println("Finished generating all Korean images!") +} diff --git a/korean/images/ㄱ_Giyeok.png b/korean/images/ㄱ_Giyeok.png new file mode 100644 index 0000000..1eebfd9 Binary files /dev/null and b/korean/images/ㄱ_Giyeok.png differ diff --git a/korean/images/ㄱㅅ_Giyeok-Siot.png b/korean/images/ㄱㅅ_Giyeok-Siot.png new file mode 100644 index 0000000..c7b3985 Binary files /dev/null and b/korean/images/ㄱㅅ_Giyeok-Siot.png differ diff --git a/korean/images/ㄲ_SsangGiyeok.png b/korean/images/ㄲ_SsangGiyeok.png new file mode 100644 index 0000000..fb0efd5 Binary files /dev/null and b/korean/images/ㄲ_SsangGiyeok.png differ diff --git a/korean/images/ㄴ_Nieun.png b/korean/images/ㄴ_Nieun.png new file mode 100644 index 0000000..3d75c08 Binary files /dev/null and b/korean/images/ㄴ_Nieun.png differ diff --git a/korean/images/ㄵ_Nieun-Cieut.png b/korean/images/ㄵ_Nieun-Cieut.png new file mode 100644 index 0000000..81d2895 Binary files /dev/null and b/korean/images/ㄵ_Nieun-Cieut.png differ diff --git a/korean/images/ㄶ_Nieun-Hieut.png b/korean/images/ㄶ_Nieun-Hieut.png new file mode 100644 index 0000000..f00d984 Binary files /dev/null and b/korean/images/ㄶ_Nieun-Hieut.png differ diff --git a/korean/images/ㄷ_Dieut.png b/korean/images/ㄷ_Dieut.png new file mode 100644 index 0000000..38139e5 Binary files /dev/null and b/korean/images/ㄷ_Dieut.png differ diff --git a/korean/images/ㄸ_SsangDieut.png b/korean/images/ㄸ_SsangDieut.png new file mode 100644 index 0000000..b559d5b Binary files /dev/null and b/korean/images/ㄸ_SsangDieut.png differ diff --git a/korean/images/ㄹ_Rieul.png b/korean/images/ㄹ_Rieul.png new file mode 100644 index 0000000..8b94020 Binary files /dev/null and b/korean/images/ㄹ_Rieul.png differ diff --git a/korean/images/ㄺ_Rieul-Giyeok.png b/korean/images/ㄺ_Rieul-Giyeok.png new file mode 100644 index 0000000..24ccc86 Binary files /dev/null and b/korean/images/ㄺ_Rieul-Giyeok.png differ diff --git a/korean/images/ㄻ_Rieul-Mieum.png b/korean/images/ㄻ_Rieul-Mieum.png new file mode 100644 index 0000000..d8e23ba Binary files /dev/null and b/korean/images/ㄻ_Rieul-Mieum.png differ diff --git a/korean/images/ㄼ_Rieul-Pieup.png b/korean/images/ㄼ_Rieul-Pieup.png new file mode 100644 index 0000000..3880911 Binary files /dev/null and b/korean/images/ㄼ_Rieul-Pieup.png differ diff --git a/korean/images/ㄽ_Rieul-Siot.png b/korean/images/ㄽ_Rieul-Siot.png new file mode 100644 index 0000000..f21ccd7 Binary files /dev/null and b/korean/images/ㄽ_Rieul-Siot.png differ diff --git a/korean/images/ㄾ_Rieul-Tieut.png b/korean/images/ㄾ_Rieul-Tieut.png new file mode 100644 index 0000000..a21c424 Binary files /dev/null and b/korean/images/ㄾ_Rieul-Tieut.png differ diff --git a/korean/images/ㄿ_Rieul-Phup.png b/korean/images/ㄿ_Rieul-Phup.png new file mode 100644 index 0000000..cc49ef4 Binary files /dev/null and b/korean/images/ㄿ_Rieul-Phup.png differ diff --git a/korean/images/ㅀ_Rieul-Hieut.png b/korean/images/ㅀ_Rieul-Hieut.png new file mode 100644 index 0000000..412b8e9 Binary files /dev/null and b/korean/images/ㅀ_Rieul-Hieut.png differ diff --git a/korean/images/ㅁ_Mieum.png b/korean/images/ㅁ_Mieum.png new file mode 100644 index 0000000..96de5a0 Binary files /dev/null and b/korean/images/ㅁ_Mieum.png differ diff --git a/korean/images/ㅂ_Pieup.png b/korean/images/ㅂ_Pieup.png new file mode 100644 index 0000000..f71676e Binary files /dev/null and b/korean/images/ㅂ_Pieup.png differ diff --git a/korean/images/ㅃ_SsangPieup.png b/korean/images/ㅃ_SsangPieup.png new file mode 100644 index 0000000..8dbd355 Binary files /dev/null and b/korean/images/ㅃ_SsangPieup.png differ diff --git a/korean/images/ㅄ_Pieup-Siot.png b/korean/images/ㅄ_Pieup-Siot.png new file mode 100644 index 0000000..8ab8612 Binary files /dev/null and b/korean/images/ㅄ_Pieup-Siot.png differ diff --git a/korean/images/ㅅ_Siot.png b/korean/images/ㅅ_Siot.png new file mode 100644 index 0000000..887832d Binary files /dev/null and b/korean/images/ㅅ_Siot.png differ diff --git a/korean/images/ㅆ_SsangSiot.png b/korean/images/ㅆ_SsangSiot.png new file mode 100644 index 0000000..0d4f449 Binary files /dev/null and b/korean/images/ㅆ_SsangSiot.png differ diff --git a/korean/images/ㅇ_Ieung.png b/korean/images/ㅇ_Ieung.png new file mode 100644 index 0000000..3fcb191 Binary files /dev/null and b/korean/images/ㅇ_Ieung.png differ diff --git a/korean/images/ㅈ_Jieut.png b/korean/images/ㅈ_Jieut.png new file mode 100644 index 0000000..17ff9c4 Binary files /dev/null and b/korean/images/ㅈ_Jieut.png differ diff --git a/korean/images/ㅉ_SsangJieut.png b/korean/images/ㅉ_SsangJieut.png new file mode 100644 index 0000000..6997e7a Binary files /dev/null and b/korean/images/ㅉ_SsangJieut.png differ diff --git a/korean/images/ㅊ_Chieut.png b/korean/images/ㅊ_Chieut.png new file mode 100644 index 0000000..476c769 Binary files /dev/null and b/korean/images/ㅊ_Chieut.png differ diff --git a/korean/images/ㅋ_Kieuk.png b/korean/images/ㅋ_Kieuk.png new file mode 100644 index 0000000..8149a22 Binary files /dev/null and b/korean/images/ㅋ_Kieuk.png differ diff --git a/korean/images/ㅌ_Tieut.png b/korean/images/ㅌ_Tieut.png new file mode 100644 index 0000000..36164d4 Binary files /dev/null and b/korean/images/ㅌ_Tieut.png differ diff --git a/korean/images/ㅍ_Pieup.png b/korean/images/ㅍ_Pieup.png new file mode 100644 index 0000000..f71676e Binary files /dev/null and b/korean/images/ㅍ_Pieup.png differ diff --git a/korean/images/ㅎ_Hieut.png b/korean/images/ㅎ_Hieut.png new file mode 100644 index 0000000..156f602 Binary files /dev/null and b/korean/images/ㅎ_Hieut.png differ diff --git a/korean/images/ㅏ_A.png b/korean/images/ㅏ_A.png new file mode 100644 index 0000000..3196588 Binary files /dev/null and b/korean/images/ㅏ_A.png differ diff --git a/korean/images/ㅐ_Ae.png b/korean/images/ㅐ_Ae.png new file mode 100644 index 0000000..3c40a85 Binary files /dev/null and b/korean/images/ㅐ_Ae.png differ diff --git a/korean/images/ㅑ_Ya.png b/korean/images/ㅑ_Ya.png new file mode 100644 index 0000000..241bc20 Binary files /dev/null and b/korean/images/ㅑ_Ya.png differ diff --git a/korean/images/ㅒ_Yae.png b/korean/images/ㅒ_Yae.png new file mode 100644 index 0000000..7453e96 Binary files /dev/null and b/korean/images/ㅒ_Yae.png differ diff --git a/korean/images/ㅓ_Eo.png b/korean/images/ㅓ_Eo.png new file mode 100644 index 0000000..bedf95f Binary files /dev/null and b/korean/images/ㅓ_Eo.png differ diff --git a/korean/images/ㅔ_E.png b/korean/images/ㅔ_E.png new file mode 100644 index 0000000..ada444a Binary files /dev/null and b/korean/images/ㅔ_E.png differ diff --git a/korean/images/ㅕ_Yeo.png b/korean/images/ㅕ_Yeo.png new file mode 100644 index 0000000..9dda2f3 Binary files /dev/null and b/korean/images/ㅕ_Yeo.png differ diff --git a/korean/images/ㅖ_Ye.png b/korean/images/ㅖ_Ye.png new file mode 100644 index 0000000..87028fe Binary files /dev/null and b/korean/images/ㅖ_Ye.png differ diff --git a/korean/images/ㅗ_O.png b/korean/images/ㅗ_O.png new file mode 100644 index 0000000..03f8537 Binary files /dev/null and b/korean/images/ㅗ_O.png differ diff --git a/korean/images/ㅘ_Wa.png b/korean/images/ㅘ_Wa.png new file mode 100644 index 0000000..8c65bbb Binary files /dev/null and b/korean/images/ㅘ_Wa.png differ diff --git a/korean/images/ㅙ_Wae.png b/korean/images/ㅙ_Wae.png new file mode 100644 index 0000000..20873b4 Binary files /dev/null and b/korean/images/ㅙ_Wae.png differ diff --git a/korean/images/ㅚ_Oe.png b/korean/images/ㅚ_Oe.png new file mode 100644 index 0000000..6e22a04 Binary files /dev/null and b/korean/images/ㅚ_Oe.png differ diff --git a/korean/images/ㅛ_Yo.png b/korean/images/ㅛ_Yo.png new file mode 100644 index 0000000..450fd54 Binary files /dev/null and b/korean/images/ㅛ_Yo.png differ diff --git a/korean/images/ㅜ_U.png b/korean/images/ㅜ_U.png new file mode 100644 index 0000000..757cc8b Binary files /dev/null and b/korean/images/ㅜ_U.png differ diff --git a/korean/images/ㅝ_Wo.png b/korean/images/ㅝ_Wo.png new file mode 100644 index 0000000..14a58f5 Binary files /dev/null and b/korean/images/ㅝ_Wo.png differ diff --git a/korean/images/ㅞ_We.png b/korean/images/ㅞ_We.png new file mode 100644 index 0000000..06c6ad0 Binary files /dev/null and b/korean/images/ㅞ_We.png differ diff --git a/korean/images/ㅟ_Wi.png b/korean/images/ㅟ_Wi.png new file mode 100644 index 0000000..e7a4eef Binary files /dev/null and b/korean/images/ㅟ_Wi.png differ diff --git a/korean/images/ㅠ_Yu.png b/korean/images/ㅠ_Yu.png new file mode 100644 index 0000000..f87c5a8 Binary files /dev/null and b/korean/images/ㅠ_Yu.png differ diff --git a/korean/images/ㅡ_Eu.png b/korean/images/ㅡ_Eu.png new file mode 100644 index 0000000..647ebab Binary files /dev/null and b/korean/images/ㅡ_Eu.png differ diff --git a/korean/images/ㅢ_Ui.png b/korean/images/ㅢ_Ui.png new file mode 100644 index 0000000..d9923aa Binary files /dev/null and b/korean/images/ㅢ_Ui.png differ diff --git a/korean/images/ㅣ_I.png b/korean/images/ㅣ_I.png new file mode 100644 index 0000000..48764c2 Binary files /dev/null and b/korean/images/ㅣ_I.png differ diff --git a/korean/images/가_Ga.png b/korean/images/가_Ga.png new file mode 100644 index 0000000..574b28e Binary files /dev/null and b/korean/images/가_Ga.png differ diff --git a/korean/images/각_Gak.png b/korean/images/각_Gak.png new file mode 100644 index 0000000..3f409df Binary files /dev/null and b/korean/images/각_Gak.png differ diff --git a/korean/images/간_Gan.png b/korean/images/간_Gan.png new file mode 100644 index 0000000..6b4289e Binary files /dev/null and b/korean/images/간_Gan.png differ diff --git a/korean/images/갈_Gal.png b/korean/images/갈_Gal.png new file mode 100644 index 0000000..323c9ca Binary files /dev/null and b/korean/images/갈_Gal.png differ diff --git a/korean/images/감_Gam.png b/korean/images/감_Gam.png new file mode 100644 index 0000000..842937c Binary files /dev/null and b/korean/images/감_Gam.png differ diff --git a/korean/images/갑_Gap.png b/korean/images/갑_Gap.png new file mode 100644 index 0000000..c792661 Binary files /dev/null and b/korean/images/갑_Gap.png differ diff --git a/korean/images/강_Gang.png b/korean/images/강_Gang.png new file mode 100644 index 0000000..da33b72 Binary files /dev/null and b/korean/images/강_Gang.png differ diff --git a/korean/images/개_Gae.png b/korean/images/개_Gae.png new file mode 100644 index 0000000..5a874c7 Binary files /dev/null and b/korean/images/개_Gae.png differ diff --git a/korean/images/객_Gaek.png b/korean/images/객_Gaek.png new file mode 100644 index 0000000..ab9af30 Binary files /dev/null and b/korean/images/객_Gaek.png differ diff --git a/korean/images/건_Geon.png b/korean/images/건_Geon.png new file mode 100644 index 0000000..8dbe974 Binary files /dev/null and b/korean/images/건_Geon.png differ diff --git a/korean/images/걸_Geol.png b/korean/images/걸_Geol.png new file mode 100644 index 0000000..940d11d Binary files /dev/null and b/korean/images/걸_Geol.png differ diff --git a/korean/images/검_Geom.png b/korean/images/검_Geom.png new file mode 100644 index 0000000..8ae8bf8 Binary files /dev/null and b/korean/images/검_Geom.png differ diff --git a/korean/images/겁_Geop.png b/korean/images/겁_Geop.png new file mode 100644 index 0000000..f7a54a2 Binary files /dev/null and b/korean/images/겁_Geop.png differ diff --git a/korean/images/게_Ge.png b/korean/images/게_Ge.png new file mode 100644 index 0000000..85eb5d6 Binary files /dev/null and b/korean/images/게_Ge.png differ diff --git a/korean/images/격_Gyeok.png b/korean/images/격_Gyeok.png new file mode 100644 index 0000000..4c79757 Binary files /dev/null and b/korean/images/격_Gyeok.png differ diff --git a/korean/images/견_Gyeon.png b/korean/images/견_Gyeon.png new file mode 100644 index 0000000..5749127 Binary files /dev/null and b/korean/images/견_Gyeon.png differ diff --git a/korean/images/결_Gyeol.png b/korean/images/결_Gyeol.png new file mode 100644 index 0000000..2714f59 Binary files /dev/null and b/korean/images/결_Gyeol.png differ diff --git a/korean/images/겸_Gyeom.png b/korean/images/겸_Gyeom.png new file mode 100644 index 0000000..9306d3d Binary files /dev/null and b/korean/images/겸_Gyeom.png differ diff --git a/korean/images/겹_Gyeop.png b/korean/images/겹_Gyeop.png new file mode 100644 index 0000000..bd554af Binary files /dev/null and b/korean/images/겹_Gyeop.png differ diff --git a/korean/images/경_Gyeong.png b/korean/images/경_Gyeong.png new file mode 100644 index 0000000..ca55c25 Binary files /dev/null and b/korean/images/경_Gyeong.png differ diff --git a/korean/images/계_Gye.png b/korean/images/계_Gye.png new file mode 100644 index 0000000..85c8ddc Binary files /dev/null and b/korean/images/계_Gye.png differ diff --git a/korean/images/고_Go.png b/korean/images/고_Go.png new file mode 100644 index 0000000..92350e4 Binary files /dev/null and b/korean/images/고_Go.png differ diff --git a/korean/images/곡_Gok.png b/korean/images/곡_Gok.png new file mode 100644 index 0000000..3aac1a2 Binary files /dev/null and b/korean/images/곡_Gok.png differ diff --git a/korean/images/곤_Gon.png b/korean/images/곤_Gon.png new file mode 100644 index 0000000..69be9a8 Binary files /dev/null and b/korean/images/곤_Gon.png differ diff --git a/korean/images/골_Gol.png b/korean/images/골_Gol.png new file mode 100644 index 0000000..b70314c Binary files /dev/null and b/korean/images/골_Gol.png differ diff --git a/korean/images/공_Gong.png b/korean/images/공_Gong.png new file mode 100644 index 0000000..b683a39 Binary files /dev/null and b/korean/images/공_Gong.png differ diff --git a/korean/images/과_Gwa.png b/korean/images/과_Gwa.png new file mode 100644 index 0000000..5dff800 Binary files /dev/null and b/korean/images/과_Gwa.png differ diff --git a/korean/images/관_Gwan.png b/korean/images/관_Gwan.png new file mode 100644 index 0000000..e7d8c3f Binary files /dev/null and b/korean/images/관_Gwan.png differ diff --git a/korean/images/괄_Gwal.png b/korean/images/괄_Gwal.png new file mode 100644 index 0000000..812c7d4 Binary files /dev/null and b/korean/images/괄_Gwal.png differ diff --git a/korean/images/광_Gwang.png b/korean/images/광_Gwang.png new file mode 100644 index 0000000..3d58c8f Binary files /dev/null and b/korean/images/광_Gwang.png differ diff --git a/korean/images/국_Guk.png b/korean/images/국_Guk.png new file mode 100644 index 0000000..1b4d7d7 Binary files /dev/null and b/korean/images/국_Guk.png differ diff --git a/korean/images/군_Gun.png b/korean/images/군_Gun.png new file mode 100644 index 0000000..2f1bc7d Binary files /dev/null and b/korean/images/군_Gun.png differ diff --git a/korean/images/굴_Gul.png b/korean/images/굴_Gul.png new file mode 100644 index 0000000..6930fac Binary files /dev/null and b/korean/images/굴_Gul.png differ diff --git a/korean/images/굼_Gum.png b/korean/images/굼_Gum.png new file mode 100644 index 0000000..8713139 Binary files /dev/null and b/korean/images/굼_Gum.png differ diff --git a/korean/images/굽_Gup.png b/korean/images/굽_Gup.png new file mode 100644 index 0000000..ee5bf8e Binary files /dev/null and b/korean/images/굽_Gup.png differ diff --git a/korean/images/굿_Gut.png b/korean/images/굿_Gut.png new file mode 100644 index 0000000..5631def Binary files /dev/null and b/korean/images/굿_Gut.png differ diff --git a/korean/images/귀_Gwi.png b/korean/images/귀_Gwi.png new file mode 100644 index 0000000..08518d7 Binary files /dev/null and b/korean/images/귀_Gwi.png differ diff --git a/korean/images/규_Gyu.png b/korean/images/규_Gyu.png new file mode 100644 index 0000000..3e799c5 Binary files /dev/null and b/korean/images/규_Gyu.png differ diff --git a/korean/images/균_Gyun.png b/korean/images/균_Gyun.png new file mode 100644 index 0000000..eabe11b Binary files /dev/null and b/korean/images/균_Gyun.png differ diff --git a/korean/images/그_Geu.png b/korean/images/그_Geu.png new file mode 100644 index 0000000..e4b502f Binary files /dev/null and b/korean/images/그_Geu.png differ diff --git a/learning b/learning index 99e69f5..44ba43a 100755 Binary files a/learning and b/learning differ diff --git a/main.go b/main.go index 5473c58..b3bfdbc 100644 --- a/main.go +++ b/main.go @@ -25,6 +25,17 @@ const ( ScreenJapanese = "japanese" ) +// LanguageScreenState holds the state for each language screen +type LanguageScreenState struct { + Textures []rl.Texture2D + ImageFiles []string + ImagePath string + ScrollY int32 + Loaded bool + Title string + Color rl.Color +} + func main() { // Initialize window screenWidth := int32(800) @@ -87,10 +98,84 @@ func main() { // Current screen state currentScreen := ScreenMenu prevScreen := ScreenMenu - - // Japanese screen state - var japaneseTextures []rl.Texture2D - var imageStartY int32 = 0 + + // Language screen states + languageStates := map[string]*LanguageScreenState{ + ScreenThai: { + ImagePath: "thai/images/", + ImageFiles: []string{ + "ก_Ko Kai.png", "ข_Kho Khai.png", "ฃ_Kho Khuat.png", "ค_Kho Khwai.png", "ฅ_Kho Khon.png", + "ฆ_Kho Rakhang.png", "ง_Ngo Ngai.png", "จ_Cho Chan.png", "ฉ_Cho Ching.png", "ช_Cho Chang.png", + "ซ_So So.png", "ฌ_Cho Che.png", "ญ_Yo Ying.png", "ฎ_Do Dek.png", "ฏ_To Tao.png", + "ฐ_To Thong.png", "ฑ_To Thung.png", "ฒ_To Thahan.png", "ณ_No Nen.png", "ด_Do Dek.png", + "ต_To Tao.png", "ถ_To Thung.png", "ท_To Thahan.png", "ธ_Tho Thong.png", "น_No Nu.png", + "บ_Bo Baimai.png", "ป_Po Pla.png", "ผ_Pho Phung.png", "ฝ_Fo Fa.png", "พ_Pho Phan.png", + "ฟ_Fo Fan.png", "ภ_Pho Samphao.png", "ม_Mo Ma.png", "ย_Yo Yak.png", "ร_Ro Rua.png", + "ล_Lo Ling.png", "ว_Wo Waen.png", "ศ_So Sala.png", "ษ_So Ruezi.png", "ส_So Suan.png", + "ห_Ho Hip.png", "ฬ_Lo Chula.png", "อ_O Ang.png", "ฮ_Ho Nokhuk.png", + "ะ_Sara A.png", "ั_Sara Aa.png", "า_Sara Aa.png", "ำ_Sara Am.png", "ิ_Sara I.png", + "ี_Sara Ii.png", "ึ_Sara Ue.png", "ื_Sara Uee.png", "ุ_Sara U.png", "ู_Sara Uu.png", + "เ_Sara E.png", "แ_Sara Ae.png", "โ_Sara O.png", "ใ_Sara Ai Mai Malai.png", "ไ_Sara Ai Mai Muang.png", + "ๅ_Sara Ue.png", "ๆ_Sara Uee.png", + "๐_Zero.png", "๑_One.png", "๒_Two.png", "๓_Three.png", "๔_Four.png", + "๕_Five.png", "๖_Six.png", "๗_Seven.png", "๘_Eight.png", "๙_Nine.png", + }, + ScrollY: 0, + Title: "Thai Characters", + Color: rl.Red, + }, + ScreenKorean: { + ImagePath: "korean/images/", + ImageFiles: []string{ + "ㄱ_Giyeok.png", "ㄲ_SsangGiyeok.png", "ㄴ_Nieun.png", "ㄷ_Dieut.png", "ㄸ_SsangDieut.png", + "ㄹ_Rieul.png", "ㅁ_Mieum.png", "ㅂ_Pieup.png", "ㅃ_SsangPieup.png", "ㅅ_Siot.png", + "ㅆ_SsangSiot.png", "ㅇ_Ieung.png", "ㅈ_Jieut.png", "ㅉ_SSangJieut.png", "ㅊ_Chieut.png", + "ㅋ_Kieuk.png", "ㅌ_Tieut.png", "ㅍ_Pieup.png", "ㅎ_Hieut.png", + "ㅏ_A.png", "ㅐ_Ae.png", "ㅑ_Ya.png", "ㅒ_Yae.png", "ㅓ_Eo.png", + "ㅔ_E.png", "ㅕ_Yeo.png", "ㅖ_Ye.png", "ㅗ_O.png", "ㅘ_Wa.png", + "ㅙ_Wae.png", "ㅚ_Oe.png", "ㅛ_Yo.png", "ㅜ_U.png", "ㅝ_Wo.png", + "ㅞ_We.png", "ㅟ_Wi.png", "ㅠ_Yu.png", "ㅡ_Eu.png", "ㅢ_Ui.png", "ㅣ_I.png", + "ㄱㅅ_Giyeok-Siot.png", "ㄵ_Nieun-Cieut.png", "ㄶ_Nieun-Hieut.png", + "ㄺ_Rieul-Giyeok.png", "ㄻ_Rieul-Mieum.png", "ㄼ_Rieul-Pieup.png", "ㄽ_Rieul-Siot.png", + "ㄾ_Rieul-Tieut.png", "ㄿ_Rieul-Phup.png", "ㅀ_Rieul-Hieut.png", + "ㅄ_Pieup-Siot.png", + "가_Ga.png", "각_Gak.png", "간_Gan.png", "갈_Gal.png", "감_Gam.png", + "갑_Gap.png", "강_Gang.png", "개_Gae.png", "객_Gaek.png", "건_Geon.png", + "걸_Geol.png", "검_Geom.png", "겁_Geop.png", "게_Ge.png", "격_Gyeok.png", + "견_Gyeon.png", "결_Gyeol.png", "겸_Gyeom.png", "겹_Gyeop.png", "경_Gyeong.png", + "계_Gye.png", "고_Go.png", "곡_Gok.png", "곤_Gon.png", "골_Gol.png", + "공_Gong.png", "과_Gwa.png", "관_Gwan.png", "괄_Gwal.png", "광_Gwang.png", + "귀_Gwi.png", "규_Gyu.png", "균_Gyun.png", "굴_Gul.png", "굼_Gum.png", + "국_Guk.png", "군_Gun.png", "굽_Gup.png", "굿_Gut.png", "그_Geu.png", + }, + ScrollY: 0, + Title: "Korean Characters", + Color: rl.Blue, + }, + ScreenJapanese: { + ImagePath: "japanese/images/", + ImageFiles: []string{ + "あ_a.png", "い_i.png", "う_u.png", "え_e.png", "お_o.png", + "か_ka.png", "き_ki.png", "く_ku.png", "け_ke.png", "こ_ko.png", + "さ_sa.png", "し_shi.png", "す_su.png", "せ_se.png", "そ_so.png", + "た_ta.png", "ち_chi.png", "つ_tsu.png", "て_te.png", "と_to.png", + "な_na.png", "に_ni.png", "ぬ_nu.png", "ね_ne.png", "の_no.png", + "は_ha.png", "ひ_hi.png", "ふ_fu.png", "へ_he.png", "ほ_ho.png", + "ま_ma.png", "み_mi.png", "む_mu.png", "め_me.png", "も_mo.png", + "や_ya.png", "ゆ_yu.png", "よ_yo.png", + "ら_ra.png", "り_ri.png", "る_ru.png", "れ_re.png", "ろ_ro.png", + "わ_wa.png", "ゐ_wi.png", "ゑ_we.png", "を_wo.png", "ん_n.png", + "が_ga.png", "ぎ_gi.png", "ぐ_gu.png", "げ_ge.png", "ご_go.png", + "ざ_za.png", "じ_ji.png", "ず_zu.png", "ぜ_ze.png", "ぞ_zo.png", + "だ_da.png", "ぢ_di.png", "づ_du.png", "で_de.png", "ど_do.png", + "ば_ba.png", "び_bi.png", "ぶ_bu.png", "べ_be.png", "ぼ_bo.png", + "ぱ_pa.png", "ぴ_pi.png", "ぷ_pu.png", "ぺ_pe.png", "ぽ_po.png", + }, + ScrollY: 0, + Title: "Hiragana Characters", + Color: rl.Green, + }, + } // Main game loop for !rl.WindowShouldClose() { @@ -104,6 +189,39 @@ func main() { btn.Clicked = false btn.Scale = 1.0 } + + // Reset language screen state when switching to it + if currentScreen != ScreenMenu { + state := languageStates[currentScreen] + if !state.Loaded { + // Load textures + for _, imgName := range state.ImageFiles { + texture := rl.LoadTexture(state.ImagePath + imgName) + if texture.ID != 0 { + state.Textures = append(state.Textures, texture) + } else { + state.Textures = append(state.Textures, rl.Texture2D{}) + } + } + state.Loaded = true + } + state.ScrollY = 0 + } else { + // Unload textures when leaving language screens + for _, lang := range []string{ScreenThai, ScreenKorean, ScreenJapanese} { + if lang != currentScreen { + state := languageStates[lang] + for _, tex := range state.Textures { + if tex.ID != 0 { + rl.UnloadTexture(tex) + } + } + state.Textures = nil + state.Loaded = false + } + } + } + prevScreen = currentScreen } @@ -169,43 +287,13 @@ func main() { rl.DrawText(btn.Text, textX, textY, 20, rl.Black) } - case ScreenThai: - rl.DrawText("Thai Language Screen", screenWidth/2-100, screenHeight/2-20, 30, rl.Red) - rl.DrawText("Press ESC to return to menu", screenWidth/2-120, screenHeight/2+30, 20, rl.Black) - if rl.IsKeyPressed(rl.KeyEscape) { - currentScreen = ScreenMenu - } - - case ScreenKorean: - rl.DrawText("Korean Language Screen", screenWidth/2-120, screenHeight/2-20, 30, rl.Blue) - rl.DrawText("Press ESC to return to menu", screenWidth/2-120, screenHeight/2+30, 20, rl.Black) - if rl.IsKeyPressed(rl.KeyEscape) { - currentScreen = ScreenMenu - } - - case ScreenJapanese: - rl.DrawText("Hiragana Characters", 20, 20, 30, rl.Green) - rl.DrawText("Press ESC to return to menu", screenWidth-200, 20, 20, rl.Black) + default: + // Language screens + state := languageStates[currentScreen] - // Load and display Hiragana images in a grid - imagePath := "japanese/images/" - hiraganaImages := []string{ - "あ_a.png", "い_i.png", "う_u.png", "え_e.png", "お_o.png", - "か_ka.png", "き_ki.png", "く_ku.png", "け_ke.png", "こ_ko.png", - "さ_sa.png", "し_shi.png", "す_su.png", "せ_se.png", "そ_so.png", - "た_ta.png", "ち_chi.png", "つ_tsu.png", "て_te.png", "と_to.png", - "な_na.png", "に_ni.png", "ぬ_nu.png", "ね_ne.png", "の_no.png", - "は_ha.png", "ひ_hi.png", "ふ_fu.png", "へ_he.png", "ほ_ho.png", - "ま_ma.png", "み_mi.png", "む_mu.png", "め_me.png", "も_mo.png", - "や_ya.png", "ゆ_yu.png", "よ_yo.png", - "ら_ra.png", "り_ri.png", "る_ru.png", "れ_re.png", "ろ_ro.png", - "わ_wa.png", "ゐ_wi.png", "ゑ_we.png", "を_wo.png", "ん_n.png", - "が_ga.png", "ぎ_gi.png", "ぐ_gu.png", "げ_ge.png", "ご_go.png", - "ざ_za.png", "じ_ji.png", "ず_zu.png", "ぜ_ze.png", "ぞ_zo.png", - "だ_da.png", "ぢ_di.png", "づ_du.png", "で_de.png", "ど_do.png", - "ば_ba.png", "び_bi.png", "ぶ_bu.png", "べ_be.png", "ぼ_bo.png", - "ぱ_pa.png", "ぴ_pi.png", "ぷ_pu.png", "ぺ_pe.png", "ぽ_po.png", - } + // Draw title + rl.DrawText(state.Title, 20, 20, 30, state.Color) + rl.DrawText("Press ESC to return to menu", screenWidth-200, 20, 20, rl.Black) // Grid layout columns := 7 @@ -215,25 +303,13 @@ func main() { startX := int32(20) startY := int32(60) - // Load images on first frame - if len(japaneseTextures) == 0 { - for _, imgName := range hiraganaImages { - texture := rl.LoadTexture(imagePath + imgName) - if texture != (rl.Texture2D{}) { - japaneseTextures = append(japaneseTextures, texture) - } else { - japaneseTextures = append(japaneseTextures, rl.Texture2D{}) - } - } - } - // Draw images in grid - for i, texture := range japaneseTextures { + for i, texture := range state.Textures { if texture.ID != 0 { row := i / columns col := i % columns x := startX + int32(col)*(imageWidth+spacing) - y := startY + int32(row)*(imageHeight+spacing) - imageStartY + y := startY + int32(row)*(imageHeight+spacing) - state.ScrollY // Draw background for image rl.DrawRectangle(x, y, imageWidth, imageHeight, rl.LightGray) @@ -249,20 +325,15 @@ func main() { // Handle scroll with mouse wheel scroll := rl.GetMouseWheelMove() if scroll != 0 { - imageStartY += int32(scroll) * 10 - if imageStartY < 0 { - imageStartY = 0 + state.ScrollY += int32(scroll) * 10 + if state.ScrollY < 0 { + state.ScrollY = 0 } } + // Handle ESC key if rl.IsKeyPressed(rl.KeyEscape) { currentScreen = ScreenMenu - // Unload textures when leaving - for _, tex := range japaneseTextures { - rl.UnloadTexture(tex) - } - japaneseTextures = nil - imageStartY = 0 } // Draw scroll hint diff --git a/thai/generate_thai.go b/thai/generate_thai.go new file mode 100644 index 0000000..e4a0ae3 --- /dev/null +++ b/thai/generate_thai.go @@ -0,0 +1,126 @@ +package main + +import ( + "fmt" + "os" + "runtime" + + "github.com/gen2brain/raylib-go/raylib" +) + +// Thai consonants (44 characters) +var thaiConsonants = []struct { + character string + name string +}{ + {"ก", "Ko Kai"}, {"ข", "Kho Khai"}, {"ฃ", "Kho Khuat"}, {"ค", "Kho Khwai"}, {"ฅ", "Kho Khon"}, + {"ฆ", "Kho Rakhang"}, {"ง", "Ngo Ngai"}, {"จ", "Cho Chan"}, {"ฉ", "Cho Ching"}, {"ช", "Cho Chang"}, + {"ซ", "So So"}, {"ฌ", "Cho Che"}, {"ญ", "Yo Ying"}, {"ฎ", "Do Dek"}, {"ฏ", "To Tao"}, + {"ฐ", "To Thong"}, {"ฑ", "To Thung"}, {"ฒ", "To Thahan"}, {"ณ", "No Nen"}, {"ด", "Do Dek"}, + {"ต", "To Tao"}, {"ถ", "To Thung"}, {"ท", "To Thahan"}, {"ธ", "Tho Thong"}, {"น", "No Nu"}, + {"บ", "Bo Baimai"}, {"ป", "Po Pla"}, {"ผ", "Pho Phung"}, {"ฝ", "Fo Fa"}, {"พ", "Pho Phan"}, + {"ฟ", "Fo Fan"}, {"ภ", "Pho Samphao"}, {"ม", "Mo Ma"}, {"ย", "Yo Yak"}, {"ร", "Ro Rua"}, + {"ล", "Lo Ling"}, {"ว", "Wo Waen"}, {"ศ", "So Sala"}, {"ษ", "So Ruezi"}, {"ส", "So Suan"}, + {"ห", "Ho Hip"}, {"ฬ", "Lo Chula"}, {"อ", "O Ang"}, {"ฮ", "Ho Nokhuk"}, +} + +// Thai vowels (32 characters) +var thaiVowels = []struct { + character string + name string +}{ + {"ะ", "Sara A"}, {"ั", "Sara Aa"}, {"า", "Sara Aa"}, {"ำ", "Sara Am"}, {"ิ", "Sara I"}, + {"ี", "Sara Ii"}, {"ึ", "Sara Ue"}, {"ื", "Sara Uee"}, {"ุ", "Sara U"}, {"ู", "Sara Uu"}, + {"เ", "Sara E"}, {"แ", "Sara Ae"}, {"โ", "Sara O"}, {"ใ", "Sara Ai Mai Malai"}, {"ไ", "Sara Ai Mai Muang"}, + {"ๅ", "Sara Ue"}, {"ๆ", "Sara Uee"}, +} + +// Thai numbers +var thaiNumbers = []struct { + character string + name string +}{ + {"๐", "Zero"}, {"๑", "One"}, {"๒", "Two"}, {"๓", "Three"}, {"๔", "Four"}, + {"๕", "Five"}, {"๖", "Six"}, {"๗", "Seven"}, {"๘", "Eight"}, {"๙", "Nine"}, +} + +func main() { + // Initialize raylib for font rendering + runtime.LockOSThread() + rl.InitWindow(1, 1, "Thai Generator") + defer rl.CloseWindow() + + // Create directory for images + if err := os.MkdirAll("images", 0755); err != nil { + panic(err) + } + + // Load a font that supports Thai + font := rl.GetFontDefault() + + fontPaths := []string{ + "/System/Library/Fonts/Ayuthaya.ttc", + "/System/Library/Fonts/Thonburi.ttc", + "/Library/Fonts/Ayuthaya.ttc", + "/usr/share/fonts/truetype/noto/NotoSansThai-Regular.ttf", + "/usr/share/fonts/truetype/dejavu/DejaVuSans.ttf", + } + + for _, path := range fontPaths { + if _, err := os.Stat(path); err == nil { + font = rl.LoadFont(path) + if font != (rl.Font{}) { + break + } + } + } + + if font == (rl.Font{}) { + font = rl.GetFontDefault() + fmt.Println("Using default font") + } else { + fmt.Println("Loaded Thai font") + } + + // All Thai characters + allThai := append(thaiConsonants, thaiVowels...) + allThai = append(allThai, thaiNumbers...) + + // Create image for each character + for _, t := range allThai { + // Create a render texture + texture := rl.LoadRenderTexture(256, 256) + + rl.BeginTextureMode(texture) + rl.ClearBackground(rl.White) + + // Draw the Thai character + charWidth := rl.MeasureText(t.character, 128) + charX := int32((256 - charWidth) / 2) + charY := int32(80) + rl.DrawText(t.character, charX, charY, 128, rl.Black) + + // Draw name at the bottom + nameWidth := rl.MeasureText(t.name, 24) + nameX := int32((256 - nameWidth) / 2) + nameY := int32(200) + rl.DrawText(t.name, nameX, nameY, 24, rl.Blue) + + rl.EndTextureMode() + + // Convert render texture to image + img := rl.LoadImageFromTexture(texture.Texture) + + // Save as PNG + filename := "images/" + t.character + "_" + t.name + ".png" + rl.ExportImage(*img, filename) + + // Cleanup + rl.UnloadImage(img) + rl.UnloadRenderTexture(texture) + + fmt.Println("Generated:", filename) + } + + fmt.Println("Finished generating all Thai images!") +} diff --git a/thai/images/ก_Ko Kai.png b/thai/images/ก_Ko Kai.png new file mode 100644 index 0000000..2db115c Binary files /dev/null and b/thai/images/ก_Ko Kai.png differ diff --git a/thai/images/ข_Kho Khai.png b/thai/images/ข_Kho Khai.png new file mode 100644 index 0000000..d444ed3 Binary files /dev/null and b/thai/images/ข_Kho Khai.png differ diff --git a/thai/images/ฃ_Kho Khuat.png b/thai/images/ฃ_Kho Khuat.png new file mode 100644 index 0000000..71d33c5 Binary files /dev/null and b/thai/images/ฃ_Kho Khuat.png differ diff --git a/thai/images/ค_Kho Khwai.png b/thai/images/ค_Kho Khwai.png new file mode 100644 index 0000000..fc36e1e Binary files /dev/null and b/thai/images/ค_Kho Khwai.png differ diff --git a/thai/images/ฅ_Kho Khon.png b/thai/images/ฅ_Kho Khon.png new file mode 100644 index 0000000..48c316b Binary files /dev/null and b/thai/images/ฅ_Kho Khon.png differ diff --git a/thai/images/ฆ_Kho Rakhang.png b/thai/images/ฆ_Kho Rakhang.png new file mode 100644 index 0000000..c77deb6 Binary files /dev/null and b/thai/images/ฆ_Kho Rakhang.png differ diff --git a/thai/images/ง_Ngo Ngai.png b/thai/images/ง_Ngo Ngai.png new file mode 100644 index 0000000..4321912 Binary files /dev/null and b/thai/images/ง_Ngo Ngai.png differ diff --git a/thai/images/จ_Cho Chan.png b/thai/images/จ_Cho Chan.png new file mode 100644 index 0000000..f8e695c Binary files /dev/null and b/thai/images/จ_Cho Chan.png differ diff --git a/thai/images/ฉ_Cho Ching.png b/thai/images/ฉ_Cho Ching.png new file mode 100644 index 0000000..15debf0 Binary files /dev/null and b/thai/images/ฉ_Cho Ching.png differ diff --git a/thai/images/ช_Cho Chang.png b/thai/images/ช_Cho Chang.png new file mode 100644 index 0000000..ca82a68 Binary files /dev/null and b/thai/images/ช_Cho Chang.png differ diff --git a/thai/images/ซ_So So.png b/thai/images/ซ_So So.png new file mode 100644 index 0000000..43f1602 Binary files /dev/null and b/thai/images/ซ_So So.png differ diff --git a/thai/images/ฌ_Cho Che.png b/thai/images/ฌ_Cho Che.png new file mode 100644 index 0000000..68f3d61 Binary files /dev/null and b/thai/images/ฌ_Cho Che.png differ diff --git a/thai/images/ญ_Yo Ying.png b/thai/images/ญ_Yo Ying.png new file mode 100644 index 0000000..a2d3dde Binary files /dev/null and b/thai/images/ญ_Yo Ying.png differ diff --git a/thai/images/ฎ_Do Dek.png b/thai/images/ฎ_Do Dek.png new file mode 100644 index 0000000..2b7b3ef Binary files /dev/null and b/thai/images/ฎ_Do Dek.png differ diff --git a/thai/images/ฏ_To Tao.png b/thai/images/ฏ_To Tao.png new file mode 100644 index 0000000..0eddccf Binary files /dev/null and b/thai/images/ฏ_To Tao.png differ diff --git a/thai/images/ฐ_To Thong.png b/thai/images/ฐ_To Thong.png new file mode 100644 index 0000000..1e37757 Binary files /dev/null and b/thai/images/ฐ_To Thong.png differ diff --git a/thai/images/ฑ_To Thung.png b/thai/images/ฑ_To Thung.png new file mode 100644 index 0000000..779845e Binary files /dev/null and b/thai/images/ฑ_To Thung.png differ diff --git a/thai/images/ฒ_To Thahan.png b/thai/images/ฒ_To Thahan.png new file mode 100644 index 0000000..9890ff6 Binary files /dev/null and b/thai/images/ฒ_To Thahan.png differ diff --git a/thai/images/ณ_No Nen.png b/thai/images/ณ_No Nen.png new file mode 100644 index 0000000..d42b1a3 Binary files /dev/null and b/thai/images/ณ_No Nen.png differ diff --git a/thai/images/ด_Do Dek.png b/thai/images/ด_Do Dek.png new file mode 100644 index 0000000..2b7b3ef Binary files /dev/null and b/thai/images/ด_Do Dek.png differ diff --git a/thai/images/ต_To Tao.png b/thai/images/ต_To Tao.png new file mode 100644 index 0000000..0eddccf Binary files /dev/null and b/thai/images/ต_To Tao.png differ diff --git a/thai/images/ถ_To Thung.png b/thai/images/ถ_To Thung.png new file mode 100644 index 0000000..779845e Binary files /dev/null and b/thai/images/ถ_To Thung.png differ diff --git a/thai/images/ท_To Thahan.png b/thai/images/ท_To Thahan.png new file mode 100644 index 0000000..9890ff6 Binary files /dev/null and b/thai/images/ท_To Thahan.png differ diff --git a/thai/images/ธ_Tho Thong.png b/thai/images/ธ_Tho Thong.png new file mode 100644 index 0000000..6772006 Binary files /dev/null and b/thai/images/ธ_Tho Thong.png differ diff --git a/thai/images/น_No Nu.png b/thai/images/น_No Nu.png new file mode 100644 index 0000000..6cae9fe Binary files /dev/null and b/thai/images/น_No Nu.png differ diff --git a/thai/images/บ_Bo Baimai.png b/thai/images/บ_Bo Baimai.png new file mode 100644 index 0000000..e2032ee Binary files /dev/null and b/thai/images/บ_Bo Baimai.png differ diff --git a/thai/images/ป_Po Pla.png b/thai/images/ป_Po Pla.png new file mode 100644 index 0000000..c17e0f8 Binary files /dev/null and b/thai/images/ป_Po Pla.png differ diff --git a/thai/images/ผ_Pho Phung.png b/thai/images/ผ_Pho Phung.png new file mode 100644 index 0000000..55f683d Binary files /dev/null and b/thai/images/ผ_Pho Phung.png differ diff --git a/thai/images/ฝ_Fo Fa.png b/thai/images/ฝ_Fo Fa.png new file mode 100644 index 0000000..b8f601a Binary files /dev/null and b/thai/images/ฝ_Fo Fa.png differ diff --git a/thai/images/พ_Pho Phan.png b/thai/images/พ_Pho Phan.png new file mode 100644 index 0000000..ec1b5d7 Binary files /dev/null and b/thai/images/พ_Pho Phan.png differ diff --git a/thai/images/ฟ_Fo Fan.png b/thai/images/ฟ_Fo Fan.png new file mode 100644 index 0000000..53ecc88 Binary files /dev/null and b/thai/images/ฟ_Fo Fan.png differ diff --git a/thai/images/ภ_Pho Samphao.png b/thai/images/ภ_Pho Samphao.png new file mode 100644 index 0000000..a1e9842 Binary files /dev/null and b/thai/images/ภ_Pho Samphao.png differ diff --git a/thai/images/ม_Mo Ma.png b/thai/images/ม_Mo Ma.png new file mode 100644 index 0000000..8a043b4 Binary files /dev/null and b/thai/images/ม_Mo Ma.png differ diff --git a/thai/images/ย_Yo Yak.png b/thai/images/ย_Yo Yak.png new file mode 100644 index 0000000..4d0201f Binary files /dev/null and b/thai/images/ย_Yo Yak.png differ diff --git a/thai/images/ร_Ro Rua.png b/thai/images/ร_Ro Rua.png new file mode 100644 index 0000000..3801dff Binary files /dev/null and b/thai/images/ร_Ro Rua.png differ diff --git a/thai/images/ล_Lo Ling.png b/thai/images/ล_Lo Ling.png new file mode 100644 index 0000000..c1c9a78 Binary files /dev/null and b/thai/images/ล_Lo Ling.png differ diff --git a/thai/images/ว_Wo Waen.png b/thai/images/ว_Wo Waen.png new file mode 100644 index 0000000..f497f41 Binary files /dev/null and b/thai/images/ว_Wo Waen.png differ diff --git a/thai/images/ศ_So Sala.png b/thai/images/ศ_So Sala.png new file mode 100644 index 0000000..0cab800 Binary files /dev/null and b/thai/images/ศ_So Sala.png differ diff --git a/thai/images/ษ_So Ruezi.png b/thai/images/ษ_So Ruezi.png new file mode 100644 index 0000000..3cf64b3 Binary files /dev/null and b/thai/images/ษ_So Ruezi.png differ diff --git a/thai/images/ส_So Suan.png b/thai/images/ส_So Suan.png new file mode 100644 index 0000000..574e586 Binary files /dev/null and b/thai/images/ส_So Suan.png differ diff --git a/thai/images/ห_Ho Hip.png b/thai/images/ห_Ho Hip.png new file mode 100644 index 0000000..91fcc79 Binary files /dev/null and b/thai/images/ห_Ho Hip.png differ diff --git a/thai/images/ฬ_Lo Chula.png b/thai/images/ฬ_Lo Chula.png new file mode 100644 index 0000000..2416110 Binary files /dev/null and b/thai/images/ฬ_Lo Chula.png differ diff --git a/thai/images/อ_O Ang.png b/thai/images/อ_O Ang.png new file mode 100644 index 0000000..6eb1c3c Binary files /dev/null and b/thai/images/อ_O Ang.png differ diff --git a/thai/images/ฮ_Ho Nokhuk.png b/thai/images/ฮ_Ho Nokhuk.png new file mode 100644 index 0000000..a2a57af Binary files /dev/null and b/thai/images/ฮ_Ho Nokhuk.png differ diff --git a/thai/images/ะ_Sara A.png b/thai/images/ะ_Sara A.png new file mode 100644 index 0000000..d7ed3c7 Binary files /dev/null and b/thai/images/ะ_Sara A.png differ diff --git a/thai/images/ั_Sara Aa.png b/thai/images/ั_Sara Aa.png new file mode 100644 index 0000000..b808700 Binary files /dev/null and b/thai/images/ั_Sara Aa.png differ diff --git a/thai/images/า_Sara Aa.png b/thai/images/า_Sara Aa.png new file mode 100644 index 0000000..b808700 Binary files /dev/null and b/thai/images/า_Sara Aa.png differ diff --git a/thai/images/ำ_Sara Am.png b/thai/images/ำ_Sara Am.png new file mode 100644 index 0000000..799fabf Binary files /dev/null and b/thai/images/ำ_Sara Am.png differ diff --git a/thai/images/ิ_Sara I.png b/thai/images/ิ_Sara I.png new file mode 100644 index 0000000..d5a0d81 Binary files /dev/null and b/thai/images/ิ_Sara I.png differ diff --git a/thai/images/ี_Sara Ii.png b/thai/images/ี_Sara Ii.png new file mode 100644 index 0000000..4ce2bff Binary files /dev/null and b/thai/images/ี_Sara Ii.png differ diff --git a/thai/images/ึ_Sara Ue.png b/thai/images/ึ_Sara Ue.png new file mode 100644 index 0000000..04f0257 Binary files /dev/null and b/thai/images/ึ_Sara Ue.png differ diff --git a/thai/images/ื_Sara Uee.png b/thai/images/ื_Sara Uee.png new file mode 100644 index 0000000..8fd4911 Binary files /dev/null and b/thai/images/ื_Sara Uee.png differ diff --git a/thai/images/ุ_Sara U.png b/thai/images/ุ_Sara U.png new file mode 100644 index 0000000..4754ccd Binary files /dev/null and b/thai/images/ุ_Sara U.png differ diff --git a/thai/images/ู_Sara Uu.png b/thai/images/ู_Sara Uu.png new file mode 100644 index 0000000..4596f32 Binary files /dev/null and b/thai/images/ู_Sara Uu.png differ diff --git a/thai/images/เ_Sara E.png b/thai/images/เ_Sara E.png new file mode 100644 index 0000000..cb5bf40 Binary files /dev/null and b/thai/images/เ_Sara E.png differ diff --git a/thai/images/แ_Sara Ae.png b/thai/images/แ_Sara Ae.png new file mode 100644 index 0000000..07c0de1 Binary files /dev/null and b/thai/images/แ_Sara Ae.png differ diff --git a/thai/images/โ_Sara O.png b/thai/images/โ_Sara O.png new file mode 100644 index 0000000..608199a Binary files /dev/null and b/thai/images/โ_Sara O.png differ diff --git a/thai/images/ใ_Sara Ai Mai Malai.png b/thai/images/ใ_Sara Ai Mai Malai.png new file mode 100644 index 0000000..344322d Binary files /dev/null and b/thai/images/ใ_Sara Ai Mai Malai.png differ diff --git a/thai/images/ไ_Sara Ai Mai Muang.png b/thai/images/ไ_Sara Ai Mai Muang.png new file mode 100644 index 0000000..488c6bb Binary files /dev/null and b/thai/images/ไ_Sara Ai Mai Muang.png differ diff --git a/thai/images/ๅ_Sara Ue.png b/thai/images/ๅ_Sara Ue.png new file mode 100644 index 0000000..04f0257 Binary files /dev/null and b/thai/images/ๅ_Sara Ue.png differ diff --git a/thai/images/ๆ_Sara Uee.png b/thai/images/ๆ_Sara Uee.png new file mode 100644 index 0000000..8fd4911 Binary files /dev/null and b/thai/images/ๆ_Sara Uee.png differ diff --git a/thai/images/๐_Zero.png b/thai/images/๐_Zero.png new file mode 100644 index 0000000..a90d757 Binary files /dev/null and b/thai/images/๐_Zero.png differ diff --git a/thai/images/๑_One.png b/thai/images/๑_One.png new file mode 100644 index 0000000..16f1476 Binary files /dev/null and b/thai/images/๑_One.png differ diff --git a/thai/images/๒_Two.png b/thai/images/๒_Two.png new file mode 100644 index 0000000..3e8c049 Binary files /dev/null and b/thai/images/๒_Two.png differ diff --git a/thai/images/๓_Three.png b/thai/images/๓_Three.png new file mode 100644 index 0000000..51b73a9 Binary files /dev/null and b/thai/images/๓_Three.png differ diff --git a/thai/images/๔_Four.png b/thai/images/๔_Four.png new file mode 100644 index 0000000..0aa2c48 Binary files /dev/null and b/thai/images/๔_Four.png differ diff --git a/thai/images/๕_Five.png b/thai/images/๕_Five.png new file mode 100644 index 0000000..43173a7 Binary files /dev/null and b/thai/images/๕_Five.png differ diff --git a/thai/images/๖_Six.png b/thai/images/๖_Six.png new file mode 100644 index 0000000..b0f6b3a Binary files /dev/null and b/thai/images/๖_Six.png differ diff --git a/thai/images/๗_Seven.png b/thai/images/๗_Seven.png new file mode 100644 index 0000000..912e528 Binary files /dev/null and b/thai/images/๗_Seven.png differ diff --git a/thai/images/๘_Eight.png b/thai/images/๘_Eight.png new file mode 100644 index 0000000..43a18fc Binary files /dev/null and b/thai/images/๘_Eight.png differ diff --git a/thai/images/๙_Nine.png b/thai/images/๙_Nine.png new file mode 100644 index 0000000..7f5e0d2 Binary files /dev/null and b/thai/images/๙_Nine.png differ