2014-11-03 8 views
-1

Я повернул изображение с пейзажной ориентации на портрет.Как создать новое растровое изображение после поворота

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

Что мне нужно сделать?

// create new photo size: 
if (b_IsRotated) 
{ 
    var encoder = await BitmapEncoder.CreateAsync(BitmapEncoder.PngEncoderId, fileStream); 
    encoder.SetPixelData(
     BitmapPixelFormat.Bgra8, 
     BitmapAlphaMode.Ignore, 
     525, 
     700, 
     DisplayInformation.GetForCurrentView().LogicalDpi, 
     DisplayInformation.GetForCurrentView().LogicalDpi, 
     pixelBuffer.ToArray()); 

    await encoder.FlushAsync(); 
} 

_bitmap = new BitmapImage(); 
_bitmap.SetSource(fileStream); 
+0

Вы не знаете ни одного кода, который вращает изображение. Пожалуйста, укажите хороший пример кода. Если ротация является материальным элементом вашего вопроса, пожалуйста, укажите код, который это выполнит. В противном случае отредактируйте свой вопрос, чтобы удалить упоминания о вращении. См. Http://stackoverflow.com/help/mcve –

ответ

0

Размытость, вероятно, связана с изменением размера растрового изображения, а не с вращением.

Вы можете управлять интерполяцией растровых пикселей, установив BitmapTransform property BitmapEncoder. Это позволит установить как Rotation, так и InterpolationMode. По умолчанию BitmapEncoder выберет InterpolationMode, который подчеркивает производительность по качеству, но если ваша потребность в качестве, а не в производительности, вы можете выбрать другой.

Смежные вопросы