ymm4-plugin-document
読み取り中…
検索中…
一致する文字列を見つけられません
YukkuriMovieMaker.Commons.ShellThumbnail クラス

シェルサムネイルの取得と操作を行うユーティリティクラス。 [詳解]

公開メンバ関数

 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)
 指定されたファイルのサムネイルを非同期で読み込み、切り抜き処理を適用します。

詳解

シェルサムネイルの取得と操作を行うユーティリティクラス。

構築子と解体子

◆ ShellThumbnail()

YukkuriMovieMaker.Commons.ShellThumbnail.ShellThumbnail ( )

ShellThumbnailクラスの新しいインスタンスを初期化します。

メソッド詳解

◆ BlackToTransparent()

void YukkuriMovieMaker.Commons.ShellThumbnail.BlackToTransparent ( byte[] buffer)
static

指定されたバイト配列内のピクセルデータに対して、黒色(0,0,0,255)を完全な透明(0,0,0,0)に変換します。

引数
bufferBGRAフォーマットのピクセルデータが格納されたバイト配列。

このメソッドは、4バイトで1ピクセルを表すBGRAフォーマットを想定しています。 RGBがすべて0で、アルファが255のピクセルを検索し、そのアルファ値を0に設定することで透明化します。

◆ CropIfPortrait()

global.System.Windows.Media.Imaging.BitmapSource YukkuriMovieMaker.Commons.ShellThumbnail.CropIfPortrait ( global.System.Windows.Media.Imaging.BitmapSource thumb)
static

画像が縦長(高さが幅より大きい)の場合、中央を基準に正方形に切り抜きます。

引数
thumb切り抜く対象のBitmapSource。
戻り値
正方形に切り抜かれた新しいBitmapSource。縦長でない場合は元の画像を返します。
// 縦長の画像を正方形にクロップする
var croppedImage = ShellThumbnail.CropIfPortrait(originalImage);
ShellThumbnail()
ShellThumbnailクラスの新しいインスタンスを初期化します。
Definition ShellThumbnail.cs:637

◆ CropOpaqueRect()

global.System.Windows.Media.Imaging.BitmapSource YukkuriMovieMaker.Commons.ShellThumbnail.CropOpaqueRect ( global.System.Windows.Media.Imaging.BitmapSource thumb,
bool isRGB )
static

BitmapSourceの不透明な領域を検出し、その矩形に合わせて画像を切り抜きます。

引数
thumb切り抜く対象のBitmapSource。
isRGBRGB画像として扱い、黒色を透明と見なすかどうかを示す値。
戻り値
不透明な領域で切り抜かれた新しいBitmapSource。不透明な領域が見つからない、または処理が不要な場合は元の画像を返します。

このメソッドは、画像のアルファチャンネルを調べて、完全に透明なピクセル(A=0)に囲まれた領域を特定し、その領域のみを切り出します。 isRGB が<c>trueの場合、純粋な黒(R=0, G=0, B=0)も透明として扱われます。 32bppの画像でない場合は、処理を行わずに元の画像を返します。

◆ GetThumbnail()

unsafe global.System.Windows.Media.Imaging.BitmapSource YukkuriMovieMaker.Commons.ShellThumbnail.GetThumbnail ( string path,
int width,
int height )
static

ファイルのサムネイルを<c>IExtractImageを使用して取得します。

引数
pathサムネイルを取得するファイルのパス。
width要求するサムネイルの幅(ピクセル)。
height要求するサムネイルの高さ(ピクセル)。
戻り値
成功した場合は、指定されたサイズのBitmapSource。それ以外の場合は<c>null。

このメソッドは、Windows シェルの IExtractImage インターフェースを利用して、ファイルからサムネイル画像を抽出します。 GetThumbnailFromFactoryよりも古くからある方法ですが、特定の状況下で有効な場合があります。 ファイルが存在しない場合や、サムネイルが取得できない場合は null を返します。

var thumbnail = ShellThumbnail.GetThumbnail(@"C:\path\to\image.jpg", 100, 100);
if (thumbnail != null)
{
myImageControl.Source = thumbnail;
}

◆ GetThumbnailFromBitmapImage()

global.System.Windows.Media.Imaging.BitmapSource YukkuriMovieMaker.Commons.ShellThumbnail.GetThumbnailFromBitmapImage ( string path)
static

指定されたパスの画像ファイルをBitmapImageとして読み込み、サムネイルとして返します。

