BitMapSource는 이미지 소스에서 유일하게 사용할 수 있습니까?
-
06-07-2019 - |
문제
BitMapSource 객체를 이미지 컨트롤의 내용으로 사용할 수 있지만 BitMap 객체 만있는 경우 다음 방법을 사용하여 BitMap을 BitMapSouce로 변환하면 직접 사용할 수 있습니다.
Bitmap bitmap = imageObjToBeConvert;
IntPtr HBitmap = bitmap.GetHbitmap();
result = Imaging.CreateBitmapSourceFromHBitmap
(HBitmap,
IntPtr.Zero,
Int32Rect.Empty,
BitmapSizeOptions.FromEmptyOptions());
DeleteObject(HBitmap);
bitmap.Dispose();
시간이 좀 걸립니다. 비트 맵을 직접 사용하는 방법이 있습니까?
그리고 BitMapSouce가 직접 해제 될 수없는 것처럼 보였고 BitMapSouce가 다시 사용되지 않은 후에 즉시 메모리를 해제하는 샘플 방법이 있습니까?
해결책
아니요, 사용할 수 없습니다 Bitmap
곧장. 이 때문입니다 System.Drawing.Bitmap
클래스와 같은 GDI+ 비트 맵입니다 BitmapImage
안에 System.Windows.Media.Imaging
d3d/directx입니다.
메모리 사용과 관련하여 직접 출시 할 수는 없지만 일반적으로 배경에 들어가는 일종의 캐싱이 있습니다. a를로드 할 수있는 방법이 있습니다 BitmapImage
캐시를 무시할 수 있습니다.
다른 팁
- System.windows.media.imaging .. ::. BitMapFrame
- System.windows.media.imaging .. ::. Bitmapimage
- System.windows.media.imaging .. ::. Cachedbitmap
- System.windows.media.imaging .. ::. ColorConvertedBitMap
- System.windows.media.imaging .. ::. CroppedBitMap
- System.windows.media.imaging .. ::. FormatConvertedBitMap
- System.windows.media.imaging .. ::. RendertargetBitmap
- System.windows.media.imaging .. ::. TransformedBitMap
- System.windows.media.imaging .. ::. WriteblebitMap
이 클래스는 모두 BitMapSource에서 상속되므로 해당 맥락에서 사용될 수 있습니다.
제휴하지 않습니다 StackOverflow