c# – 如何在Windows Phone 8.1中使用正确的旋转,宽高比拍摄照片
发布时间:2020-12-16 02:03:42 所属栏目:百科 来源:网络整理
导读:您是否可以使用MediaCapture元素提供有关如何拍摄和保存照片的实际工作示例.我曾尝试在MSDN中寻找实际的解决方案,但这些解释或代码都没有以简单的方式描述过程. 我需要拍照并将其保存到我的库(我需要为此显示正确的预览),但是现在它旋转了90度而我无法调整它
您是否可以使用MediaCapture元素提供有关如何拍摄和保存照片的实际工作示例.我曾尝试在MSDN中寻找实际的解决方案,但这些解释或代码都没有以简单的方式描述过程.
我需要拍照并将其保存到我的库(我需要为此显示正确的预览),但是现在它旋转了90度而我无法调整它.我已经尝试设置视频预览的旋转,它适用于预览,但是当我这样做时,宽高比全部错误,保存的图像不正确. 第9频道的例子也很糟糕.我只需要一个简单的实现…… 我使用运行时应用程序而不是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 Runtime应用程序中捕获照片的代码示例 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |