내보내기(0) 인쇄
모두 확장
정보
요청한 주제가 아래에 표시됩니다. 그러나 이 주제는 이 라이브러리에 포함되지 않습니다.

WriteableBitmap 클래스

2013-12-13

쓰고 업데이트할 수 있는 BitmapSource를 제공합니다.

Namespace:  System.Windows.Media.Imaging
어셈블리:  System.Windows(System.Windows.dll)

‘선언
Public NotInheritable Class WriteableBitmap _
	Inherits BitmapSource

WriteableBitmap 형식에서는 다음과 같은 멤버를 노출합니다.

  이름설명
Public 메서드WriteableBitmap(BitmapSource)제공된 BitmapSource를 사용하여 WriteableBitmap 클래스의 새 인스턴스를 초기화합니다.
Public 메서드WriteableBitmap(Int32, Int32)제공된 크기를 사용하여 WriteableBitmap 클래스의 새 인스턴스를 초기화합니다.
Public 메서드WriteableBitmap(UIElement, Transform)제공된 요소 및 변환을 사용하여 WriteableBitmap 클래스의 새 인스턴스를 초기화합니다.
맨 위

  이름설명
Public 속성Dispatcher이 개체와 관련된 Dispatcher를 가져옵니다. (DependencyObject에서 상속됨)
Public 속성PixelHeight비트맵의 높이를 픽셀 단위로 가져옵니다. (BitmapSource에서 상속됨)
Public 속성Pixels비트맵의 2D 질감을 픽셀 단위로 나타내는 배열을 가져옵니다.
Public 속성PixelWidth비트맵의 너비를 픽셀 단위로 가져옵니다. (BitmapSource에서 상속됨)
맨 위

  이름설명
Public 메서드CheckAccess호출 스레드에서 이 개체에 액세스할 수 있는지 여부를 확인합니다. (DependencyObject에서 상속됨)
Public 메서드ClearValue종속성 속성의 로컬 값을 지웁니다. (DependencyObject에서 상속됨)
Public 메서드Equals(Object)지정한 Object가 현재 Object와 같은지 확인합니다. (Object에서 상속됨)
Protected 메서드Finalize가비지 수집기에서 Object를 회수하기 전에 개체가 리소스를 해제하고 다른 정리 작업을 수행할 수 있게 합니다. (Object에서 상속됨)
Public 메서드GetAnimationBaseValueWindows Phone 종속성 속성에 대해 설정되어 있고 애니메이션이 활성 상태가 아닐 때 적용되는 기준 값을 반환합니다. (DependencyObject에서 상속됨)
Public 메서드GetHashCode특정 형식에 대한 해시 함수 역할을 합니다. (Object에서 상속됨)
Public 메서드GetType현재 인스턴스의 Type을 가져옵니다. (Object에서 상속됨)
Public 메서드GetValueDependencyObject에서 종속성 속성의 현재 유효 값을 반환합니다. (DependencyObject에서 상속됨)
Public 메서드Invalidate전체 비트맵의 그리기 또는 다시 그리기를 요청합니다.
Protected 메서드MemberwiseClone현재 Object의 단순 복사본을 만듭니다. (Object에서 상속됨)
Public 메서드ReadLocalValue로컬 값이 설정된 경우, 종속성 속성의 로컬 값을 반환합니다. (DependencyObject에서 상속됨)
Public 메서드Render비트맵 내에 요소를 렌더링합니다.
Public 메서드SetSourceBitmapSource의 소스를 설정합니다. (BitmapSource에서 상속됨)
Public 메서드SetValueDependencyObject에 종속성 속성의 로컬 값을 설정합니다. (DependencyObject에서 상속됨)
Public 메서드ToString현재 개체를 나타내는 문자열을 반환합니다. (Object에서 상속됨)
맨 위

  이름설명
Public 확장 메서드LoadJpegJPEG 스트림을 WriteableBitmap 개체로 디코딩합니다. (Extensions에서 정의됨)
Public 확장 메서드SaveJpegJPEG 파일의 대상 너비 및 높이를 설정하기 위한 매개 변수를 사용하여 WriteableBitmap 개체를 JPEG 스트림으로 인코딩합니다. (Extensions에서 정의됨)
맨 위

WriteableBitmap 생성자의 매개 변수로 BitmapImage를 지정하는 경우 이를 WriteableBitmap 생성에 사용하기 전에 BitmapImageCreateOptions 속성을 설정해야 합니다. 그렇지 않으면 예외가 발생합니다.

