Программно отображаемое изображение CameraRoll, созданное с помощью CameraCaptureTask

Как описано в первом ответе этой темы, для WP8 задача захвата камеры автоматически сохраняет копию всех изображений, которые она создает, в Camera Roll. Если изображение сохранено таким образом, возможно ли программно отобразить изображение в приложении непосредственно из копии в "Фотопленке", не создавая вторую копию в таком месте, как "Изолированное хранилище" или "Данные приложения"? Если это так, как бы вы получили указатель на местоположение Camera Roll этого недавно сохраненного изображения?

Я хотел бы избежать множественных избыточных копий каждого изображения, если это возможно. И если использование копии в Camera Roll позволит мне использовать функциональность Camera Capture Task вместо прямой работы с Camera API, то это будет идеально для моих целей. Благодарю.

1 ответ

Решение

Если вам просто нужно местоположение изображения, оно указывается в свойстве OriginalFileName объекта PhotoResult, который вы получаете из события Completed.

Например, сделать снимок с помощью эмулятора выдает "C:\Data\Users\Public\Pictures\Camera Roll\WP_20140106_002.jpg"

Теперь, когда он у вас есть, вы можете отобразить его пользователю с помощью BitMapImage и установить его в качестве источника для изображения.

MyImage.Source = new BitmapImage(new Uri("C:\\Data\\Users\\Public\\Pictures\\Camera Roll\\WP_20140106_002.jpg", UriKind.Absolute));

Если вам нужно изображение сразу, вы получите его из свойства ChosenPhoto объекта PhotoResult.

Другие вопросы по тегам