エクスポート (0) 印刷
すべて展開
情報
要求されたトピックは次のとおりです。しかし、このトピックはこのライブラリには含まれていません。

WriteableBitmap クラス

2013/12/12

書き込みおよび更新が可能な BitmapSource を提供します。

Namespace:  System.Windows.Media.Imaging
アセンブリ:  System.Windows (System.Windows.dll 内)

'宣言
Public NotInheritable Class WriteableBitmap _
	Inherits BitmapSource

WriteableBitmap 型で公開されるメンバーは以下のとおりです。

  名前説明
パブリック メソッドWriteableBitmap(BitmapSource)指定した BitmapSource を使用して、WriteableBitmap クラスの新しいインスタンスを初期化します。
パブリック メソッドWriteableBitmap(Int32, Int32)指定した次元を使用して、WriteableBitmap クラスの新しいインスタンスを初期化します。
パブリック メソッドWriteableBitmap(UIElement, Transform)指定した要素および変換を使用して、WriteableBitmap クラスの新しいインスタンスを初期化します。
このページのトップへ

  名前説明
パブリック プロパティDispatcherこのオブジェクトに関連付けられている Dispatcher を取得します。 (DependencyObject から継承されます。)
パブリック プロパティPixelHeightビットマップの高さ (ピクセル単位) を取得します。 (BitmapSource から継承されます。)
パブリック プロパティPixelsビットマップの 2-D テクスチャを表す配列を取得します。
パブリック プロパティPixelWidthビットマップの幅 (ピクセル単位) を取得します。 (BitmapSource から継承されます。)
このページのトップへ

  名前説明
パブリック メソッドCheckAccess呼び出しスレッドが、このオブジェクトにアクセスできるかどうかを判断します。 (DependencyObject から継承されます。)
パブリック メソッドClearValue依存関係プロパティのローカル値をクリアします。 (DependencyObject から継承されます。)
パブリック メソッドEquals(Object)指定した Object が、現在の Object と等しいかどうかを判断します。 (Object から継承されます。)
プロテクト メソッドFinalizeObject がガベージ コレクションで再利用される前に、Object がリソースを解放して他のクリーンアップ操作を実行できるようにします。 (Object から継承されます。)
パブリック メソッドGetAnimationBaseValueアニメーションがアクティブでない場合に適用される、Windows Phone 依存関係プロパティに対し設定されている基本値を返します。 (DependencyObject から継承されます。)
パブリック メソッドGetHashCode特定の型のハッシュ関数として機能します。 (Object から継承されます。)
パブリック メソッドGetType現在のインスタンスの Type を取得します。 (Object から継承されます。)
パブリック メソッドGetValueDependencyObject から依存関係プロパティの現在の有効値を返します。 (DependencyObject から継承されます。)
パブリック メソッドInvalidateビットマップ全体の描画または再描画を要求します。
プロテクト メソッドMemberwiseClone現在の Object の簡易コピーを作成します。 (Object から継承されます。)
パブリック メソッドReadLocalValueローカル値が設定されている場合、依存関係プロパティのローカル値を返します。 (DependencyObject から継承されます。)
パブリック メソッドRenderビットマップ内の要素をレンダリングします。
パブリック メソッドSetSourceBitmapSource のソースを設定します。 (BitmapSource から継承されます。)
パブリック メソッドSetValueDependencyObject で依存関係プロパティのローカル値を設定します。 (DependencyObject から継承されます。)
パブリック メソッドToString現在のオブジェクトを表す文字列を返します。 (Object から継承されます。)
このページのトップへ

  名前説明
パブリック拡張メソッドLoadJpegJPEG ストリームを WriteableBitmap オブジェクトにデコードします。 (Extensions によって定義されています。)
パブリック拡張メソッドSaveJpegJPEG ファイルのターゲットの幅と高さを設定するパラメーターを使用して、WriteableBitmap オブジェクトを JPEG ストリームにエンコードします。 (Extensions によって定義されています。)
このページのトップへ

BitmapImageWriteableBitmap コンストラクターのパラメーターとして指定する際は、BitmapImageCreateOptions プロパティを設定してから、それを使用して WriteableBitmap を構築する必要があります。そうしないと、例外が発生します。

ビットマップをフレームごとに更新して描画するには、WriteableBitmap クラスを使用します。WriteableBitmap が役立ついくつかのサンプル シナリオと、シナリオを有効にする関連 WriteableBitmap API の一覧を次に示します。

