流暢的影像顯示對於高效能 WPF 應用程式至關重要。 將 Bitmap
物件轉換為 BitmapSource
會產生常見的效能瓶頸。雖然 CreateBitmapSourceFromHBitmap
提供了一個簡單的解決方案,但它通常太慢而無法達到最佳效能。
為了在不犧牲影像品質的情況下顯著加快轉換速度,請考慮直接像素映射。該技術繞過內部影像處理,顯著提高速度。
<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>
程式碼直接複製像素數據,利用不安全的程式碼和高效的記憶體管理來實現極快的轉換。 這可以最大限度地減少 CPU 負載,從而顯著提高 WPF 應用程式的效能。 立即實施此優化方法,體驗加速影像渲染的好處。
以上是如何在 WPF 中加快位圖到 BitmapSource 的轉換?的詳細內容。更多資訊請關注PHP中文網其他相關文章!