• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:画像転送(ワールド変換行列)について)

画像転送(ワールド変換行列)について

このQ&Aのポイント
  • 画像をスムーズに左から右へ移動させる方法
  • 画像の移動時に残像が残らないよう対策する方法
  • 画像の移動でちらつきを抑える方法

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

  • ベストアンサー
  • redfox63
  • ベストアンサー率71% (1325/1856)
回答No.4

単純にFormのバックカラーでいのでしたらBlackイメージの作成を g1.FillRectangle( new SolidBrush( Me.BackColor ), _   new Rectangle( 0, 0, img.Width, img.Height ) ) といった具合にして見ましょう

yamayosi_5
質問者

お礼

何度も有難う御座いました! 無事にイメージ通りのものが完成しました。 本当に感謝いたします。

その他の回答 (3)

  • redfox63
  • ベストアンサー率71% (1325/1856)
回答No.3

移動した分がそのまま残るのであれば 消去用のイメージの作成がうまくいってないのではと考えられます ピクチャーボックスの BackColorがColor.Transparentなのでしょうか 透過色に設定されていると上書きしても残像が残ってしまいます ピクチャーボックスのコンテナから背景を取得して上書きといった手順が必要になりそうですよ

yamayosi_5
質問者

お礼

何度も有難う御座いました! 無事にイメージ通りのものが完成しました。 本当に感謝いたします。

  • redfox63
  • ベストアンサー率71% (1325/1856)
回答No.2

当方が検証したのは VB.NET2005ですが このあたりは同じだったと思います 単にフォームにピクチャーボックスを貼り付けて 適当な画像を使って お示しのコード + 改良部分で検証しました どの程度残像が残るのでしょう 移動した分がそのまま残るのでしょうか?

yamayosi_5
質問者

補足

はい、仰る通り移動した分がそのまま残ります。 Refreshをするとちらつきは出ますが、残像は消えます。

  • redfox63
  • ベストアンサー率71% (1325/1856)
回答No.1

以前描画した領域を消去してから新しいイメージを描画しましょう dim blank as Image = new Bitmap(img.Width, img.Height) Dim g1 as Graphics = Graphics.FromImage( blank ) g1.FillRectangle( new SolidBrush( PictureBox1.BackColor ), _   new Rectangle( 0, 0, img.Width, img.Height ) ) g1.Dispose() といった準備をしておきます 描画する際に For i = 1 To 10   // 描画領域を消去   g.DrawImage(blank, New Rectangle(0, 0, img.Width, img.Height))   g.TranslateTransform(+10, 0)   g.DrawImage(img, New Rectangle(0, 0, img.Width, img.Height))   // 画面の更新待ち   Threading.Thread.Sleep( 200 ); Next i といった具合にします これでもちらつきがきになるのであれば『ダブルバッファ』など散らすつきを抑える技法を使いましょう

yamayosi_5
質問者

お礼

素早く丁寧な回答有難う御座います。 ただ、これをそのまま使用してみたところ やはり残像の方が残ってしまいます。 何が原因なんでしょうね……。 補足ですが、環境はVisual Basic 2008です。

関連するQ&A

専門家に質問してみよう