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

わんくま同盟

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

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

ツリー一括表示

ファイルのサムネイル画像表示を高速化 /マリ夫 (20/05/20(Wed) 09:22) #94794
Re[1]: ファイルのサムネイル画像表示を高速化 /KOZ (20/05/20(Wed) 11:07) #94796
Re[1]: ファイルのサムネイル画像表示を高速化 /furu (20/05/20(Wed) 11:00) #94795


親記事 / ▼[ 94796 ] ▼[ 94795 ]
■94794 / 親階層)  ファイルのサムネイル画像表示を高速化
□投稿者/ マリ夫 (10回)-(2020/05/20(Wed) 09:22:06)

分類:[.NET 全般] 

Visualstudio2019、VB.NETでFORMアプリケーションを作成しています。
サムネイル画像を持っているファイルからサムネイル画像を取り出して表示を行おうとしています。

サイトを参考に、以下のロジックで表示を行いました。

    Shared Function dummy() As Boolean
        Return False ' このメソッドの内容は何でもよい
    End Function

    Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
        Dim fs As FileStream = File.OpenRead("C:\TEST.svs")
        Dim orig As Image = Image.FromStream(fs, False, False)
        Dim thumbnail As Image = orig.GetThumbnailImage(120, 90, New Image.GetThumbnailImageAbort(AddressOf dummy), IntPtr.Zero)
        PictureBox1.Image = thumbnail
        orig.Dispose()
    End Sub

「C:\TEST.svs」は高解像度デジタル画像です。
ファイルの容量が25MB程度なのですが、サムネイル画像の表示に3秒ほどかかってしまいます。
エクスプローラー上でのサムネイル表示は1秒もかからないうちに表示がかかっているのですが、
もっと早く表示が行えるようにならないでしょうか。
教えていただけたらと思います。

[ □ Tree ] 返信 編集キー/

▲[ 94794 ] / 返信無し
■94796 / 1階層)  Re[1]: ファイルのサムネイル画像表示を高速化
□投稿者/ KOZ (118回)-(2020/05/20(Wed) 11:07:05)
No94794 (マリ夫 さん) に返信
> ファイルの容量が25MB程度なのですが、サムネイル画像の表示に3秒ほどかかってしまいます。
> エクスプローラー上でのサムネイル表示は1秒もかからないうちに表示がかかっているのですが、
> もっと早く表示が行えるようにならないでしょうか。

エクスプローラーはサムネイルをキャッシュしているので速いのではないでしょうか?

stackoverflow の以下のスレッドに、それを読む方法について案がいろいろ出ています。

「C# get thumbnail from file via windows api」
https://stackoverflow.com/questions/1439719/c-sharp-get-thumbnail-from-file-via-windows-api

簡単そうなのは WindowsAPICodePack を使う方法でしょうか。

キャッシュを自前で実装する手もありそうです。
[ 親 94794 / □ Tree ] 返信 編集キー/

▲[ 94794 ] / 返信無し
■94795 / 1階層)  Re[1]: ファイルのサムネイル画像表示を高速化
□投稿者/ furu (35回)-(2020/05/20(Wed) 11:00:11)
No94794 (マリ夫 さん) に返信
> エクスプローラー上でのサムネイル表示は1秒もかからないうちに表示がかかっているのですが、
> もっと早く表示が行えるようにならないでしょうか。
エクスプローラーと同じように、「Thumbs.db」を使用してはどうでしょうか?
[ 親 94794 / □ Tree ] 返信 編集キー/


管理者用

- Child Tree -