Как лучше всего конвертировать Media.Matrix в Drawing2D.Matrix - PullRequest
1 голос
/ 16 апреля 2009

Мне нужно преобразовать WPF Media.Matrix в Windows Forms Drawing2D.Matrix, поэтому я сделал следующее:

  public static System.Drawing.Drawing2D.Matrix ConvertToDrawing2DMatrix( Matrix matrix)
  {
     return new System.Drawing.Drawing2D.Matrix((float)matrix.M11, 
                                                (float)matrix.M12, 
                                                (float)matrix.M21, 
                                                (float)matrix.M22,
                                                (float)matrix.OffsetX, 
                                                (float)matrix.OffsetY);
  }

и задавался вопросом, был ли это лучший подход.

Ответы [ 3 ]

0 голосов
/ 15 июля 2009

Я бы сказал, что это лучший способ. Матрица System.Drawing хранится в неуправляемой памяти, а матрица WPF представляет собой структуру в управляемом стеке, поэтому любой хитрость при выполнении копирования блока потребует некоторого небезопасного кода для очень небольшого, если таковое имеется, улучшения perf.

0 голосов
/ 15 июля 2009

Как уже говорили другие, это, вероятно, лучший способ. Я просто хотел добавить, что в зависимости от версии .NET и вашей политики кодирования вы можете добавить «this» к сигнатуре метода и сделать его методом расширения для более легкого доступа, например:

using Drawing2DMatrix = System.Drawing.Drawing2D.Matrix;
public static Drawing2DMatrix ConvertToDrawing2DMatrix(this Matrix matrix) {...}

Тогда вы можете назвать это так:

Drawing2DMatrix newMatrix = myMediaMatrixInstance.ConvertToDrawing2DMatrix();

Просто предложение.

0 голосов
/ 16 апреля 2009

Если ваш код работает нормально, то я бы сказал, что это, вероятно, лучший метод в вашем случае. Я просмотрел весь Google, пытаясь найти способ сделать это, и не мог бы найти стороннюю библиотеку, которую мог бы Кажется, не найти способ.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...