· 

6点式点字のTrueTypeフォントSixBrailleを使った点字変換の例

ネット検索していたら、6点式点字のTrueTypeフォントSixBrailleと言うものを見つけました。

これは面白そうだなと思って、それを使ってみたバージョンの点字変換プログラムを作ってみました。

このフォントは無料かつパブリックドメインのライセンスで、だれでも自由に利用できるそうです。

製作は「長野高専 電子情報工学科」の「伊藤祥一」様です。

 

さて、私が作ったプログラムのことを話しますね。

プログラムの構造的に言いますと、何はともあれ点字を正しく表示するためには「中間データ」を正確に作らないと駄目だということが分かりました。

 

清音・濁音・半濁音・拗音・拗濁音・半拗濁音・その他特殊文字や括弧類などを動変換すれば良いかを見極めてそれに見合った変換をする必要がありました。この作業は半分試行錯誤の連続でした。これには結構手間がかかりました。

(ここまで詳細に説明してあるホームページのサイトを見つけられませんでした。)

 

その「中間データ」がうまく出来れば、そのデータを「SixBraille」のフォントを指定したテキストボックスに代入するだけで点字が描けました。今回は「枠線を表示するとともに点のない箇所には横線を表示する」ものと「点だけ表示する」フォントの2つを選べるようにしました。

 

凸字データはそれで比較的簡単に出来るのですが、凹字データはそれほど簡単には作れませんので、こちらは別の方法を使いました。

 

まず凸字データを表示したテキストボックスの画像キャプチャをします。その画像データを左右反転させてからピクチャーボックスに表示しています。

 

ラジオボタンで凸字を選択した場合は、テキストボックスの Visible=true;  ピクチャーボックスの Visible=false; とします。

 

逆に凹字を選択した場合はテキストボックスの Visible=false;  ピクチャーボックスのVisible=true; とします。

 

この二つのコントロールは同じ大きさで重ねて配置してありますのでどちらかを目に見えるように切り替えているわけです。

 


中間データ作成部分のロジック ソースコードの例

