我正在使用Windows 8应用,并希望提示用户提供图片。
使用Windows Phone我会使用PhotoChooserTask,指定所需的像素高度和宽度,并且相机是可接受的输入法。
我发现在Windows 8中我需要使用CameraCaptureUI或FileOpenPicker来为用户提供类似的选项。我还需要使用FileOpenPicker手动处理生成的图像到所需的尺寸。 CameraCaptureUI内置了裁剪控件。
是否有可以使用的库或控件可以提供与Windows Phone PhotoChooserTask类似的功能?或者我可以访问CameraCaptureUI的裁剪控制部分吗?
具体来说,我想提示用户提供特定尺寸的图像。然后,他们可以从文件中选择图像或通过相机捕获新图像。一旦他们有了图像,他们就会看到一个用户界面,将其裁剪成我所需的尺寸。
答案 0 :(得分:1)
CameraCaptureUI是正确的方法。您可以指定照片捕获的属性,如本文档中所述:http://msdn.microsoft.com/en-us/library/windows/apps/windows.media.capture.cameracaptureui.photosettings
它将为用户提供一个很好的界面来拍摄照片并裁剪/调整它,就像在Windows Phone中一样!
// Takes a photo with specified settings.
function takePhoto() {
var captureUI = new Windows.Media.Capture.CameraCaptureUI();
captureUI.photoSettings.allowCropping = true;
captureUI.photoSettings.croppedAspectRatio.height = 3;
captureUI.photoSettings.croppedAspectRatio.width = 4;
captureUI.photoSettings.croppedSizeInPixels.height = 0;
captureUI.photoSettings.croppedSizeInPixels.width = 0;
captureUI.photoSettings.format = Windows.Media.Capture.CameraCaptureUIPhotoFormat.jpeg;
captureUI.photoSettings.maxResolution = Windows.Media.Capture.CameraCaptureUIMaxPhotoResolution.highestAvailable;
captureUI.captureFileAsync(Windows.Media.Capture.CameraCaptureUIMode.photo).then(function (capturedItem) {
if (capturedItem) {
document.getElementById("message").innerHTML = "User captured a photo."
}
else {
document.getElementById("message").innerHTML = "User didn't capture a photo."
}
});
}
答案 1 :(得分:1)
您可以为用户提供一个可供选择的按钮,然后允许他们选择相机,或者使用类似于Calisto中的菜单来存在。或者你可以给他们两个按钮。使用Windows 8,您可以通过电话获得更多的空间。
要直接转到图片,您可以设置FileOpenPicker的SuggestedStartLocation。这家酒店接受PickerLoctionId。您应该将其设置为PickerLoctionId.PicturesLibrary