هو BitmapSource النوع الوحيد يمكن استخدامها في صورة المصدر ؟
-
06-07-2019 - |
سؤال
يمكننا استخدام Bitmapsource وجوه محتوى تحكم الصورة ، ومع ذلك إذا كان لدي سوى كائن صورة نقطية يمكن استخدامه مباشرة ، إن تحويل الصور النقطية إلى Bitmapsouce باستخدام الطريقة التالية:
Bitmap bitmap = imageObjToBeConvert;
IntPtr HBitmap = bitmap.GetHbitmap();
result = Imaging.CreateBitmapSourceFromHBitmap
(HBitmap,
IntPtr.Zero,
Int32Rect.Empty,
BitmapSizeOptions.FromEmptyOptions());
DeleteObject(HBitmap);
bitmap.Dispose();
يستغرق بعض الوقت.هل هناك أي طريقة استخدام الصورة نقطية مباشرة ؟
ووجدت BitmapSource يبدو لا يمكن تحريرها مباشرة ، هناك عينة طريقة لتحرير الذاكرة على الفور ، بعد Bitmapsouce لا تستخدم مرة أخرى.
المحلول
لا، لا يمكنك استخدام Bitmap
مباشرة. وذلك لأن System.Drawing.Bitmap
هو GDI + نقطية، في حين أن الطبقات مثل BitmapImage
في System.Windows.Media.Imaging
هي D3D / دايركت.
وفيما يتعلق استخدام الذاكرة، لا يمكن الإفراج عنها مباشرة، ولكن عادة ما يكون هناك نوعا من التخزين المؤقت الذي يذهب في الخلفية. هناك طرق يمكنك تحميل BitmapImage
بحيث يتجاهل ذاكرة التخزين المؤقت.
نصائح أخرى
- النظام.يقوم نظام ويندوز.وسائل الاعلام.التصوير..::.BitmapFrame
- النظام.يقوم نظام ويندوز.وسائل الاعلام.التصوير..::.BitmapImage
- النظام.يقوم نظام ويندوز.وسائل الاعلام.التصوير..::.CachedBitmap
- النظام.يقوم نظام ويندوز.وسائل الاعلام.التصوير..::.ColorConvertedBitmap
- النظام.يقوم نظام ويندوز.وسائل الاعلام.التصوير..::.CroppedBitmap
- النظام.يقوم نظام ويندوز.وسائل الاعلام.التصوير..::.FormatConvertedBitmap
- النظام.يقوم نظام ويندوز.وسائل الاعلام.التصوير..::.RenderTargetBitmap
- النظام.يقوم نظام ويندوز.وسائل الاعلام.التصوير..::.TransformedBitmap
- النظام.يقوم نظام ويندوز.وسائل الاعلام.التصوير..::.WriteableBitmap
كل من هذه الفئات ترث من BitMapSource ، لذلك أي منهم يمكن أن تستخدم في هذا السياق.