gpt4 book ai didi

c# - 如何在 Windows Phone 8.1 中以正确的旋转、宽高比拍摄照片? (使用媒体捕捉)

转载 作者:行者123 更新时间:2023-11-30 14:09:52 25 4
gpt4 key购买 nike

你们中的任何人都可以提供有关如何使用 MediaCapture 元素拍摄和保存照片的实际工作示例。我尝试在 MSDN 中寻找实际的解决方案,但这些解释或代码都没有以简单的方式实际描述该过程。

我需要拍照并将其保存到我的图库中(我需要为此显示正确的预览),但是现在它已旋转 90 度,我无法调整它。我已经尝试设置视频预览的旋转并且它适用于预览但是当我这样做时宽高比完全错误并且保存的图像不正确。

第 9 channel 的例子也很糟糕。我只需要一个简单的实现...

我使用的是运行时应用程序,而不是适用于 Windows Phone 8.1 的 silverlight 应用程序。

最佳答案

我遇到了同样的问题,SetRecordRotation 对我不起作用。我找到了解决方法 - 拍照并旋转图像,效果很好。我使用这样的方法:

private async void CapturePhoto()
{
string photoPath = string.Empty;
ImageEncodingProperties format = ImageEncodingProperties.CreateJpeg();

using (var imageStream = new InMemoryRandomAccessStream())
{
await MediaCapture.CapturePhotoToStreamAsync(format, imageStream);

BitmapDecoder dec = await BitmapDecoder.CreateAsync(imageStream);
BitmapEncoder enc = await BitmapEncoder.CreateForTranscodingAsync(imageStream, dec);

enc.BitmapTransform.Rotation = BitmapRotation.Clockwise90Degrees;

await enc.FlushAsync();

StorageFolder folder = ApplicationData.Current.LocalFolder;
StorageFile capturefile = await folder.CreateFileAsync("photo.jpg", CreationCollisionOption.GenerateUniqueName);
photoPath = capturefile.Name;

using (var fileStream = await capturefile.OpenAsync(FileAccessMode.ReadWrite))
{
try
{
await RandomAccessStream.CopyAsync(imageStream, fileStream);
}
catch {}
}
}
}

我修改了 Marco Siccardi 撰写的如何在 Windows Phone 8.1 运行时应用程序中拍摄照片 文章中的代码示例 http://dotnet.dzone.com/articles/how-capture-photo-your-windows-0

关于c# - 如何在 Windows Phone 8.1 中以正确的旋转、宽高比拍摄照片? (使用媒体捕捉),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26620523/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com