文字描写プログラムの作成方法

このQ&Aのポイント
  • C#で開発をしており、文字列を画像にするプログラムを作成しています。
  • 幅に制限があるため、一度画像を保存しつつ、切れない範囲まで文字列を処理します。
  • 現在の方法は一つずつ文字を切り取って保存しており、もっと簡単な方法があれば知りたいです。
回答を見る
  • ベストアンサー

文字描写(C# or VB)

C#で開発をしております。 テキストボックスなどで入力した文字列を画像にするというプログラムなのですが 幅に制限があり、その幅を超えると文字が切れて表示されてしまうため 切れない所まで一旦画像を保存し、次はその箇所から開始する これを終端まで繰り返すというプログラムをつくってます。 (1)入力した文字列の長さ取得 (2)繰り返し文で0から(1)で取得した長さまで以下の作業を繰り返す SubStringで文字を切り取り、その幅を取得 取得した幅が指定した幅Xを超える場合その1つ手前までの文字画像を保存し、その箇所までの文字列を切り取る これを繰り返す これでそれらしきものはできたのですが もっと簡単な方法はないでしょうか?

質問者が選んだベストアンサー

  • ベストアンサー
  • bin-chan
  • ベストアンサー率33% (1403/4213)
回答No.1

「入力された文字列全部を画像変換して、必要な幅で区切る」のはダメなんですか?

dodoemon
質問者

補足

なるほど、そういうのもありますね。検討してみます。 ありがとうございました

関連するQ&A

  • C# or VB 文字を描く

    文字を描く処理の中で例えば長い文字列を画像にする場合に複数の画像にわけて保存したい場合 どのようにすればいいのでしょうか? 幅3000あるBitmapを0~1700と、1700~3000に分けたいです。 BitmapのClone使ったり、色々してみたのですがうまくいかないです。 根本的に何か考え方が間違ってるような気がします。 教えて下さい

  • ブラウザなどで入力された文字列を取得する方法

    ブラウザやワードのようなアプリケーションで入力された文字列(特に漢字)をプログラムで取得する方法を探しています。 プログラム内で用意したテキストボックスに入力された文字列を取得するサンプルコードはそこかしこで見かけるのですが、 他のアプリケーションで入力した文字列を取得するような方法がどうしてもわかりません 文字列を取得するImeAPIの中のImmGetCompositionStringの存在や アクティブウインドウのハンドルを取得するGetActiveWindowの存在は知っているのですが この2つを組み合わせて出来るものなのでしょうか? ほかにも「フック」を使うという方法も考えましたがIMEで入力が確定した文字列を 「フック」してくることは可能なのでしょうか? 「これなら取得できる」といった良い方法があれば教えていただきたいです。 長文になりましたがなにとぞよろしくお願いいたします。 開発環境:windows7 64bit 開発言語:できればC言語 ↓テキストボックスに入力された文字列を取得するサンプルコード↓ http://shinshu.fm/MHz/95.83/archives/0000025041.html#comments http://www.atmarkit.co.jp/fdotnet/dotnettips/875imeyomi/imeyomi.html ↓IME APIの関数リスト↓ http://msdn.microsoft.com/ja-jp/library/cc422019.aspx

  • GetTextExtentの動きが違う

    VC++2008でmfcによるグラフィックス系のアプリを開発しています。 ビューに文字列を描画する前にその幅を取得したく、 文字列入力用のエディットボックスに文字列を入力中にメモリデバイスコンテキストを作成し、 GetTextExtent関数を用いて取得しています。 しかし、Releaseビルドして実行したところ、Debug版で取得したサイズと違うため困っています。 例えばDebug版で1文字の幅が18、2文字で35となっているものが、 Release版だと28, 57になっていました。 幅を同じにするための解決案はございますでしょうか。

  • C言語で全角文字を扱いたいのですが、

    C言語で全角文字を扱いたいのですが、 全角文字列を入力して特定の箇所の文字(例えば3文字目)を抜き出して、表示するという感じのプログラムをしたいのですが、うまくいきません。 半角文字ならば、配列を使ってできるのですが・・・・・

  • 文字列の操作

    こんにちは。 以下のような、文字列があるとします。 NUMBER1(ヌル\0)からNUMBER1000(ヌル\0)までの文字列があるとします。 NUMBERは付属で、ほしい文字列が1から1000までNUMBERの次にある場合、1から1000までを取得する方法として、 Buf[100] int x=0; while(Buf[x]!='\0') //ナル文字までの長さを取得 x++; memmove(&Buf[0],Buf[x-1],4); //NUMBER1の場合、長さは7。しかしほしい文字列は第6要素なのでx-1。 しかし・・・これを行うと、 NUMBER10:長さ8 NUMBER100:長さ9 ・ ・ となり、二桁以上の場合は、memmove(&Buf[0],Buf[x-2],4)と、 第2引数を手動で可変しなければなりません。 そこで、NUMBER\01\0 NUMBER\01000\0というように、 NUMBERの次にヌル文字(あってますでしょうか?)\0を挿入し、次の要素に1から1000まで文字列を挿入。そして文字列終端が分かるように再度\0を挿入します。 しかしこのような場合、ヌルを2つ挿入することで、上記に示したプログラムでは、手前の\0までしか長さを取得しないので、うまくいきません。 そこで、文字列の区切りを示すための方法として、なにかありますでしょうか? 文字列は最後に、\0を挿入することで判別すると書いてありますが、 NUMBERVISUALC++\0というような文字列を配列に格納してある場合、 NUMBERとVISUALC++をどのように分けて取得するのでしょうか? それとも、第6要素から取得した文字列があると言う事が分かっている場合、第6要素からを指定するプログラムを作るということになるのでしょうか? よろしくお願いします。

  • VB6のプログラムを助けてください…

    いつもお世話になっております。 みなさんの知恵を貸してください。 よろしくお願いします。 現在、VB6のプログラムを作成しています。 以下の質問のプログラムを作成したいですが、どのようにプログラムを 作成していいのか分かりません。 ~質問内容~ ☆ 機能仕様     シリアル通信送信側のプログラムを作成する。 ☆ 通信仕様     ターミネータ:CR(キャリッジリターン) ☆送信側のプログラム  1-a.フォーム上に以下のコントロールを追加する    ・ポート番号設定用テキストボックス    ・ポーレート設定用コンボボックス    ・コマンド送信文字列入力用テキストボックス    ・「送信」ボタン  1-b.ボーレート設定用コンボボックスは、9600、19200、38400の     3パターンのリストで構成する。それ以下の値は入力させないようにする。  1-c.「切断」ボタンでポートを閉じる。  1-d.「送信」ボタンでコマンド文字列入力用テキストに入力された文字列をターミネータを付けて送信する。 分かる範囲でよろしければ、教えてください。 よろしくお願いします。

  • 文字列の取得

    string.subString()のなどで文字列を指定文字数分取得する場合に、バイト数指定で取得する方法ってありますか? 教えてください。

    • ベストアンサー
    • Java
  • テキストボックスに入力されている文字を監視するには

    Visual Sutudio 2008 Visual Basicで開発をしているのですが、あるテキストボックスを監視し、「https://」という文字列が来たら(入力されたら)ラベルに指定したメッセージを表示させたいのですがその場合、どのようなプログラムを打ち込めばよいのでしょうか。 ご存知の方、回答をよろしくお願いします。

  • ASP.NET(VB2005)■ WEBページのテキストボックスへ入力するとき、文字列を2桁入力するごとにハイフンを表示させたい

    ユーザーがWEBページのテキストボックスへ入力するとき、 文字列を2桁入力するごとにハイフンを表示させ、その状態を維持したまま 次に文字列を入力させることは可能でしょうか? 例. 1.ユーザーが「01」と入力 2.ハイフンが表示され、テキストボックスの表示は「01-」となる 3.続けてユーザーが「02」と入力 4.ハイフンが表示され、テキストボックスの表示は「01-02-」となる この流れで「01-02-AB-CD-E5-F5」とテキストボックスに表示される結果にしたいのです。 その後、テキストボックス文字列をデータベースに取得させます。 (因みに上記英数字はあくまでも例です) 開発環境は以下です。  ・WinXP SP2  ・Microsoft Visual Studio 2005(VB2005)  ・ブラウザはIE6のみを前提としています。   いつも質問ばかりで申し訳ございませんが、 もしご存知の方がいらっしゃいましたらどうぞご教授をお願いします。 ヒントになるようなことや参考になるWEBサイトでもアドバイス頂けると嬉しいです。 現場開発経験約3ヶ月ほどなのでわかりやすく説明下さるとなお有難いです。<(_ _)>

  • [C@3331394などの文字列

    Stringを表示させようとして[C@3331394などという文字列("[C@"以下の数字は毎回変わります。)が意図せず出てきてしまい、困っています。これはメモリ番地とかでしょうか?どなたかこのような文字列を見かけたことのあるかた、教えてください。 ちなみにezplusのエミュにてauアプリを開発しています。 http通信をしてサーバから文字列を取ってきて、それを表示する練習用のプログラムを書いてまして、その文字列が問題の文字列になってしまいます。 エミュでも、携帯実機でも出てきてしまいます。

    • ベストアンサー
    • Java