비트맵을 프레임별로 업데이트하고 렌더링하려면 WriteableBitmap 클래스를 사용합니다. 다음은 WriteableBitmap이 유용한 몇 가지 예제 시나리오와 다음 시나리오를 가능하게 하는 관련 WriteableBitmap API의 목록입니다.

프랙탈 이미지 같은 알고리즘 이미징 콘텐츠를 생성합니다.

  • 처음에는 비어 있지만 WriteableBitmap(Int32, Int32)을 사용하여 치수가 있는 WriteableBitmap을 구성합니다.

  • Pixels에서 픽셀 배열을 가져옵니다.

  • 미리 곱한 ARGB32로 평가되는 정수 값으로 개별 픽셀 값을 설정하면서 배열을 순환하며 검색합니다.

  • Invalidate를 호출합니다.

  • UI에 이미지를 표시하려면 Image 같은 이미징 제어용 소스 또는 ImageBrush용 소스 이미지로 WriteableBitmap을 사용하세요.

모든 UIElement에서 시작하는 시각적 트리의 비트맵 스냅숏을 생성합니다.

  • WriteableBitmap.WriteableBitmap를 사용하여 WriteableBitmap을 생성합니다.

  • UI에 이미지를 표시하려면 Image 같은 이미징 제어용 소스 또는 ImageBrush용 소스 이미지로 WriteableBitmap을 사용하세요.

  • 여러 번 비트맵을 렌더링하고 추가 스냅샷을 위한 인스턴스를 다시 사용할 경우에 Render 메서드를 사용하세요. Render 후에 새 이미지를 렌더링하기 위해 Invalidate를 호출하는 데 필요합니다.

  • 변환을 생성자에 전달하여 UIElement에 있는 모든 기존 RenderTransform을 유지하거나 항등 변환 또는 null을 전달하여 기존 변환을 취소하는 옵션이 있습니다.

참고참고:

WriteableBitmapWebBrowser 컨트롤이나 MediaElement의 콘텐츠를 캡처하지 않습니다. 뿐만 아니라, 앱의 클라이언트 영역만 캡처하며, 이것은 앱 바나 시스템 트레이를 캡처하지 않을 것임을 의미합니다.

기존 이미지에서 픽셀 배열 가져오기

  • WriteableBitmap.WriteableBitmap를 사용하여 WriteableBitmap을 생성합니다. 원래 소스는 URL 또는 스트림을 통해 로드되었을 수도 있습니다. URL에서 오는 경우 이 URL은 도메인 간이 될 수 없습니다. 이 항목의 "보호된 콘텐츠" 부분을 참조하세요.

  • Pixels에서 픽셀 배열을 가져옵니다.

  • 미리 곱한 ARGB32로 평가되는 정수 값으로 개별 픽셀 값을 가져오면서 배열을 순환하며 검색합니다.

WriteableBitmap 픽셀 형식

비트맵의 픽셀에 색을 지정할 경우 미리 곱해진 색을 사용하세요. WriteableBitmap에서 사용하는 형식은 ARGB32(미리 곱한 RGB)입니다. 이 형식은 Pixels 배열에 있는 정수 값을 채우는 경우 관련됩니다.

차원이 지정된 배열에서 초기 픽셀 값은 0으로, 변경되지 않은 상태에서 검정색으로 렌더링됩니다.

보호된 콘텐츠

WriteableBitmap 클래스에는 WriteableBitmap이 도메인 간 콘텐츠를 사용하여 생성된 경우 Pixels 배열에 대한 액세스를 제한하는 보안 모델이 있습니다. 예를 들어, 다른 도메인에서 가져오는 URL을 참조하는 BitmapImage를 사용하여 생성되는 WriteableBitmapPixels 배열에 대한 액세스를 허용하지 않습니다. 제한은 일부 또는 전체 내용을 설정하기 위해 URL 파생된 속성을 사용하는 모든 UI 요소를 확장합니다.

보호된 콘텐츠에서 만든 경우에도 WriteableBitmapPixelHeightPixelWidth 속성에 액세스할 수 있습니다. 이 정보는 콘텐츠의 기본 크기를 결정하는 데 도움이 됩니다.

다음 예제에서는 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

Windows Phone

이 형식의 모든 공용 static(Visual Basic의 경우 Shared) 멤버는 스레드로부터 안전합니다. 모든 인스턴스 멤버는 스레드로부터 안전하지 않을 수 있습니다.

표시:
© 2014 Microsoft