フラクタル イメージなどのアルゴリズムのイメージング コンテンツを生成します。

  • WriteableBitmap を使用して、最初は空であるものの宣言されている WriteableBitmap(Int32, Int32) を構築します。

  • Pixels からピクセル配列を取得します。

  • 個々のピクセル値を、合成 ARGB32 として評価される整数値として設定して、配列をループします。

  • Invalidate を呼び出します。

  • UI にイメージを表示するには、WriteableBitmap を、Image などのイメージ コントロールのソースとして、または ImageBrush のソース イメージとして使用します。

任意の UIElement から始まるビジュアル ツリーのビットマップのスナップショットを生成します。

  • WriteableBitmap.WriteableBitmap を使用して WriteableBitmap を構築します。

  • UI にイメージを表示するには、WriteableBitmap を、Image などのイメージ コントロールのソースとして、または ImageBrush のソース イメージとして使用します。

  • ビットマップを複数回、描画し、そのインスタンスを追加のスナップショットを再利用する場合は、Render メソッドを使用します。 Render の後に Invalidate を呼び出して、新しいイメージをレンダリングする必要があります。

  • 変換をコンストラクターに渡して、UIElement の既存の RenderTransform を保持するか、または、ID 変換または null を渡して、既存の変換を取り消すかのいずれかを選択できます。

メモメモ:

WriteableBitmapWebBrowser コントロールまたは MediaElement のコンテンツをキャプチャしません。さらに、アプリのクライアント領域のみをキャプチャします。つまり、アプリ バーやシステム トレイをキャプチャしません。

既存のイメージからピクセルの配列を取得します。

  • WriteableBitmap.WriteableBitmap を使用して WriteableBitmap を構築します。元のソースは、URL またはストリームを介して読み込まれている可能性があります。URL からの場合は、この URL をドメイン間 URL にすることはできません。このトピックの「保護されたコンテンツ」を参照してください。

  • Pixels からピクセル配列を取得します。

  • 個々のピクセル値を、合成 ARGB32 として評価される整数値として取得して、配列をループします。

WriteableBitmap ピクセル形式

ビットマップ内の各ピクセルに割り当てる色には、前乗算された色を使用します。WriteableBitmap で使用される形式は ARGB32 (前乗算された RGB) です。書式は、Pixels 配列内に整数値を設定している場合に、関連するようになります。

次元配列内の初期ピクセル値は 0 で、変更されないままの場合は、黒で表示されます。

保護されたコンテンツ

WriteableBitmap クラスには、クロス ドメインのコンテンツを使用して WriteableBitmap が構築された場合に、Pixels 配列へのアクセスを制限するセキュリティ モデルがあります。たとえば、別のドメインにある URL を参照する BitmapImage を使用して構築された WriteableBitmap は、その Pixels 配列へのアクセスを許可しません。制限は、コンテンツの一部またはすべてを設定するために URL から派生したプロパティを使用するあらゆる UI 要素まで拡張されます。

保護されたコンテンツから作成されている場合でも、WriteableBitmapPixelHeight プロパティおよび PixelWidth プロパティに引き続きアクセスできます。この情報は、コンテンツの本来のサイズを判断するのに役立つことがあります。

次の例では、WriteableBitmap を使用して、イメージのスナップショットを撮影し、サムネイルとして表示する方法を示しています。


<Grid x:Name="LayoutRoot" Background="Transparent">
    <Grid.RowDefinitions>
        <RowDefinition Height="Auto"/>
        <RowDefinition Height="*"/>
    </Grid.RowDefinitions>

    <StackPanel Name="mainLayout" Orientation="Vertical" 
        HorizontalAlignment="Stretch" Margin="10" Grid.Row="0">
        <Button Content="Create WriteableBitmap" Height="71" Name="createWB" Click="createWB_Click" />
        <Image Source="Background.png" />
    </StackPanel>

    <!-- thumbnails go here -->
    <StackPanel Name="thumbs" Orientation="Horizontal" 
            Margin="10,10,10,10" Grid.Row="1">
    </StackPanel>
</Grid>



private void createWB_Click(object sender, RoutedEventArgs e)
{
    // Create a WriteableBitmap and set it to the main StackPanel.
    WriteableBitmap wb = new WriteableBitmap(mainLayout, null);

    // Create an image of the desired size and set its source to
    // the WriteableBitmap representing the StackPanel.
    Image image = new Image();
    image.Height = 64;
    image.Margin = new Thickness(10);
    image.Source = wb;

    // Display the WriteableBitmap as a thumbnail. 
    thumbs.Children.Add(image);
}


Windows Phone OS

サポート: 8.0, 7.1, 7.0

この型のすべてのパブリック static (Visual Basic では Shared) メンバーは、スレッド セーフです。インスタンス メンバーの場合は、スレッド セーフであるとは限りません。

表示:
© 2014 Microsoft