Перейти к содержанию
Fire Monkey от А до Я
  • 0

Трансформация TImage по опорным точкам.


Serg Sib

Вопрос

Опубликовано (изменено)

RAD 10.2.3 Delphi , Win 10x64 Pro 1803

Подскажите, с помощью чего можно осуществить трансформацию изображения по опорным точкам (по углам)?
Возможно, что не напрямую сам TImage, а при помощи работы с Canvas на его Bitmap.

Пока удалось добиться подобной трансформации, заполнив нужным изображением полигон и, меняя координаты его вершин, делать нужные корректировки.

var MyBrushBitmap: TBrushBitmap;

  Image1.Bitmap.Canvas.Fill.Kind := TBrushKind.Bitmap;
  Image1.Bitmap.Canvas.Fill.Bitmap := MyBrushBitmap;
  Image1.Bitmap.Canvas.Fill.Bitmap.WrapMode := TWrapMode.TileStretch;

  Image1.Bitmap.Canvas.FillPolygon(MyPolygon, 50);

Однако, изображение частично обрезается при этом.

В интернете поиском находил пример подобной трансформации на VCL, (перетаскиванием вершин мышью), но не смог приспособить этот пример для платформы FireMonkey.

Изменено пользователем Serg Sib
Не была указана ОС

Рекомендуемые сообщения

  • 0
Опубликовано

Да, этот эффект - TPerspectiveTransformEffect я и использовал, когда сделал первый вариант приложения.
Но у этого способа есть некоторые недостатки:
1) Применяется этот эффект немного своеобразно - нужно приловчиться, прежде чем научиться подстраивать Image под нужные границы (приложение используется в качестве мэппинга на многопроекторных системах).
2) Есть ограничение на применение количества фильтров к одному визуальному элементу оформления. А хотелось бы, чтобы еще были какие-то переходы между изображениями, когда они меняются на экране. То есть это можно сделать, наверное, но уже с усложнением кода и добавлением каких-то вспомогательных объектов.

  • 0
  • Администраторы
Опубликовано
48 минут назад, Serg Sib сказал:

Есть ограничение на применение количества фильтров к одному визуальному элементу оформления.

Что за ограничение? Можно же фильтр применять программно на TBitmap без использования компонента. TPerspectiveFilter.

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
К сожалению, ваш контент содержит запрещённые слова. Пожалуйста, отредактируйте контент, чтобы удалить выделенные ниже слова.
Ответить на вопрос...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...