Share via


비트맵 효과 개요

업데이트: 2007년 11월

비트맵 효과를 사용하면 디자이너와 개발자는 렌더링된 WPF(Windows Presentation Foundation) 콘텐츠에 시각적 효과를 적용할 수 있습니다. 예를 들어 비트맵 효과를 사용하면 DropShadowBitmapEffect 효과 또는 흐림 효과를 이미지나 단추에 쉽게 적용할 수 있습니다.

이 항목에는 다음 단원이 포함되어 있습니다.

  • WPF 비트맵 효과
  • 효과 적용 방법
  • 사용자 지정 효과 만들기
  • 관련 항목

WPF 비트맵 효과

비트맵 효과(BitmapEffect 개체)는 간단한 픽셀 처리 작업입니다. 비트맵 효과는 BitmapSource를 입력으로 사용하고 흐림 또는 그림자와 같은 효과를 적용한 후 새 BitmapSource를 생성합니다. 각 비트맵 효과는 BlurBitmapEffectRadius와 같은 필터링 속성을 제어할 수 있는 속성을 노출합니다.

특별한 경우로 WPF에서 효과는 Button 또는 TextBox와 같은 라이브 Visual 개체의 속성으로 설정될 수 있습니다. 픽셀 처리는 런타임에 적용 및 렌더링됩니다. 이 경우 렌더링 시에 Visual은 해당 BitmapSource와 동등하게 자동 변환되고 BitmapEffect에 대한 입력으로 제공됩니다. 출력은 Visual 개체의 기본 렌더링 동작을 대체합니다. 이로 인해 BitmapEffect 개체는 시각적 표시가 소프트웨어에서만 렌더링되도록 강제합니다. 즉, 효과가 적용될 때 시각적 표시에서 하드웨어 가속은 없습니다.

참고

WPF 비트맵 효과는 소프트웨어 모드로 렌더링됩니다. 효과가 적용되는 개체도 소프트웨어에서 렌더링됩니다. 큰 시각적 표시에서 비트맵 효과를 사용하거나 비트맵 효과의 속성에 애니메이션 효과를 줄 경우 성능이 가장 많이 저하됩니다. 이 방법으로 비트맵 효과를 전혀 사용하지 않아야 한다는 뜻은 아니지만 사용자 경험이 예상대로 제공되려면 주의를 기울이고 충분히 테스트해야 합니다.

참고

WPF비트맵 효과의 경우 부분 신뢰 실행이 지원되지 않습니다. 비트맵 효과를 사용하려면 응용 프로그램에 완전 신뢰 권한이 있어야 합니다.

효과 적용 방법

BitmapEffectVisual의 속성입니다. 따라서 Button, Image, DrawingVisual 또는 UIElement와 같은 시각적 표시에 효과를 적용하는 것은 속성을 설정하는 것만큼 쉽습니다. BitmapEffect를 단일 BitmapEffect 개체로 설정하거나 BitmapEffectGroup 개체를 사용하여 여러 효과를 연결할 수 있습니다.

다음 예제에서는 XAML(Extensible Application Markup Language)에서 BitmapEffect를 적용하는 방법을 보여 줍니다.

<Button  Width="200">You Can't Read This!
  <Button.BitmapEffect>

  <!-- <BitmapEffectGroup> would go here if you wanted to apply more 
         then one effect to the Button. However, in this example only  
         one effect is being applied so BitmapEffectGroup does not need  
         to be included. -->

    <!-- The larger the Radius, the more blurring. The default range is 20.
         In addition, the KernelType is set to a box kernel. A box kernel
         creates less disruption (less blur) then the default Gaussian kernel. -->
    <BlurBitmapEffect Radius="10" KernelType="Box" />

  </Button.BitmapEffect>
</Button>

다음 예제에서는 코드에서 BitmapEffect를 적용하는 방법을 보여 줍니다.

// Get a reference to the Button.
Button myButton = (Button)sender;

// Initialize a new BlurBitmapEffect that will be applied
// to the Button.
BlurBitmapEffect myBlurEffect = new BlurBitmapEffect();

// Set the Radius property of the blur. This determines how 
// blurry the effect will be. The larger the radius, the more
// blurring. 
myBlurEffect.Radius = 10;

// Set the KernelType property of the blur. A KernalType of "Box"
// creates less blur than the Gaussian kernal type.
myBlurEffect.KernelType = KernelType.Box;

// Apply the bitmap effect to the Button.
myButton.BitmapEffect = myBlurEffect;

BitmapEffectGroup 개체를 사용하여 여러 효과를 적용하는 방법을 보여 주는 예제는 방법: 여러 시각 효과 만들기를 참조하십시오.

참고

BitmapEffectDockPanel 또는 Canvas와 같은 레이아웃 컨테이너에 적용될 경우 효과는 모든 자식 요소를 포함하는 요소 또는 시각적 표시의 시각적 트리에 적용됩니다.

사용자 지정 효과 만들기

또한 WPF는 관리되는 WPF 응용 프로그램에서 사용할 수 있는 사용자 지정 효과를 만들기 위한 관리되지 않는 인터페이스를 제공합니다. 사용자 지정 비트맵 효과를 만들기 위한 추가 참조 자료는 WPF Bitmap Effects 설명서를 참조하십시오.

샘플 사용자 지정 비트맵 효과는 사용자 지정 BitmapEffect 샘플 - RGBFilter를 참조하십시오. 이 샘플은 사용자 지정 효과, 관리되는 상호 운용성 계층 및 사용자 지정 효과를 사용하는 WPF 응용 프로그램을 만드는 데 필요한 관리되지 않는 인터페이스를 보여 줍니다.

참고 항목

작업

방법: 흐림 시각 효과에 애니메이션 효과 적용

방법: 글로우 효과에 애니메이션 효과 주기

방법: 그림자 시각 효과에 애니메이션 적용

방법: 3D 시각 효과에 애니메이션 효과 주기

방법: 볼록 시각 효과에 애니메이션 효과 주기

개념

이미징 개요

Windows Presentation Foundation 보안

Windows Presentation Foundation 그래픽 렌더링 개요

성능 최적화: 2차원 그래픽 및 이미징

참조

BitmapEffectGroup

BitmapEffectInput

BitmapEffectCollection

Unmanaged WPF Bitmap Effect