부드러운 높은 프레임 속도 이미지 디스플레이를 위해 WPF 비트맵-비트맵 소스 변환 강화
WPF의 Image
컨트롤에서 높은 새로 고침 빈도(예: 30Hz)로 부드러운 이미지 표시를 유지하려면 System.Drawing.Bitmap
에서 System.Windows.Media.Imaging.BitmapSource
로 효율적인 변환이 필요합니다. 일반적인 CreateBitmapSourceFromHBitmap
방법은 계산 비용이 많이 들고 CPU 사용량이 많아지고 성능에 영향을 줄 수 있습니다.
성능 향상을 위한 향상된 변환
우수한 성능을 위해서는 보다 직접적인 접근 방식을 권장합니다. 여기에는 비트맵의 비트를 잠그고 해당 픽셀 데이터에 직접 액세스하는 작업이 포함됩니다. 변환 중 PixelFormat
의 정확한 지정으로 속도가 더욱 향상됩니다. 다음 코드는 이 최적화된 방법을 예시합니다.
<code class="language-csharp">public static BitmapSource Convert(System.Drawing.Bitmap bitmap) { var bitmapData = bitmap.LockBits( new System.Drawing.Rectangle(0, 0, bitmap.Width, bitmap.Height), System.Drawing.Imaging.ImageLockMode.ReadOnly, bitmap.PixelFormat); var bitmapSource = BitmapSource.Create( bitmapData.Width, bitmapData.Height, bitmap.HorizontalResolution, bitmap.VerticalResolution, PixelFormats.Bgr24, null, bitmapData.Scan0, bitmapData.Stride * bitmapData.Height, bitmapData.Stride); bitmap.UnlockBits(bitmapData); return bitmapSource; }</code>
이 최적화된 변환은 일반적으로 CreateBitmapSourceFromHBitmap
보다 최소 4배 빠른 속도를 달성합니다.
30Hz 이상 달성: 전체적인 최적화
이러한 향상된 변환으로 CPU 부하가 크게 줄어들지만 30Hz(또는 그 이상)에 도달하고 유지하려면 추가 애플리케이션 수준 최적화가 필요할 수 있습니다. 이미지 크기, 처리 단계 및 하드웨어 제한이 모두 중요한 역할을 합니다. 높은 프레임 속도에서 성능을 극대화하려면 병목 현상을 정확히 찾아내는 철저한 애플리케이션 프로파일링이 중요합니다.
위 내용은 높은 프레임 속도를 위해 WPF에서 비트맵-비트맵 소스 변환을 어떻게 최적화할 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!