Масштабирование и центрирование изображения с помощью Graphics.TransformsC#

Место общения программистов C#
Ответить Пред. темаСлед. тема
Anonymous
 Масштабирование и центрирование изображения с помощью Graphics.Transforms

Сообщение Anonymous »

Я пытаюсь загрузить изображение на графическую поверхность пользовательского элемента управления. У меня нет проблем с этим. Однако результат никогда не бывает таким, как ожидалось. Изображение должно масштабироваться, чтобы достичь границы самой длинной оси и находиться в центре оставшейся оси. Я не могу найти никакой информации, которая бы хорошо описывала эти отношения и позволяла бы полностью понять, что происходит на самом деле.
Используя что-то вроде:

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

private void ZoomControl_Paint(object sender, PaintEventArgs e)
{
var g = e.Graphics;
g.Transform = new Matrix();
Zoom = 0.5;
float X = dx;
float Y = dy;
g.TranslateTransform(X, Y);
g.ScaleTransform(zoom, zoom);
g.DrawImage(objBitmap, 0,0);
}
Я пробовал много комбинаций, но все это лишь доказывает, что я не знаю, как работает преобразование и какова природа его устойчивости.
Я могу правильно масштабируйте, используя методы изображения, и рисуйте нормально на элементе управления для идеального решения, но это не дает хорошей отправной точки для масштабирования и панорамирования.
Ожидаемый результат
Этот подход обеспечивает лучшую анимацию на этапах перетаскивания и масштабирования, а вдохновение для этой попытки было взято здесь https://github.com/AliAlAali/ZoomPanControl. К сожалению, в этом примере не используется и не начинается идеально масштабированное и центрированное изображение.

Подробнее здесь: https://stackoverflow.com/questions/787 ... transforms
Реклама
Ответить Пред. темаСлед. тема

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

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

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

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

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

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