У меня есть необработанные данные в формате пользовательского изображения (canot be changed), который хранится в главном порядке столбца (после некоторых двоичных данных заголовка). Я прочитал файл в байт [], названный «imageDataBytes».WPF WritableBitmap с вращением (от столбца Major до RowMajor)
int XSize = 1280; // Really the height of the image
int YSize = 2048; // Really the width of the image
WriteableBitMap myImage = new WritableBitmap(XSize, YSize, 96, 96, PixelFormats.Gray16, null)
System.Windows.Int32Rect rect = new System.Windows.Int32Rect(0, 0, XSize , YSize);
myImage.WritePixels(rect, customImage.imageDataBytes, stride, customImage.imageOffset);
Теперь я показываю это в XAML с
<Image Grid.Column="0" Grid.Row="1" Cursor="Cursor1.cur"Source="{Binding myImage}" Stretch="None"/>
Мне нужно, чтобы получить изображение поворачивается (для коррекции колонки основного порядка в потоковом, но я не могу найти преобразование массива для Byte [] похож на НПЭ в C# (и у меня нет IPP здесь). и поворот изображения из XAML перемещает изображение повсюду (а не вращается вокруг центра).
<Image ... // From above>
<Image.RenderTransform>
<RotateTransform CenterX="0.5" CenterY="0.5" Angle="-90"/>
</Image.RenderTransform>
</Image>
Что n Я делаю? Я пропускаю преобразования в байте [] где-то? Почему RotateTransform перемещает изображение, когда центр установлен на 0,5?
Обратите внимание, что это должно быть как можно быстрее, это явно большое изображение, и я пытаюсь отобразить его на частоте 10 Гц +, поэтому исключение из массива байтов для цикла исключается из области возможного.
Спасибо, как всегда
~ TMII
Это была комбинация этого и моей собственной глупости. Я перепутал CenterX/CenterY с RenderTransformOrigin, и я указал, что изображение намного больше, чем машина, в которой я сейчас работаю над поддержкой. – Toymakerii