![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Форумчанин
Регистрация: 23.12.2014
Сообщений: 220
|
![]()
Есть ли какие быстрые способы в делфи отразить по вертикали, горизонтали, перевернуть изображение на 90, 180 градусов, кроме как попиксельная перерисовка?
|
![]() |
![]() |
![]() |
#2 |
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
![]()
Есть конечно. Работа с канвой в памяти, а только потом ее отрисовка.
Или есть еще двойная буфферизация. кажется компонент Image этим обладает. Изображение на момент изменения блокируется вызовом спецметодов (не помню их название, что-то типа BeginUpdate), меняется без перерисовки, после чего блок снимается и рисунок выводится на экран уже измененным. Что правда тут я могу путать, ибо с Делфи не работал давненько, и по большему для такого использую отдельный объект TCanvas.
I'm learning to live...
|
![]() |
![]() |
![]() |
#3 |
personality
Старожил
Регистрация: 28.04.2009
Сообщений: 2,899
|
![]()
Флип по осям - тут
Поворот на 180 - тоже самое, что одновременный флип и по горизонтали и по вертикали. Поворот на 90 не подскажу.. TBitmap.ScanLine вестимо, но Вам, я понял, попиксельно не хотелось... Ну этот способ быстрый, если что. Если есть большое желание, то стоит взять профессиональную библиотеку. Могу посоветовать FastLib - задачи уровня видеокарты решает на процессоре, а интерфейс близок к привычному канвасу. Ну и, понятное дело, всегда есть варианты с огл/дх. |
![]() |
![]() |
![]() |
#4 |
Форумчанин
Регистрация: 23.12.2014
Сообщений: 220
|
![]()
phomm
Так и непонял куда в коде вставлять Image, я хотел с Image1 в Image2 отобразить в перевернутом положении, но не отобразилось ни как. |
![]() |
![]() |
![]() |
#5 |
personality
Старожил
Регистрация: 28.04.2009
Сообщений: 2,899
|
![]()
Имхо, от имеджей надо отказываться полностью.
Лучше брать сразу буферный битмап (обычно размером с экран/клиентскую_часть_формы), и на него врисовывать по нужным координатам битмапы всех объектов ( обычно стоит завести некую структуру из битмапа, координат и прочих свойств объектов), и так каждый такт игры (хотя, конечно, есть более экономичные средства, но пока не об экономии речь), полностью нарисованную картинку в буфбитмапе единожды рисовать на форму через канвас. Ранее в этой же цепочке действий должен находиться обработчик игрового такта - изменение свойств всех объектов, в т.ч. координат. Все эти принципы, опять же, давно разжёваны, Вы бы потрудились изучить учебные темы в разделе создания игр. А по теме - функция, которую я привёл - как раз и работает с битмапами, и для описанного способа она вполне неплоха, для имейджей же придётся делать пачку телодвижений - создавать битмап, копировать картинку из имейджа в созданный битмап, кидать его в функцию, и после флипа снова записывать в имейдж. Правда, я не могу сказать с гарантией, что не будет срабатывать подход в лоб: Flip(True, True, MyImage1.Picture.Bitmap), я только подозреваю, что не будет, почему и говорю, что нужны телодвижения. Последний раз редактировалось phomm; 24.01.2015 в 15:21. |
![]() |
![]() |
![]() |
#6 | |
Форумчанин
Регистрация: 27.10.2014
Сообщений: 594
|
![]() Цитата:
Код:
|
|
![]() |
![]() |
![]() |
#7 |
Форумчанин
Регистрация: 23.12.2014
Сообщений: 220
|
![]()
Вот еще нашел хороший способ:
Код:
Тут главное с какой по какую координату определить, и переуказать если изображение не квадратное и мы поворачиваем на 90 градусов свойства- Width; Height; вторичного прямоугольника. Последний раз редактировалось NIKOLAYY2; 25.01.2015 в 14:26. |
![]() |
![]() |
![]() |
#8 |
Новичок
Джуниор
Регистрация: 08.10.2016
Сообщений: 1
|
![]() Код:
Последний раз редактировалось Arigato; 12.10.2016 в 13:20. |
![]() |
![]() |
![]() |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Зеркальное отражение изображения | Neketek | Общие вопросы по Java, Java SE, Kotlin | 1 | 06.05.2013 15:02 |
Отражение данных с термодатчиков | SokolGL | Фриланс | 5 | 14.03.2012 11:46 |
Зеркальное отражение | V@mpir | Общие вопросы Delphi | 3 | 15.09.2009 22:27 |
Отражение луча | Illusionist | Общие вопросы Delphi | 3 | 30.05.2009 23:20 |
Отражение рисунка от стенок | Надежда.. | Мультимедиа в Delphi | 14 | 20.12.2008 23:24 |