none
VisualBasic2010 マップエディタ マップの高速描画について RRS feed

  • 質問

  • 現在VisualBasic2010を用いてマップエディタを作成しています。

    これは「マップチップ選択→マップ作成→マップ初期化→クリックで配列に選択チップ番号保存→PictureBox1をリフレッシュ(配列から1つずつチップ番号を読み込み、表示)」といった処理を行っています

    ですが PictureBox1をリフレッシュした時に、分割して表示するのを32*32回行っているため とても動作が重く

    反映までに2秒ほどかかってしまいます

    これを瞬時に反映させる方法はあるのでしょうか? というかやはり、DrawImageで1個ずつ描画するのには無理があるのでしょうか?

    できればやり方を詳しく教えていただきたいです。

    コードは以下リンク(PasteBin)に貼り付けてあるため お手数ですが各自ご観覧ください

    http://pastebin.com/1qjX8Sc4


    • 編集済み YGHTdnt 2014年7月24日 9:54 誤字
    • 移動 星 睦美 2014年7月25日 0:32 Visual Basic に関する内容
    2014年7月24日 9:47

回答

  • 質問者さんはマップエディタを作成しているのかもしれませんが、フォーラムの場では関係ありません。要するにPictureBoxの高速化、具体的にはPictureBox1_Paintメソッドの高速化が質問内容でしょうか? …と絞り込めていればpastbinを使わなくてもよかったような。
    というように、質問したいことを書くのではなく、答えて欲しいことを尋ねるようにしてください。
    加えてタイトルにVisual Basicと入れるくらいならVisual Basicフォーラムを選択すべきでした。(オペレーターさん移動してください)

    さてPictureBox1_Paintですが、Chip_Layer()メソッドがどのような処理を行っているかわかりませんがそれ以外の部分ですと、PictureBox.PaintのタイミングでImage.FromFile()を使って毎回ディスクから読み込む必要はあるのでしょうか? ファイルの内容が変化しないのであれば事前の読み込んでおけばよいのではないでしょうか。

    • 回答としてマーク YGHTdnt 2014年7月25日 1:13
    2014年7月24日 22:28

すべての返信

  • 質問者さんはマップエディタを作成しているのかもしれませんが、フォーラムの場では関係ありません。要するにPictureBoxの高速化、具体的にはPictureBox1_Paintメソッドの高速化が質問内容でしょうか? …と絞り込めていればpastbinを使わなくてもよかったような。
    というように、質問したいことを書くのではなく、答えて欲しいことを尋ねるようにしてください。
    加えてタイトルにVisual Basicと入れるくらいならVisual Basicフォーラムを選択すべきでした。(オペレーターさん移動してください)

    さてPictureBox1_Paintですが、Chip_Layer()メソッドがどのような処理を行っているかわかりませんがそれ以外の部分ですと、PictureBox.PaintのタイミングでImage.FromFile()を使って毎回ディスクから読み込む必要はあるのでしょうか? ファイルの内容が変化しないのであれば事前の読み込んでおけばよいのではないでしょうか。

    • 回答としてマーク YGHTdnt 2014年7月25日 1:13
    2014年7月24日 22:28
  • フォーラム オペレーターの星 睦美です。
    佐祐理 さん、アドバイスいただきありがとうございます。私のほうでスレッドを移動させていただきました。

    Yami0625 さん、フォーラム ユーザーからの回答が解決のヒントになりましたら、投稿者からの[回答としてマーク] をお願いします。


    フォーラム オペレーター 星 睦美 - MSDN Community Support

    2014年7月25日 0:38
  • ご回答有難うございます

    確かに 画像の読み込みを毎回読み込む必要は無かったですね・・・

    無事、処理の高速化に成功しました。

    有難うございます

    それと、この度は不適切なタイトルの指定、フォーラム選択ミスをしてしまい誠に申し訳ありませんでした

    次回投稿時はもう少し気をつけて投稿しようと思います

    2014年7月25日 1:15