C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[4]: vbで画像をランダムで表示


(過去ログ 130 を表示中)

[トピック内 8 記事 (1 - 8 表示)]  << 0 >>

■76901 / inTopicNo.1)  vbで画像をランダムで表示
  
□投稿者/ ピル (1回)-(2015/08/27(Thu) 15:18:36)

分類:[VB.NET/VB2005 以降] 

vbで画像をランダムで表示するプログラムを作ろうと思うのですが
どうやったらできるでしょうか?

引用返信 編集キー/
■76903 / inTopicNo.2)  Re[1]: vbで画像をランダムで表示
□投稿者/ ぴち (3回)-(2015/08/27(Thu) 15:29:37)
> どうやったらできるでしょうか?
仕様を考え、キーボードに向かってソースを打ち込めばできる。

って回答じゃ納得しないんだろうなぁ〜


・ローカルマシーンの特定のフォルダにある画像を表示する
・リソースを表示する
・ネット上に転がってる画像を表示する

やりたいことによってソースも替わって来る。
もうちょっと情報提供しなきゃ誰も回答してくれないと思うよ。


引用返信 編集キー/
■76904 / inTopicNo.3)  Re[2]: vbで画像をランダムで表示
□投稿者/ ピル (3回)-(2015/08/27(Thu) 15:42:29)
ご意見ありがとうございます
まだ具体的にどうしたいか考えていなかったので
申し訳ございません。
仮に\cg1とフォルダがあるとしてその中の
画像を5分おきに表示するプログラムを
考えてるのですがどうしたらいいのでしょうか?

引用返信 編集キー/
■76906 / inTopicNo.4)  Re[3]: vbで画像をランダムで表示
□投稿者/ 774RR (302回)-(2015/08/27(Thu) 15:46:53)
1. \cg1 にあるファイル一覧を取得しておく
2. 乱数でそのうちの1つを選ぶ
3. 表示する
4. タイマーを使って5分待つ
5. 2へ戻る

引用返信 編集キー/
■76908 / inTopicNo.5)  Re[4]: vbで画像をランダムで表示
□投稿者/ ぴち (4回)-(2015/08/27(Thu) 15:59:00)
ざっくりこんな感じ


Public Class Form1
    Private Sub Form1_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load

        Call Timer1_Tick(sender, e)

        Timer1.Interval = 300000  '5分
        Timer1.Enabled = True

    End Sub

    Private Sub Timer1_Tick(sender As System.Object, e As System.EventArgs) Handles Timer1.Tick
        Dim bmp As Bitmap
        Dim path As String = "c:\\cg1"
        Dim r As New System.Random()
        Dim c As Integer

        Dim files As String() = System.IO.Directory.GetFiles(path, "*.bmp", System.IO.SearchOption.AllDirectories)

        c = r.Next(files.Count)

        With PictureBox1
            If Not (.Image Is Nothing) Then
                .Image.Dispose()
                .Image = Nothing
            End If

            Try
                bmp = DirectCast(System.Drawing.Image.FromFile(files(c)), System.Drawing.Bitmap)
            Catch ex As Exception
                bmp = Nothing
                MsgBox("その画像は何やら表示できないみたいです。")
            End Try

            .Image = bmp

            .SizeMode = System.Windows.Forms.PictureBoxSizeMode.AutoSize
            .Visible = True
            Application.DoEvents()
            .Refresh()

        End With

    End Sub

End Class

引用返信 編集キー/
■76910 / inTopicNo.6)  Re[5]: vbで画像をランダムで表示
□投稿者/ ぴち (5回)-(2015/08/27(Thu) 16:08:23)
考えることを放棄した人に替わり、考えて作ってあげる係の人じゃないので、
本当にまずは自分で考えよう。で、考えても判らない、1人じゃ解決できない
部分を聞いてくれれば協力は惜しみません。

まぁ考えて作っちゃったんだけど・・・。で、上記のソース
\cg1の中身が変わらないのであれば毎回filesの中身を取得する必要は無いし、
例示したソースはビットマップしか対象にしていないので、あとは適当に
改造してみてください。

引用返信 編集キー/
■76911 / inTopicNo.7)  Re[3]: vbで画像をランダムで表示
□投稿者/ 魔界の仮面弁士 (470回)-(2015/08/27(Thu) 16:28:21)
No76904 (ピル さん) に返信
> 画像を5分おきに表示するプログラムを


Public Class Form1
 Private files As IEnumerable(Of String)
 Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
  'My Picture フォルダのパスを取得
  Dim folder As String = My.Computer.FileSystem.SpecialDirectories.MyPictures

  'その中にある画像ファイルを列挙
  files = My.Computer.FileSystem.GetFiles(folder,
    FileIO.SearchOption.SearchAllSubDirectories,
    "*.jpg", "*.bmp", "*.gif")

  'Timer1.Interval = 500 '0.5秒
  Timer1.Interval = 300000 '5分
  Timer1.Start()
  ReloadImage()
 End Sub

 Private Sub Timer1_Tick(sender As Object, e As EventArgs) Handles Timer1.Tick
  ReloadImage()
 End Sub

 Private Sub ReloadImage()
  Dim r As New Random()
  Dim fileCount As Integer = files.Count()
  If fileCount = 0 Then
   PictureBox1.Image = Nothing
  Else
   PictureBox1.LoadAsync(files.Skip(r.Next(fileCount - 1)).First())
  End If
 End Sub

End Class
引用返信 編集キー/
■76932 / inTopicNo.8)  Re[4]: vbで画像をランダムで表示
□投稿者/ ピル (5回)-(2015/08/29(Sat) 22:11:26)
ありがとうございます
解決済み
引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -