다음 코드는 이미지를 읽고 해당 이미지를 검정색 프레임이있는 결과 이미지에 센터링 (잘라내어 복사)하고 새 이미지를 반환합니다.UWP - 백그라운드 작업에서 WriteableBimap을 사용하는 방법? 대체?
writeablebitmap 클래스를 사용하지 않고도이 작업을 수행 할 수 있습니까?
private async Task<WriteableBitmap> FrameToCenter(StorageFile image, Size newSize)
{
WriteableBitmap result = new WriteableBitmap((int) newSize.Width,(int) newSize.Height);
WriteableBitmap bitmapToFrame = await StorageFileToSoftwareBitmap(image);
Rect sourceRect = new Rect(0, 0, bitmapToFrame.PixelWidth, bitmapToFrame.PixelHeight);
int a = (int) Math.Min(newSize.Height, newSize.Width);
Rect destRect = new Rect((int) ((_screenResolution.Width - _screenResolution.Height)/2), 0, a, a);
result.Blit(destRect, bitmapToFrame, sourceRect);
return result;
}
모든 것은 내가 사실 때문에 예외의 결과는 그때 다른 스레드 UI 스레드에서 WriteableBitmap 사용할 수 없다는 것을, UWP에 BackgroundTask에 그 코드를 삽입하려고 다음 잘 작동하지만.
내가 할 수 있는게 더 있습니까? 백그라운드 작업에서 실행해야합니다.
뿐만 아니라 라인 :
result.Blit(destRect, bitmapToFrame, sourceRect);
실제로 내가 사용 할 수 없을 것입니다 WriteableBitmapEx 확장자를 사용하고 있습니다. 다른 방법이라도? 배경 작업 스레드에서 비트 맵을 조작하는 방법을 실제로 보지 못합니다. 나는 여기서 조용히 빠져있다. 나는 심지어 openCV 라이브러리를 사용하려고 생각해 왔으며 C++에서 그렇게했습니다. 문제가 해결 되었습니까?
this SO Q&A도 있는데, 이는 배경 작업을 XamlRenderingBackgroundTask class에서 가져와야한다고 언급합니다. 어떻게해야합니까?
내 작업이 봉인 된 클래스 인 경우 어떻게 상속합니까? 나는 그것을 얻지 않는다. – pijemcolu
당신은 * 당신의 일을 상속받지 않습니다. 귀하의 작업은 XamlBackgroundRenderingTask에서 상속됩니다. – AlexDrenea