2012-03-27 2 views
1

나는 시장에서 많은 응용 프로그램을 가지고 있으며, 지금까지는 디코딩 할 수없는 문제를 해결하기 위해 기능을 변경하거나 추가 마일을 사용할 수있었습니다. 배경의 jpg를 WriteableBitmap으로 변환합니다.WP7의 백그라운드에서 jpg 디코딩

나는이 문제를 "해결"하는 좋은 방법을 생각할 수없는 상황을 찾고 있습니다. MediaLibrary에서 얻은 이미지를 디코딩하고, 해상도를 관리 가능한 것으로 축소 (800x800)하고 잠재적으로 회전하여 로컬 스토리지에 저장해야합니다. 지금까지 가장 많은 시간이 걸리는 것은 (80 %) 비트 맵을 800x800로 디코딩하는 것입니다. 700ms에서 1000ms 사이가 소요됩니다. 사용자는 시작시 7-10 개의 이미지를 추가 할 수 있으며 이는 이미지 추가를 기다리는 ~ 10 초를 의미합니다.

나는이 문제를 천천히 해보려고했지만, 어떤 시점에서 파이퍼와 앱을 지불해야하고, 그 시점에서 ~ 1000ms 정도의 시간이 걸리고 경험은 좋지 않습니다.

대안이 있습니까? 배경 이미지를 어떻게 든로드하는 데 누락되었습니다.

(CreateOptions.BackgroundCreation 나를 위해 좋은없는 이유에 대해 참고 : 내가를 만들 수있는 무엇을해야하는지에 대한 너무 큰 당신은 단지 그것을 사용하려면 대단한 BitmapImage에 이미지를로드,하지만 격리 된 저장소에서 복사).

+0

그냥 백그라운드 스레드로 작업을 이동하려고? – earthling

+0

예 - 배경 스레드에서 JPG (PictureDecoder.DecodeJpeg (stream, width, height)와 같은)를 디코드 할 수 있기를 원합니다. –

답변

0

불행히도 BitmapImage의 생성자 내의 내용은 UI 스레드에서 실행해야합니다. :(

나는 해결 방법을 발견하지 않았습니다뿐만 아니라 당신이 주장하는대로 디코딩 한 무엇이든을 보지 못했다.

+0

네, 그게 요지입니다 (WriteableBitmap에 대해서 이야기하고 있었지만 UIElement이기도합니다. 당신이 설명하는 것과 같은 문제). –