Rumah >pembangunan bahagian belakang >C++ >Bagaimanakah saya Boleh Mempercepatkan Penukaran Bitmap kepada BitmapSource dalam WPF?
Paparan imej yang licin adalah penting untuk aplikasi WPF berprestasi tinggi. Kesesakan prestasi biasa timbul daripada menukar Bitmap
objek kepada BitmapSource
. Walaupun CreateBitmapSourceFromHBitmap
menawarkan penyelesaian yang mudah, ia selalunya terlalu perlahan untuk prestasi optimum.
Untuk penukaran yang jauh lebih pantas tanpa mengorbankan kualiti imej, pertimbangkan pemetaan piksel langsung. Teknik ini memintas pemprosesan imej dalaman untuk peningkatan kelajuan yang luar biasa.
<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>
Kod ini terus menyalin data piksel, menggunakan kod yang tidak selamat dan pengurusan memori yang cekap untuk penukaran yang sangat pantas. Ini meminimumkan beban CPU, menghasilkan peningkatan prestasi yang ketara untuk aplikasi WPF anda. Laksanakan kaedah yang dioptimumkan ini hari ini untuk merasai manfaat pemaparan imej dipercepatkan.
Atas ialah kandungan terperinci Bagaimanakah saya Boleh Mempercepatkan Penukaran Bitmap kepada BitmapSource dalam WPF?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!