Проблема при рисовании повернутого изображения 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

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