Проблема при рисовании повернутого изображения wpfC#

Место общения программистов C#
Ответить
Anonymous
 Проблема при рисовании повернутого изображения wpf

Сообщение Anonymous »

У меня есть этот код для рисования изображения из видео... изображение нужно повернуть:

Код: Выделить всё

 int rotation = image.RotationAngle;

MediaPlayer mediaPlayer = new MediaPlayer();
var drawingVisual = new DrawingVisual();
Stopwatch sw = new Stopwatch();
mediaPlayer.ScrubbingEnabled = true;
mediaPlayer.Open(new Uri(image.Key));
mediaPlayer.MediaFailed += (sender, e) => OnMediaFailed(sender, e, dc, image, ref rect);
sw.Start();
while (!(mediaPlayer.NaturalVideoWidth > 0 && !image.IsVideoProcessingError))
{
if (sw.ElapsedMilliseconds > 3000)
{
image.IsVideoProcessingError = true;
break;
}
System.Threading.Thread.Sleep(100);
}

var duration = mediaPlayer.NaturalDuration.TimeSpan.Ticks;
mediaPlayer.Position = new TimeSpan(Convert.ToInt64(duration / 5));

var renderTargetBitmap = new RenderTargetBitmap(mediaPlayer.NaturalVideoWidth, mediaPlayer.NaturalVideoHeight, 96, 96, PixelFormats.Default);

using (var drawingContext = drawingVisual.RenderOpen())
{
var rotateTransform = new RotateTransform(rotation, mediaPlayer.NaturalVideoWidth / 2, mediaPlayer.NaturalVideoHeight / 2);
drawingContext.PushTransform(rotateTransform);
drawingContext.DrawVideo(mediaPlayer, new Rect(0, 0, mediaPlayer.NaturalVideoWidth, mediaPlayer.NaturalVideoHeight));
}

renderTargetBitmap.Render(drawingVisual);

var pixels = new uint[mediaPlayer.NaturalVideoWidth * mediaPlayer.NaturalVideoHeight];

renderTargetBitmap.CopyPixels(pixels, mediaPlayer.NaturalVideoWidth * 4, 0);

im.Image = renderTargetBitmap;

mediaPlayer.Close();
mediaPlayer = null;

_dc.DrawImage(im.Image, rect);
Я хочу, чтобы изображение заполнило мой прямоугольник, но при повороте оно растягивается только по вертикали, а не по горизонтали.
Изображение

Если не повернуто, отображается правильно (растянуто по вертикали и горизонтали):
Изображение

Что я могу сделать? Спасибо!

Подробнее здесь: https://stackoverflow.com/questions/791 ... icture-wpf
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»