Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Мультимедиа в Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 10.01.2008, 11:20   #1
Paul Hindenburg
Форумчанин
 
Аватар для Paul Hindenburg
 
Регистрация: 27.07.2007
Сообщений: 123
Радость Как быстро переверннуть(отразить) изображение?

нужно перевернуть изображение, файл загружается в image и по кнопке нужно чтобы изображение поворачиволось на 90 градусов. я делал по принципу транспонирования матрицы (менял местами столбцы и строки(tbitmap) - но это не очень рационально). Может знаете более быстрый способ поворота?
зы: размеры изображения гдето 2000х1500 точек
Ну что ж… Жизнь иногда такие фертеля выкидывает, что и фантасту не приснится…
Paul Hindenburg вне форума Ответить с цитированием
Старый 10.01.2008, 11:33   #2
mutabor
Телепат с дипломом
Старожил
 
Аватар для mutabor
 
Регистрация: 10.06.2007
Сообщений: 4,929
По умолчанию

Создать дополнительный битмап, сначала пустой. В него с помощью ScanLine копировать строку за строкой, только в нем это уже будут столбцы. После завершения отобразить дополнительный битмап, он теперь станет основным, а тот дополнительным.

Медленно это происходит из за медленного доступа к свойству Canvas.Pixels.
Если надо сделать быстрее, то вначале битмап можно скопировать в обычную матрицу of integer нужных размеров. В ней доступ будет намного быстрее.

По завершению поворота, попробовать передать указатель на эту матрицу в битмап (этот шаг на практике я не делал, но можно попробовать).
The future is not a tablet with a 9" screen no more than the future was a 9" black & white screen in a box. It’s the paradigm that survives. (Kroc Camen)
Проверь себя! Онлайн тестирование | Мой блог
mutabor вне форума Ответить с цитированием
Старый 10.01.2008, 12:51   #3
JTG
я получил эту роль
Старожил
 
Аватар для JTG
 
Регистрация: 25.05.2007
Сообщений: 3,694
По умолчанию

Отразить быстро можно через StrechBlt с отрицательными значениями

А повернуть на 90 (и ещё много чего) - библиотека FastDIB http://sourceforge.net/project/showf...roup_id=173551 ф-ция Rotate90CW
пыщь
JTG вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Нарисовать,стереть,повернуть,отразить в паскале! Барби Помощь студентам 2 23.04.2008 00:24
Дана матрица размера M*N.Зеркально отразить ее элементы Ильдар ХАЛИКОВ Паскаль, Turbo Pascal, PascalABC.NET 6 09.04.2008 22:22
Быстро и удобно! Shurik Hacker Софт 0 12.01.2008 12:54
Быстро получить цвет пикселя... prizrak1390 Мультимедиа в Delphi 4 09.01.2008 20:28