C# windows api経由でファイルからサムネイルを取得する
2023-08-04 20:33:28
質問
Windows エクスプローラーには、ファイルのサムネイルを表示する機能があります。これらのサムネイルは、コアおよびサード パーティのシェル拡張機能によって提供されます。
Windows にサムネイルを提供するためにシェルを拡張する方法を知っています。
私がしたいことは、C#を使用してシェル経由でシステム上の任意のファイルからサムネイル画像を取得することです。これは可能ですか?
基本的に、私はカスタム ファイル ブラウザを書いていて、サムネイルを表示したいのですが、独自のサムネイルを作成するために地球上のすべてのファイルを解析することは不可能です。
明確化。 多くの回答は、Web ページのサムネイルや画像の拡大縮小が中心になっているようです。しかし、それは私が求めているものではありません。私が欲しいのは、これらのファイル タイプ (DOC、PDF、.3DM、.DWG など) のサムネイル表示を Windows に要求することです。Windows がすでに方法を知っているので、自分で解析、レンダリング、およびサムネイル作成はしたくありません。
私が回答として投稿したコードは実際に動作します...多分それは少し簡素化され、きれいにすることができます。
どのように解決するのですか?
それは数ヶ月前のものですが、それは私のために仕事を成し遂げました (Win7 で、MPEG-4 ファイルのサムネイルを抽出します)。
- ソースは以下のとおりです。 https://github.com/dbarros/WindowsAPICodePack
- ナゲット: https://www.nuget.org/packages/WindowsAPICodePack-Shell
コードです。
ShellFile shellFile = ShellFile.FromFilePath(pathToYourFile);
Bitmap shellThumb = shellFile.Thumbnail.ExtraLargeBitmap;
お役に立てれば幸いです。
関連
-
[解決済み】「未割り当てのローカル変数を使用」とはどういう意味ですか?
-
[解決済み】Ajax処理で「無効なJSONプリミティブ」と表示される件
-
[解決済み】「namespace x already contains a definition for x」エラーの修正方法は?VS2010にコンバートした後に発生しました。
-
[解決済み】バックスラッシュを含むパス文字列のエスケープシーケンスが認識されない件
-
[解決済み】C#のequal to演算子でtextとvarcharのデータ型は互換性がない
-
[解決済み】画像のペイントにTextureBrushを使用する方法
-
[解決済み】プロセスが実行されているかどうかを知るには?
-
[解決済み] リフレクションを使用して文字列からプロパティ値を取得する
-
[解決済み] C#でenumからint値を取得する
-
[解決済み] アセンブリファイルのバージョンを取得する方法
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】GDI+、JPEG画像をMemoryStreamに変換する際にジェネリックエラーが発生しました。
-
[解決済み] [Entity Framework 4.1でエンティティに関連オブジェクトを追加する際に、エンティティオブジェクトをIEntityChangeTracker.の複数のインスタンスから参照できない。
-
[解決済み】"The ConnectionString property has not been initialized "を修正する方法
-
[解決済み】ソケットのアドレス(プロトコル/ネットワークアドレス/ポート)は、通常1つしか使用できない?
-
[解決済み】「入力文字列が正しい形式ではありませんでした」エラーの解決方法は?[重複しています]。
-
[解決済み】Sequence contains no matching element(シーケンスにマッチする要素がない
-
[解決済み】C# - パスに不正な文字がある場合
-
[解決済み】OnCollisionEnter2Dが実行されない?
-
[解決済み】データが存在しないのに読み込もうとする試みが無効である
-
[解決済み] web.configでmaxJsonLengthの長さを無制限に設定することは可能ですか?