ymm4-plugin-document
|
シェルサムネイルの取得と操作を行うユーティリティクラス。 [詳解]
公開メンバ関数 | |
ShellThumbnail () | |
ShellThumbnailクラスの新しいインスタンスを初期化します。 |
静的公開メンバ関数 | |
static global::System.Windows.Media.Imaging.BitmapSource | GetThumbnailFromFactory (string path, int width, int height) |
IShellItemImageFactoryを使用してファイルのサムネイルを取得します。 | |
static unsafe global::System.Windows.Media.Imaging.BitmapSource | GetThumbnail (string path, int width, int height) |
ファイルのサムネイルを<c>IExtractImageを使用して取得します。 | |
static global::System.Windows.Media.Imaging.BitmapSource | GetThumbnailFromBitmapImage (string path) |
指定されたパスの画像ファイルをBitmapImageとして読み込み、サムネイルとして返します。 | |
static global::System.Windows.Media.Imaging.BitmapSource | CropOpaqueRect (global::System.Windows.Media.Imaging.BitmapSource thumb, bool isRGB) |
BitmapSourceの不透明な領域を検出し、その矩形に合わせて画像を切り抜きます。 | |
static void | BlackToTransparent (byte[] buffer) |
指定されたバイト配列内のピクセルデータに対して、黒色(0,0,0,255)を完全な透明(0,0,0,0)に変換します。 | |
static global::System.Windows.Media.Imaging.BitmapSource | CropIfPortrait (global::System.Windows.Media.Imaging.BitmapSource thumb) |
画像が縦長(高さが幅より大きい)の場合、中央を基準に正方形に切り抜きます。 | |
static global::System.Windows.Media.Imaging.BitmapSource | Resize (global::System.Windows.Media.Imaging.BitmapSource thumb, int size) |
指定されたサイズに合わせて、BitmapSourceをリサイズします。 | |
static global::System.Windows.Media.Imaging.BitmapSource | MemoryOptimize (global::System.Windows.Media.Imaging.BitmapSource source) |
BitmapSourceをメモリ効率の良い形式に変換します。 | |
static global::System.Threading.Tasks.Task< global::System.Windows.Media.Imaging.BitmapSource > | LoadCroppedThumbnailAsync (string file, int tmpSize=1000, int thumbSize=50) |
指定されたファイルのサムネイルを非同期で読み込み、切り抜き処理を適用します。 |
シェルサムネイルの取得と操作を行うユーティリティクラス。
YukkuriMovieMaker.Commons.ShellThumbnail.ShellThumbnail | ( | ) |
ShellThumbnailクラスの新しいインスタンスを初期化します。
|
static |
指定されたバイト配列内のピクセルデータに対して、黒色(0,0,0,255)を完全な透明(0,0,0,0)に変換します。
buffer | BGRAフォーマットのピクセルデータが格納されたバイト配列。 |
このメソッドは、4バイトで1ピクセルを表すBGRAフォーマットを想定しています。 RGBがすべて0で、アルファが255のピクセルを検索し、そのアルファ値を0に設定することで透明化します。
|
static |
画像が縦長(高さが幅より大きい)の場合、中央を基準に正方形に切り抜きます。
thumb | 切り抜く対象のBitmapSource。 |
|
static |
BitmapSourceの不透明な領域を検出し、その矩形に合わせて画像を切り抜きます。
thumb | 切り抜く対象のBitmapSource。 |
isRGB | RGB画像として扱い、黒色を透明と見なすかどうかを示す値。 |
このメソッドは、画像のアルファチャンネルを調べて、完全に透明なピクセル(A=0)に囲まれた領域を特定し、その領域のみを切り出します。 isRGB が<c>trueの場合、純粋な黒(R=0, G=0, B=0)も透明として扱われます。 32bppの画像でない場合は、処理を行わずに元の画像を返します。
|
static |
ファイルのサムネイルを<c>IExtractImageを使用して取得します。
path | サムネイルを取得するファイルのパス。 |
width | 要求するサムネイルの幅(ピクセル)。 |
height | 要求するサムネイルの高さ(ピクセル)。 |
このメソッドは、Windows シェルの IExtractImage
インターフェースを利用して、ファイルからサムネイル画像を抽出します。 GetThumbnailFromFactory
よりも古くからある方法ですが、特定の状況下で有効な場合があります。 ファイルが存在しない場合や、サムネイルが取得できない場合は null
を返します。
|
static |
指定されたパスの画像ファイルをBitmapImageとして読み込み、サムネイルとして返します。
path | 画像ファイルのパス。 |
このメソッドは、主に標準的な画像ファイル(JPG, PNG, BMPなど)から直接サムネイルを生成する場合に有効です。 シェルコンテキストを必要としないため、より軽量な処理が期待できます。 対応していないピクセルフォーマットの画像の場合は<c>nullを返します。
|
static |
IShellItemImageFactoryを使用してファイルのサムネイルを取得します。
path | サムネイルを取得するファイルのパス。 |
width | 要求するサムネイルの幅(ピクセル)。 |
height | 要求するサムネイルの高さ(ピクセル)。 |
このメソッドは、Windows シェルの IShellItemImageFactory
インターフェースを利用して、ファイルからサムネイル画像を抽出します。 ファイルが存在しない場合や、サムネイルが取得できない場合は null
を返します。 OneDrive上のファイルなど、特定の状況でサムネイル取得に失敗した場合に備え、リトライ処理を内蔵しています。
|
static |
指定されたファイルのサムネイルを非同期で読み込み、切り抜き処理を適用します。
file | サムネイルを取得するファイルのパス。 |
tmpSize | サムネイルを最初に取得する際の一時的なサイズ。既定値は1000。 |
thumbSize | 最終的に生成されるサムネイルのサイズ。既定値は50。 |
このメソッドは、複数の方法(<c>GetThumbnail, GetThumbnailFromBitmapImage
, GetThumbnailFromFactory
)を試行してサムネイルを取得します。 取得したサムネイルに対して、<c>ApplyEffectメソッドを呼び出して、切り抜き、リサイズ、メモリ最適化などの一連の処理を適用します。 処理はバックグラウンドのスレッドで実行されます。
|
static |
BitmapSourceをメモリ効率の良い形式に変換します。
source | 変換するBitmapSource。 |
このメソッドは、BitmapSourceのピクセルデータを一度バイト配列にコピーし、 そのバイト配列から新しいBitmapSourceを生成することで、メモリ使用量を最適化します。 特に、ファイルから直接読み込んだBitmapImageなど、内部で余分なリソースを保持している可能性がある場合に有効です。
|
static |
指定されたサイズに合わせて、BitmapSourceをリサイズします。
thumb | リサイズするBitmapSource。 |
size | リサイズ後の最大サイズ(幅または高さ)。 |
元画像の幅と高さのうち、大きい方を基準にsize に合わせるように拡大・縮小率を計算し、アスペクト比を維持したままリサイズします。