>>>>> 訂正 <<<<< 数字と英字に対応していませんでしたので、修正しました。

        #region [Six Brille] Font セット

        private void TenjiFont()

        {

            // "SixBraille HLF" または "SixBraille P" の20ptに変更します。

            if (radioButtonDisp.Checked)

            {

                textBoxTenji.Font = new System.Drawing.Font("SixBraille HLF", fsize);

            }

            else

            {

                textBoxTenji.Font = new System.Drawing.Font("SixBraille P", fsize);

            }

        }

        #endregion

 

        #region 中間データの作成

        //中間データの作成

        private void CVT_Chukan()

        {

 

            textBoxMongon.Text = textBoxMongon.Text.TrimEnd();

            string s1 = textBoxMongon.Text + "  ";

            string s2 = "", s3 = "";

            string s4 = "", s5 = "";

            //半角を全角に変換する

            s1 = Microsoft.VisualBasic.Strings.StrConv(

                s1, Microsoft.VisualBasic.VbStrConv.Wide, 0x411);

            int len = s1.Length;

 

            for (int i=0;i<len-2;i++)

            {

                s2 = s1.Substring(i , 1);

                s3= s1.Substring(i , 2);

                s5 = s1.Substring(i + 1, 1);

 

                #region 拗音・拗濁音・半拗濁音

                //拗音・拗濁音・半拗濁音

                if (s5.Contains("ゃ") | s5.Contains("ゅ") | s5.Contains("ょ"))

                {

                    switch(s3)

                    {

                        case "きゃ":

                            s4 = s4 + "拗か";

                            i++;

                            break;

                        case "きゅ":

                            s4 = s4 + "拗く";

                            i++;

                            break;

                        case "きょ":

                            s4 = s4 + "拗こ";

                            i++;

                            break;

                        case "しゃ":

                            s4 = s4 + "拗さ";

                            i++;

                            break;

                        case "しゅ":

                            s4 = s4 + "拗す";

                            i++;

                            break;

                        case "しょ":

                            s4 = s4 + "拗そ";

                            i++;

                            break;

                        case "ちゃ":

                            s4 = s4 + "拗た";

                            i++;

                            break;

                        case "ちゅ":

                            s4 = s4 + "拗つ";

                            i++;

                            break;

                        case "ちょ":

                            s4 = s4 + "拗と";

                            i++;

                            break;

                        case "にゃ":

                            s4 = s4 + "拗な";

                            i++;

                            break;

                        case "にゅ":

                            s4 = s4 + "拗ぬ";

                            i++;

                            break;

                        case "にょ":

                            s4 = s4 + "拗の";

                            i++;

                            break;

                        case "ひゃ":

                            s4 = s4 + "拗は";

                            i++;

                            break;

                        case "ひゅ":

                            s4 = s4 + "拗ふ";

                            i++;

                            break;

                        case "ひょ":

                            s4 = s4 + "拗ほ";

                            i++;

                            break;

                        case "みゃ":

                            s4 = s4 + "拗ま";

                            i++;

                            break;

                        case "みゅ":

                            s4 = s4 + "拗む";

                            i++;

                            break;

                        case "みょ":

                            s4 = s4 + "拗も";

                            i++;

                            break;

                        case "りゃ":

                            s4 = s4 + "拗ら";

                            i++;

                            break;

                        case "りゅ":

                            s4 = s4 + "拗る";

                            i++;

                            break;

                        case "りょ":

                            s4 = s4 + "拗ろ";

                            i++;

                            break;

 

                        case "ぎゃ":

                            s4 = s4 + "ぎか";

                            i++;

                            break;

                        case "ぎゅ":

                            s4 = s4 + "ぎく";

                            i++;

                            break;

                        case "ぎょ":

                            s4 = s4 + "ぎこ";

                            i++;

                            break;

                        case "じゃ":

                            s4 = s4 + "ぎさ";

                            i++;

                            break;

                        case "じゅ":

                            s4 = s4 + "ぎす";

                            i++;

                            break;

                        case "じょ":

                            s4 = s4 + "ぎそ";

                            i++;

                            break;

                        case "ぢゃ":

                            s4 = s4 + "ぎた";

                            i++;

                            break;

                        case "ぢゅ":

                            s4 = s4 + "ぎつ";

                            i++;

                            break;

                        case "ぢょ":

                            s4 = s4 + "ぎと";

                            i++;

                            break;

                        case "びゃ":

                            s4 = s4 + "ぎは";

                            i++;

                            break;

                        case "びゅ":

                            s4 = s4 + "ぎふ";

                            i++;

                            break;

                        case "びょ":

                            s4 = s4 + "ぎほ";

                            i++;

                            break;

 

                        case "ぴゃ":

                            s4 = s4 + "ぴは";

                            i++;

                            break;

                        case "ぴゅ":

                            s4 = s4 + "ぴふ";

                            i++;

                            break;

                        case "ぴょ":

                            s4 = s4 + "ぴほ";

                            i++;

                            break;

 

                        case "てゅ":

                            s4 = s4 + "ぴつ";

                            i++;

                            break;

                        case "ふゅ":

                            s4 = s4 + "ぴゆ";

                            i++;

                            break;

                        case "ふょ":

                            s4 = s4 + "ぴよ";

                            i++;

                            break;

                        default:

                            break;

                    }

                }

                #endregion;

 

                #region 特殊音など

                //特殊音など

                else if (s5.Contains("ぁ") | s5.Contains("ぃ") | s5.Contains("ぅ") | s5.Contains("ぇ") | s5.Contains("ぉ"))

                {

                    switch (s3)

                    {

                        case "いぇ":

                            s4 = s4 + "拗え";

                            i++;

                            break;

                        case "きぇ":

                            s4 = s4 + "拗け";

                            i++;

                            break;

                        case "しぇ":

                            s4 = s4 + "拗せ";

                            i++;

                            break;

                        case "じぇ":

                            s4 = s4 + "ぎせ";

                            i++;

                            break;

                        case "ちぇ":

                            s4 = s4 + "拗て";

                            i++;

                            break;

                        case "にぇ":

                            s4 = s4 + "拗ね";

                            i++;

                            break;

                        case "ひぇ":

                            s4 = s4 + "拗へ";

                            i++;

                            break;

 

                        case "うぃ":

                            s4 = s4 + "疑い";

                            i++;

                            break;

                        case "うぇ":

                            s4 = s4 + "疑え";

                            i++;

                            break;

                        case "うぉ":

                            s4 = s4 + "疑お";

                            i++;

                            break;

 

                        case "くぁ":

                            s4 = s4 + "疑か";

                            i++;

                            break;

                        case "くぃ":

                            s4 = s4 + "疑き";

                            i++;

                            break;

                        case "くぇ":

                            s4 = s4 + "疑け";

                            i++;

                            break;

                        case "くぉ":

                            s4 = s4 + "疑こ";

                            i++;

                            break;

                        case "ぐぁ":

                            s4 = s4 + "句か";

                            i++;

                            break;

                        case "ぐぃ":

                            s4 = s4 + "句き";

                            i++;

                            break;

                        case "ぐぇ":

                            s4 = s4 + "句け";

                            i++;

                            break;

                        case "ぐぉ":

                            s4 = s4 + "句こ";

                            i++;

                            break;

 

                        case "つぁ":

                            s4 = s4 + "疑た";

                            i++;

                            break;

                        case "つぃ":

                            s4 = s4 + "疑ち";

                            i++;

                            break;

                        case "つぇ":

                            s4 = s4 + "疑て";

                            i++;

                            break;

                        case "つぉ":

                            s4 = s4 + "疑と";

                            i++;

                            break;

                        case "ふぁ":

                            s4 = s4 + "疑は";

                            i++;

                            break;

                        case "ふぃ":

                            s4 = s4 + "疑ひ";

                            i++;

                            break;

                        case "ふぇ":

                            s4 = s4 + "疑へ";

                            i++;

                            break;

                        case "ふぉ":

                            s4 = s4 + "疑ほ";

                            i++;

                            break;

                        case "ヴぁ":

                            s4 = s4 + "句は";

                            i++;

                            break;

                        case "ヴぃ":

                            s4 = s4 + "句ひ";

                            i++;

                            break;

                        case "ヴぇ":

                            s4 = s4 + "句へ";

                            i++;

                            break;

                        case "ヴぉ":

                            s4 = s4 + "句ほ";

                            i++;

                            break;

                        case "すぃ":

                            s4 = s4 + "拗し";

                            i++;

                            break;

                        case "ずぃ":

                            s4 = s4 + "ぎし";

                            i++;

                            break;

                        case "てぃ":

                            s4 = s4 + "拗ち";

                            i++;

                            break;

                        case "でぃ":

                            s4 = s4 + "ぎち";

                            i++;

                            break;

                        case "とぅ":

                            s4 = s4 + "疑つ";

                            i++;

                            break;

                        case "どぅ":

                            s4 = s4 + "句つ";

                            i++;

                            break;

                        default:

                            break;

                    }

                }

                #endregion;

 

                //濁音・半濁音・静音

                #region 英数字のフラグ編集

                //英数字のフラグ編集

                else

                {

                    //数字フラグリセット

                    if (!s2.Contains("1") & !s2.Contains("2") & !s2.Contains("3") & !s2.Contains("4") & !s2.Contains("5") &

                        !s2.Contains("6") & !s2.Contains("7") & !s2.Contains("8") & !s2.Contains("9") & !s2.Contains("0") &

                        !s2.Contains(".") & !s2.Contains("-"))

                    {

                        suji = false;

                    }

 

                    //英字フラグ リセット

                    if (!s2.Contains("a") & !s2.Contains("b") & !s2.Contains("c") & !s2.Contains("d") & !s2.Contains("e") & !s2.Contains("f") &

                        !s2.Contains("g") & !s2.Contains("h") & !s2.Contains("i") & !s2.Contains("j") & !s2.Contains("k") & !s2.Contains("l") &

                        !s2.Contains("m") & !s2.Contains("n") & !s2.Contains("o") & !s2.Contains("p") & !s2.Contains("q") & !s2.Contains("r") &

                        !s2.Contains("s") & !s2.Contains("t") & !s2.Contains("u") & !s2.Contains("v") & !s2.Contains("w") &

                        !s2.Contains("x") & !s2.Contains("y") & !s2.Contains("z") &

                        !s2.Contains("A") & !s2.Contains("B") & !s2.Contains("C") & !s2.Contains("D") & !s2.Contains("E") & !s2.Contains("F") &

                        !s2.Contains("G") & !s2.Contains("H") & !s2.Contains("I") & !s2.Contains("J") & !s2.Contains("K") & !s2.Contains("L") &

                        !s2.Contains("M") & !s2.Contains("N") & !s2.Contains("O") & !s2.Contains("P") & !s2.Contains("Q") & !s2.Contains("R") &

                        !s2.Contains("S") & !s2.Contains("T") & !s2.Contains("U") & !s2.Contains("V") & !s2.Contains("W") &

                        !s2.Contains("X") & !s2.Contains("Y") & !s2.Contains("Z") &

                        !s2.Contains("大") & !s2.Contains("大") & !s2.Contains("/") & !s2.Contains("."))

                    {

                        eiji = false;

                        oomoji = false;

                        nijuoomji = false;

                    }

 

                    //二重大文字フラグセット

                    if (!eiji & s2.Contains("大"))

                    {

                        eiji = true;

                        nijuoomji = true;

                        s4 = s4 + "外大";

                        //i++;

                    }

 

                    //英字フラグセット

                    if (!eiji)

                    {

                        if (s2.Contains("a") | s2.Contains("b") | s2.Contains("c") | s2.Contains("d") | s2.Contains("e") | s2.Contains("f") |

                            s2.Contains("g") | s2.Contains("h") | s2.Contains("i") | s2.Contains("j") | s2.Contains("k") | s2.Contains("l") |

                            s2.Contains("m") | s2.Contains("n") | s2.Contains("o") | s2.Contains("p") | s2.Contains("q") | s2.Contains("r") |

                            s2.Contains("s") | s2.Contains("t") | s2.Contains("u") | s2.Contains("v") | s2.Contains("w") |

                            s2.Contains("x") | s2.Contains("y") | s2.Contains("z") | s2.Contains("/"))

                        {

                            s4 = s4 + "外";

                            eiji = true;

                        }

 

                        else if (s2.Contains("A") | s2.Contains("B") | s2.Contains("C") | s2.Contains("D") | s2.Contains("E") | s2.Contains("F") |

                                s2.Contains("G") | s2.Contains("H") | s2.Contains("I") | s2.Contains("J") | s2.Contains("K") | s2.Contains("L") |

                                s2.Contains("M") | s2.Contains("N") | s2.Contains("O") | s2.Contains("P") | s2.Contains("Q") | s2.Contains("R") |

                                s2.Contains("S") | s2.Contains("T") | s2.Contains("U") | s2.Contains("V") | s2.Contains("W") |

                                s2.Contains("X") | s2.Contains("Y") | s2.Contains("Z"))

                        {

                            if (!eiji)

                            {

                                s4 = s4 + "外";

                                oomoji = true;

                                eiji = true;

                            }

                        }

                    }

                    #endregion;

 

                    switch (s2)

                    {

                        #region 濁音など

                        //濁音など

                        case "が":

                            s4 = s4 + "濁か";

                            break;

                        case "ぎ":

                            s4 = s4 + "濁き";

                            break;

                        case "ぐ":

                            s4 = s4 + "濁く";

                            break;

                        case "げ":

                            s4 = s4 + "濁け";

                            break;

                        case "ご":

                            s4 = s4 + "濁こ";

                            break;

 

                        case "ざ":

                            s4 = s4 + "濁さ";

                            break;

                        case "じ":

                            s4 = s4 + "濁し";

                            break;

                        case "ず":

                            s4 = s4 + "濁す";

                            break;

                        case "ぜ":

                            s4 = s4 + "濁せ";

                            break;

                        case "ぞ":

                            s4 = s4 + "濁そ";

                            break;

 

                        case "だ":

                            s4 = s4 + "濁た";

                            break;

                        case "ぢ":

                            s4 = s4 + "濁ち";

                            break;

                        case "づ":

                            s4 = s4 + "濁つ";

                            break;

                        case "で":

                            s4 = s4 + "濁て";

                            break;

                        case "ど":

                            s4 = s4 + "濁と";

                            break;

 

                        case "ば":

                            s4 = s4 + "濁は";

                            break;

                        case "び":

                            s4 = s4 + "濁ひ";

                            break;

                        case "ぶ":

                            s4 = s4 + "濁ふ";

                            break;

                        case "べ":

                            s4 = s4 + "濁へ";

                            break;

                        case "ぼ":

                            s4 = s4 + "濁ほ";

                            break;

 

                        case "ゔ":

                            s4 = s4 + "濁う";

                            break;

 

                        case "『":

                            s4 = s4 + "外継";

                            break;

 

                        case "』":

                            s4 = s4 + "継外";

                            break;

 

                        case "《":

                            s4 = s4 + "外= ";

                            break;

                        case "》":

                            s4 = s4 + "=外";

                            break;

                        #endregion;

 

                        #region 数字

                        //数字

                        case "1":

                            if (!suji)

                            {

                                suji = true;

                                s4 = s4 + "数1";

                            }

                            else

                            {

                                s4 = s4 + "1";

                            }

                            break;

                        case "2":

                            if (!suji)

                            {

                                suji = true;

                                s4 = s4 + "数2";

                            }

                            else

                            {

                                s4 = s4 + "2";

                            }

                            break;

                        case "3":

                            if (!suji)

                            {

                                suji = true;

                                s4 = s4 + "数3";

                            }

                            else

                            {

                                s4 = s4 + "3";

                            }

                            break;

                        case "4":

                            if (!suji)

                            {

                                suji = true;

                                s4 = s4 + "数4";

                            }

                            else

                            {

                                s4 = s4 + "4";

                            }

                            break;

                        case "5":

                            if (!suji)

                            {

                                suji = true;

                                s4 = s4 + "数5";

                            }

                            else

                            {

                                s4 = s4 + "5";

                            }

                            break;

                        case "6":

                            if (!suji)

                            {

                                suji = true;

                                s4 = s4 + "数6";

                            }

                            else

                            {

                                s4 = s4 + "6";

                            }

                            break;

                        case "7":

                            if (!suji)

                            {

                                suji = true;

                                s4 = s4 + "数7";

                            }

                            else

                            {

                                s4 = s4 + "7";

                            }

                            break;

                        case "8":

                            if (!suji)

                            {

                                suji = true;

                                s4 = s4 + "数8";

                            }

                            else

                            {

                                s4 = s4 + "8";

                            }

                            break;

                        case "9":

                            if (!suji)

                            {

                                suji = true;

                                s4 = s4 + "数9";

                            }

                            else

                            {

                                s4 = s4 + "9";

                            }

                            break;

                        case "0":

                            if (!suji)

                            {

                                suji = true;

                                s4 = s4 + "数0";

                            }

                            else

                            {

                                s4 = s4 + "0";

                            }

                            break;

                        case ".":

                            if (!suji)

                            {

                                suji = true;

                                s4 = s4 + "数.";

                            }

                            else

                            {

                                s4 = s4 + ".";

                            }

                            break;

                        case "-":

                            if (!suji)

                            {

                                suji = true;

                                s4 = s4 + "数継";

                            }

                            else

                            {

                                s4 = s4 + "継";

                            }

                            break;

                        #endregion;

 

                        #region 英字

                        //英字

                        case "A":

                            if (nijuoomji)

                            {

                                s4 = s4 + "A";

                            }

                            else

                            {

                                s4 = s4 + "大A";

                            }

                            break;

                        case "a":

                            if (nijuoomji)

                            {

                                s4 = s4 + "A";

                            }

                            else

                            {

                                nijuoomji = false;

                                s4 = s4 + "a";

                            }

                            break;

                        case "B":

                            if (nijuoomji)

                            {

                                s4 = s4 + "B";

                            }

                            else

                            {

                                s4 = s4 + "大B";

                            }

                            break;

                        case "b":

                            if (nijuoomji)

                            {

                                s4 = s4 + "B";

                            }

                            else

                            {

                                nijuoomji = false;

                                s4 = s4 + "b";

                            }

                            break;

 

                        case "C":

                            if (nijuoomji)

                            {

                                s4 = s4 + "C";

                            }

                            else

                            {

                                s4 = s4 + "大C";

                            }

                            break;

                        case "c":

                            if (nijuoomji)

                            {

                                s4 = s4 + "C";

                            }

                            else

                            {

                                nijuoomji = false;

                                s4 = s4 + "c";

                            }

                            break;

                        case "D":

                            if (nijuoomji)

                            {

                                s4 = s4 + "D";

                            }

                            else

                            {

                                s4 = s4 + "大D";

                            }

                            break;

                        case "d":

                            if (nijuoomji)

                            {

                                s4 = s4 + "D";

                            }

                            else

                            {

                                nijuoomji = false;

                                s4 = s4 + "d";

                            }

                            break;

                        case "E":

                            if (nijuoomji)

                            {

                                s4 = s4 + "E";

                            }

                            else

                            {

                                s4 = s4 + "大E";

                            }

                            break;

                        case "e":

                            if (nijuoomji)

                            {

                                s4 = s4 + "E";

                            }

                            else

                            {

                                nijuoomji = false;

                                s4 = s4 + "e";

                            }

                            break;

                        case "F":

                            if (nijuoomji)

                            {

                                s4 = s4 + "F";

                            }

                            else

                            {

                                s4 = s4 + "大F";

                            }

                            break;

                        case "f":

                            if (nijuoomji)

                            {

                                s4 = s4 + "F";

                            }

                            else

                            {

                                nijuoomji = false;

                                s4 = s4 + "f";

                            }

                            break;

                        case "G":

                            if (nijuoomji)

                            {

                                s4 = s4 + "G";

                            }

                            else

                            {

                                s4 = s4 + "大G";

                            }

                            break;

                        case "g":

                            if (nijuoomji)

                            {

                                s4 = s4 + "G";

                            }

                            else

                            {

                                nijuoomji = false;

                                s4 = s4 + "g";

                            }

                            break;

                        case "H":

                            if (nijuoomji)

                            {

                                s4 = s4 + "H";

                            }

                            else

                            {

                                s4 = s4 + "大H";

                            }

                            break;

                        case "h":

                            if (nijuoomji)

                            {

                                s4 = s4 + "H";

                            }

                            else

                            {

                                nijuoomji = false;

                                s4 = s4 + "h";

                            }

                            break;

                        case "I":

                            if (nijuoomji)

                            {

                                s4 = s4 + "I";

                            }

                            else

                            {

                                s4 = s4 + "大I";

                            }

                            break;

                        case "i":

                            if (nijuoomji)

                            {

                                s4 = s4 + "I";

                            }

                            else

                            {

                                nijuoomji = false;

                                s4 = s4 + "i";

                            }

                            break;

                        case "J":

                            if (nijuoomji)

                            {

                                s4 = s4 + "J";

                            }

                            else

                            {

                                s4 = s4 + "大J";

                            }

                            break;

                        case "j":

                            if (nijuoomji)

                            {

                                s4 = s4 + "J";

                            }

                            else

                            {

                                nijuoomji = false;

                                s4 = s4 + "j";

                            }

                            break;

                        case "K":

                            if (nijuoomji)

                            {

                                s4 = s4 + "K";

                            }

                            else

                            {

                                s4 = s4 + "大K";

                            }

                            break;

                        case "k":

                            if (nijuoomji)

                            {

                                s4 = s4 + "K";

                            }

                            else

                            {

                                nijuoomji = false;

                                s4 = s4 + "k";

                            }

                            break;

                        case "L":

                            if (nijuoomji)

                            {

                                s4 = s4 + "L";

                            }

                            else

                            {

                                s4 = s4 + "大L";

                            }

                            break;

                        case "l":

                            if (nijuoomji)

                            {

                                s4 = s4 + "L";

                            }

                            else

                            {

                                nijuoomji = false;

                                s4 = s4 + "l";

                            }

                            break;

                        case "M":

                            if (nijuoomji)

                            {

                                s4 = s4 + "M";

                            }

                            else

                            {

                                s4 = s4 + "大M";

                            }

                            break;

                        case "m":

                            if (nijuoomji)

                            {

                                s4 = s4 + "M";

                            }

                            else

                            {

                                nijuoomji = false;

                                s4 = s4 + "m";

                            }

                            break;

                        case "N":

                            if (nijuoomji)

                            {

                                s4 = s4 + "N";

                            }

                            else

                            {

                                s4 = s4 + "大N";

                            }

                            break;

                        case "n":

                            if (nijuoomji)

                            {

                                s4 = s4 + "N";

                            }

                            else

                            {

                                nijuoomji = false;

                                s4 = s4 + "n";

                            }

                            break;

                        case "O":

                            if (nijuoomji)

                            {

                                s4 = s4 + "O";

                            }

                            else

                            {

                                s4 = s4 + "大O";

                            }

                            break;

                        case "o":

                            if (nijuoomji)

                            {

                                s4 = s4 + "O";

                            }

                            else

                            {

                                nijuoomji = false;

                                s4 = s4 + "o";

                            }

                            break;

                        case "P":

                            if (nijuoomji)

                            {

                                s4 = s4 + "P";

                            }

                            else

                            {

                                s4 = s4 + "大P";

                            }

                            break;

                        case "p":

                            if (nijuoomji)

                            {

                                s4 = s4 + "P";

                            }

                            else

                            {

                                nijuoomji = false;

                                s4 = s4 + "p";

                            }

                            break;

                        case "Q":

                            if (nijuoomji)

                            {

                                s4 = s4 + "Q";

                            }

                            else

                            {

                                s4 = s4 + "大Q";

                            }

                            break;

                        case "q":

                            if (nijuoomji)

                            {

                                s4 = s4 + "Q";

                            }

                            else

                            {

                                nijuoomji = false;

                                s4 = s4 + "q";

                            }

                            break;

                        case "R":

                            if (nijuoomji)

                            {

                                s4 = s4 + "R";

                            }

                            else

                            {

                                s4 = s4 + "大R";

                            }

                            break;

                        case "r":

                            if (nijuoomji)

                            {

                                s4 = s4 + "R";

                            }

                            else

                            {

                                nijuoomji = false;

                                s4 = s4 + "r";

                            }

                            break;

                        case "S":

                            if (nijuoomji)

                            {

                                s4 = s4 + "S";

                            }

                            else

                            {

                                s4 = s4 + "大S";

                            }

                            break;

                        case "s":

                            if (nijuoomji)

                            {

                                s4 = s4 + "S";

                            }

                            else

                            {

                                nijuoomji = false;

                                s4 = s4 + "s";

                            }

                            break;

                        case "T":

                            if (nijuoomji)

                            {

                                s4 = s4 + "T";

                            }

                            else

                            {

                                s4 = s4 + "大T";

                            }

                            break;

                        case "t":

                            if (nijuoomji)

                            {

                                s4 = s4 + "T";

                            }

                            else

                            {

                                nijuoomji = false;

                                s4 = s4 + "t";

                            }

                            break;

                        case "U":

                            if (nijuoomji)

                            {

                                s4 = s4 + "U";

                            }

                            else

                            {

                                s4 = s4 + "大U";

                            }

                            break;

                        case "u":

                            if (nijuoomji)

                            {

                                s4 = s4 + "U";

                            }

                            else

                            {

                                nijuoomji = false;

                                s4 = s4 + "u";

                            }

                            break;

                        case "V":

                            if (nijuoomji)

                            {

                                s4 = s4 + "V";

                            }

                            else

                            {

                                s4 = s4 + "大V";

                            }

                            break;

                        case "v":

                            if (nijuoomji)

                            {

                                s4 = s4 + "V";

                            }

                            else

                            {

                                nijuoomji = false;

                                s4 = s4 + "v";

                            }

                            break;

                        case "W":

                            if (nijuoomji)

                            {

                                s4 = s4 + "W";

                            }

                            else

                            {

                                s4 = s4 + "大W";

                            }

                            break;

                        case "w":

                            if (nijuoomji)

                            {

                                s4 = s4 + "W";

                            }

                            else

                            {

                                nijuoomji = false;

                                s4 = s4 + "w";

                            }

                            break;

                        case "X":

                            if (nijuoomji)

                            {

                                s4 = s4 + "X";

                            }

                            else

                            {

                                s4 = s4 + "大X";

                            }

                            break;

                        case "x":

                            if (nijuoomji)

                            {

                                s4 = s4 + "X";

                            }

                            else

                            {

                                nijuoomji = false;

                                s4 = s4 + "x";

                            }

                            break;

                        case "Y":

                            if (nijuoomji)

                            {

                                s4 = s4 + "Y";

                            }

                            else

                            {

                                s4 = s4 + "大Y";

                            }

                            break;

                        case "y":

                            if (nijuoomji)

                            {

                                s4 = s4 + "Y";

                            }

                            else

                            {

                                nijuoomji = false;

                                s4 = s4 + "y";

                            }

                            break;

                        case "Z":

                            if (nijuoomji)

                            {

                                s4 = s4 + "Z";

                            }

                            else

                            {

                                s4 = s4 + "大Z";

                            }

                            break;

                        case "z":

                            if (nijuoomji)

                            {

                                s4 = s4 + "Z";

                            }

                            else

                            {

                                nijuoomji = false;

                                s4 = s4 + "z";

                            }

                            break;

                        //case ".":

                        //    MessageBox.Show("*****");

                        //    nijuoomji = false;

                        //    s4 = s4 + ".";

                        //    break;

 

                        case "/":

                            nijuoomji = false;

                            s4 = s4 + "や";

                            break;

                        #endregion;

 

                        #region その他記号など

                        //その他記号など

                        case "入":

                            if (!sonyu)

                            {

                                sonyu = true;

                                s4 = s4 + "==";

                            }

                            else

                            {

                                sonyu = false;

                                s4 = s4 + "==";

                            }

                            break;

 

                        case "和":

                            s4 = s4 + " ";

                            break;

 

                        case "英":

                            s4 = s4 + "外";

                            break;

                        default:

                            if (!s5.Contains("ゃ") & !s5.Contains("ゅ") & !s5.Contains("ょ") &

                                !s5.Contains("ぁ") & !s5.Contains("ぃ") & !s5.Contains("ぅ") &

                                !s5.Contains("ぇ") & !s5.Contains("ぉ"))

                            {

                                s4 = s4 + s2;

                            }

                            break;

                    }

                }

            }

 

            s4 = s4 + s1.Substring(s1.Length-2);

            textBoxChukanData.Text = s4.TrimEnd();

        }

        #endregion;

        #endregion;

 

        #region 中間データ変換全体の制御

        //中間データ変換全体の制御

        private void CVT_Tenji()

        {

            TenjiFont();

            CVT_Chukan();

            textBoxTenji.Text = textBoxChukanData.Text;

 

            Bitmap bmp = new Bitmap(textBoxTenji.Width, textBoxTenji.Height);

            textBoxTenji.DrawToBitmap(bmp, new Rectangle(0, 0, textBoxTenji.Width, textBoxTenji.Height));

            bmp.RotateFlip(RotateFlipType.RotateNoneFlipX);

            pictureBoxTenji2.Image = bmp;

        }

        #endregion