• 締切済み

【VB】String⇒Image

VB2008を使っているのですが、 String形のデータを、ObjectやImageなどの変数に変えることはできませんか? どうかよろしくお願いします。

みんなの回答

回答No.1

'何をしたいのか良く判らん。 '単純なキャストは多分無理。 'もし文字を書いた画像を保存したいなら以下のように。 'g.MeasureStringで「描く文字列の幅と高さが得られる」けど,面倒くさいので省略 '背景色Aquaで幅200px高さ50pxのBitmapの(10,10)の位置に '「文字を描くテスト」という文字列が描かれる。 'これをQ4282847-1.bmpとして保存してみた。 Class Q4282847A Public Shared Sub Main() Dim b As New System.Drawing.Bitmap(200, 50, System.Drawing.Imaging.PixelFormat.Format32bppArgb) Dim g As System.Drawing.Graphics = System.Drawing.Graphics.FromImage(b) g.Clear(System.Drawing.Color.Aqua) g.DrawString("文字列を描くテスト", System.Drawing.SystemFonts.DialogFont, System.Drawing.Brushes.Black, New System.Drawing.PointF(10, 10)) g.Save() b.Save("Q4282847A-1.bmp") g.Dispose() End Sub End Class

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • <VB>String→Object

    【VB】String⇒Image VB2008を使っているのですが、 String形のデータを、ObjectやImageなどの変数に変えることはできませんか? どうかよろしくお願いします。

  • Stringオブジェクトについて

    ある参考書では、Java のメモリー使用効率を改善するために、JVM は「String 定数プール」と呼ばれる特別なメモリー領域を確保していると書いてあり、String を作成する例として次の2つのパターンのコードについて説明している(この例では、定数プール内にほかのString は存在しないものとしている)。 ・パターン(1) String s = "abc"; // 1つのString オブジェクトと         // 1つの参照変数を作成する この例では、"abc" がプールに納められ、変数s がそれを参照する。 ・パターン(2) String s = new String("abc"); // 2つのString オブジェクトと                  // 1つの参照変数を作成する。 このコードでは、new キーワードを使ったので、新しいString オブジェクトが標準の(プールでない)メモリー上に作成され、変数s がそれを参照する。さらに、リテラル"abc" がプールに収められる。  そこで質問ですが、パターン(2) で、変数s と2つのオブジェクトはそれぞれ互いにどのような関係(メモリー上の関係も含めて)を持っているのか。 例えば変数s に対してプリント命令を出したときにJVM はこの2つのオブジェクトに対してどのような処理をするのか。 またこれらのオブジェクトのhashcode はどうなっているのでしょうか。どなたか教えてください。

  • VBのString型の配列をVCで受け取るには?

    VBでString型の配列として定義されている変数を VCのプログラムで受け取るにはどうすればよいのでしょうか? 試しにVBでString型の配列を作って DLLのC_TESTというファンクションを呼び出すという 処理を作ってみたのですが、コンパイルエラーになってしまいます。 なにかおかしいところありますか? そもそもVCにはString型ってないんですよね? プログラミング初心者ですので、変な言葉遣いに なってるかもしれませんが宜しくお願いします。 VB Declare Function C_TEST Lib "\test.dll" (ByVal data() As String) As Integer Dim A(1) As String dim rtn as Integer A(0)="あああ" A(1)="いいい" rtn= C_TEST(A) VCのプログラム int _stdcall C_TEST(LPSTR A[2] ){ AfxMessageBox( A[0] ); return(0); }

  • VB6.0のString関数に代わるVB2008のそれは?

    2009年1月27日にVB 2008Expressをダウンロードしたばかりの初学者です。 ですから、色々とわからないことだらけです。 で、今回は VB6.0のString関数に代わるVB2008のそれ。 ? String(12, "*") ************ Function Strings(ByVal C As Char, ByVal L As Integer) As String   Return Space(L).Replace(" ", C) End Function 少しは探しましたが、適当なのがなくてStrings関数を作成してしまいました。 2週間程度の初学者。 しかも、文字列関連のヘルプは昨日に初めて紐解いたばかり。 ですから、「適当なのがない」との判断はかなり怪しいものです。 そこで、「VB6.0のString関数に代わるVB2008のそれは、これですよ!」という回答をお願いします。

  • VB6.0 String型変数の文字数制限の250文字制約を外したい。

    VB6.0 String型変数の文字数制限の250文字制約を外したい。 VB6.0を使用しています。他人が作ったプログラムを再利用しています。 String型の変数に文字列が250文字しかどうしてもはいりません。 SQL文ですので、どうしても1000文字ほど入れたいのです。 どこかでString型の文字数制限を行っていると思うのですが、それを外したいのです。

  • VB6.0からVB2008移植時のStringの使用方法

    初歩的な質問だと思うのですが色々調べてもわからなかったのでご教授願います。 VB6.0からVB2008にプログラムを移植しているのですが以下の部分の修正方法がわかりません。 元(VB6.0)のソース Dim strStart, strEnd As String strStart = Format( data.Start(0), "0.0" ) strEnd = Format( data.End(0), "0.0" ) Label.Caption = strStart & "-" & strEnd 'data.Start/data.EndはSingleの配列 VB2008のソース Dim strStart As String Dim strEnd As String strStart = VB6.Format( data.Start(0), "0.0" ) strEnd = VB6.Format( data.End(0), "0.0" ) Label.Caption = strStart & "-" & strEnd 'VB6.Format~はソースをUpGradeしたときに自動で変換されました VB2008のstrStartに設定する時点でエラー('System.NullReferenceException' の初回例外が DataRcvSample.exe で発生しました。)となりstrStartがNothingなのがいけないところまではわかったのですが、Newを使ってどのように設定すればいいのかがわかりません。 VB自体まだ2週間位しか触っていない初心者なのですが、急ぎの仕事で勉強する時間がなく、どうすればいいのか困っています。 修正方法をご教授願います。

  • VB2005 文字型(String)について

    VB6 では文字型でも配列(Global Itemdata(0 To 100) As String)にできていたのですが、VB2005では、文字型は配列にできないのでしょうか?どなたか文字型を配列にする方法を知っていれば教えて頂きたいのですが。よろしくお願いします。

  • VB6.0 ファイルの一括読込み

    VB6.0で一行ずつ読み込む方法はわかるのですが、改行文字込で一括して全データを読込む方法はありませんでしょうか。 また、読み込んで変数に格納したStringのデータをLine Inputのように一行ずつ読み込んでいく方法はありませんでしょうか。

  • byte型をstring型として扱うには

    今日の質問/マイページに反映されないので、再度の質問です。 windows2000-sp4/vb6-sp5環境です。ユニコードのデータをvbで直接入出力し、vb内でstring型で扱いたいとおもっています。今のところ、vbの入出力では、自動的にsjis/unicode変換がされるので、binaryで受け取り、string型にするのかなと思っています。byte型で受け取り、APIの"MoveMemory"("RtlMoveMemory")でstring型にcopyするのかなとは思っているのですが、うまくいきません。経験不足そのものです。vbでのbyte型とstring型双方向のbinaryな変換の方法をお教えください。

  • VB.NET DLL 参照型String読込み

    VCで作成されたDLLの参照型Stringの読込みに困っております。 ご存じの方、お教え下さい。 VB6では次のような定義で、問題なく実行できます。 Private Declare Function VcToVb _ Lib "xxxxxxx.dll" Alias "VcToVb" _ (ByVal Input_DATA As String, ByVal Input_DATA_Cnt As Long, _ ByRef strData As String, ByRef Err_Cnt As Long, ByRef Err_DATA As String) As Long ------------------------------------ Out_Str , Err_Str の領域を確保 iRent = Check_VcToVb1(Input_STR, Input_Cnt, Out_STR, Err_Cnt, Err_STR) これを VB.NETで実施 Private Declare Ansi Function VcToVb _  Lib "xxxxxxx.dll" Alias "VcToVb" _ (ByVal Input_DATA As String, ByVal Input_DATA_Cnt As Int32, _ <MarshalAs(UnmanagedType.LPStr)> ByRef strData As StringBuilder, _ ByRef err_cnt As Int32, ByRef Err_DATA As StringBuilder) As Int32 (テストのため、strDataのみ) -------------------------------------- Out_Str , Err_Str の領域を確保 iRent = Check_VcToVb1(Input_STR, Input_Cnt, Out_STR, Err_Cnt, Err_STR) ******************************************* 調べた結果、VB.NETでは参照型は簡単にはいかないみたいで、StringBuilderを使用するとか、色々な方法を試しました。 結果は戻ってくるのですが、問題は DLLが文字列を返すときに、文字列内の項目区切文字として chr(0)を設定します。 このため、結果は Chr(0)の前までしか設定されません。 (VB.NETが Chr(0)を文字列の最後と判断する?) これを解決する方法はありますでしょうか。 現在は VB6で呼出す DLLを作成し、VB.NETはこれを使用していますが、 C#.Netならできるのでしょうか。 よろしくお願い申し上げます。