引数
path画像ファイルのパス。
戻り値
BGRA32またはBGR32フォーマットのBitmapSource。それ以外のフォーマットの場合、または読み込みに失敗した場合は<c>null。

このメソッドは、主に標準的な画像ファイル(JPG, PNG, BMPなど)から直接サムネイルを生成する場合に有効です。 シェルコンテキストを必要としないため、より軽量な処理が期待できます。 対応していないピクセルフォーマットの画像の場合は<c>nullを返します。

var thumbnail = ShellThumbnail.GetThumbnailFromBitmapImage(@"C:\path\to\icon.png");
if (thumbnail != null)
{
myImageControl.Source = thumbnail;
}

◆ GetThumbnailFromFactory()

global.System.Windows.Media.Imaging.BitmapSource YukkuriMovieMaker.Commons.ShellThumbnail.GetThumbnailFromFactory ( string path,
int width,
int height )
static

IShellItemImageFactoryを使用してファイルのサムネイルを取得します。

引数
pathサムネイルを取得するファイルのパス。
width要求するサムネイルの幅(ピクセル)。
height要求するサムネイルの高さ(ピクセル)。
戻り値
成功した場合は、指定されたサイズのBitmapSource。それ以外の場合は<c>null。

このメソッドは、Windows シェルの IShellItemImageFactory インターフェースを利用して、ファイルからサムネイル画像を抽出します。 ファイルが存在しない場合や、サムネイルが取得できない場合は null を返します。 OneDrive上のファイルなど、特定の状況でサムネイル取得に失敗した場合に備え、リトライ処理を内蔵しています。

var thumbnail = ShellThumbnail.GetThumbnailFromFactory(@"C:\path\to\video.mp4", 100, 100);
if (thumbnail != null)
{
myImageControl.Source = thumbnail;
}

◆ LoadCroppedThumbnailAsync()

global.System.Threading.Tasks.Task< global.System.Windows.Media.Imaging.BitmapSource > YukkuriMovieMaker.Commons.ShellThumbnail.LoadCroppedThumbnailAsync ( string file,
int tmpSize = 1000,
int thumbSize = 50 )
static

指定されたファイルのサムネイルを非同期で読み込み、切り抜き処理を適用します。

引数
fileサムネイルを取得するファイルのパス。
tmpSizeサムネイルを最初に取得する際の一時的なサイズ。既定値は1000。
thumbSize最終的に生成されるサムネイルのサイズ。既定値は50。
戻り値
処理済みのサムネイル画像(BitmapSource)を返すTask。サムネイルが取得できなかった場合は<c>nullを返します。

このメソッドは、複数の方法(<c>GetThumbnail, GetThumbnailFromBitmapImage, GetThumbnailFromFactory)を試行してサムネイルを取得します。 取得したサムネイルに対して、<c>ApplyEffectメソッドを呼び出して、切り抜き、リサイズ、メモリ最適化などの一連の処理を適用します。 処理はバックグラウンドのスレッドで実行されます。

◆ MemoryOptimize()

global.System.Windows.Media.Imaging.BitmapSource YukkuriMovieMaker.Commons.ShellThumbnail.MemoryOptimize ( global.System.Windows.Media.Imaging.BitmapSource source)
static

BitmapSourceをメモリ効率の良い形式に変換します。

引数
source変換するBitmapSource。
戻り値
メモリ効率の良い形式に変換された新しいBitmapSource。

このメソッドは、BitmapSourceのピクセルデータを一度バイト配列にコピーし、 そのバイト配列から新しいBitmapSourceを生成することで、メモリ使用量を最適化します。 特に、ファイルから直接読み込んだBitmapImageなど、内部で余分なリソースを保持している可能性がある場合に有効です。

◆ Resize()

global.System.Windows.Media.Imaging.BitmapSource YukkuriMovieMaker.Commons.ShellThumbnail.Resize ( global.System.Windows.Media.Imaging.BitmapSource thumb,
int size )
static

指定されたサイズに合わせて、BitmapSourceをリサイズします。

引数
thumbリサイズするBitmapSource。
sizeリサイズ後の最大サイズ(幅または高さ)。
戻り値
リサイズされた新しいBitmapSource。リサイズが不要または不可能な場合は元の画像を返します。

元画像の幅と高さのうち、大きい方を基準にsize に合わせるように拡大・縮小率を計算し、アスペクト比を維持したままリサイズします。


このクラス詳解は次のファイルから抽出されました: