1
我很難讓捕獲的圖像正確旋轉,bitmapencoder類似乎沒有做任何事情。Windows Phone 8.1媒體捕獲旋轉不正確
private async Task CapturePhoto()
{
ImageEncodingProperties pIEPEncoder = ImageEncodingProperties.CreateJpeg();
InMemoryRandomAccessStream pIMSCapture = new InMemoryRandomAccessStream();
using (pIMSCapture)
{
await cMCeCapture.CapturePhotoToStreamAsync(pIEPEncoder, pIMSCapture);
pIMSCapture.Seek(0);
BitmapDecoder pBDrDecoder = await BitmapDecoder.CreateAsync(pIMSCapture);
BitmapEncoder pBErEncoder = await BitmapEncoder.CreateForTranscodingAsync(pIMSCapture, pBDrDecoder);
pBErEncoder.BitmapTransform.InterpolationMode = BitmapInterpolationMode.Fant;
pBErEncoder.BitmapTransform.Rotation = ConvertDegreesToBitmapRotation(cIntRotationDegrees);
await pBErEncoder.FlushAsync();
BitmapImage pBIeCapture = new BitmapImage();
pIMSCapture.Seek(0);
await pBIeCapture.SetSourceAsync(pIMSCapture);
CaptureImage.Source = pBIeCapture;
CaptureImage.Stretch = Stretch.Uniform;
CaptureImage.Width = LayoutRoot.ActualWidth;
CaptureImage.Height = LayoutRoot.ActualHeight;
}
await CleanupCameraAsync();
}
任何想法如何解決這個問題?相機應用程序接口似乎是我的遲到,因此我很沮喪地得到任何我想要的東西。
只是FYI,我可以設置pBErEncoder.BitmapTransform.Rotation值爲任何東西,它總是看起來一樣。順時針旋轉90度。 – Nick
好吧我現在有更多的補充,旋轉和翻轉似乎在Windows 8.1桌面上完全不同。如果我在轉碼之前將流設置爲0,旋轉將不起作用,翻轉會損壞圖像。 如果我在轉碼之前不尋求0,則旋轉將工作,但翻轉會產生「未找到組件」異常。我會做一個小項目來證明這個問題。在目前看來,我不可能使用運行Windows 8.1的Surface Pro 3上的位圖編碼器翻轉圖像,它會破壞或拋出異常。 – Nick