![]() |
|
#16
|
|||
|
|||
![]() Я же тебе написал, что надо использовать TPaintBox для вывода.
1. Заводишь буферный битмап (TBitmap). В него формируется картинка, которая будет выводится на экран. 2. В PaintBox.OnPaint просто делаешь копирование изображения из буфера. 3. Все эффекты реализуются как отрисовка в цикле соотв. шага преобразования на буферном битмапе с последующим обновлением PaintBox. Как реализовать эф. мозаики, например. Есть: Код:
TMyForm = class(TForm) Buf : TBitmap; // buffer PaintBox : TPaintBox; // screen Тогда эффект будет примерно так (очень схематично, просто для понимания): Код:
procedure TMyForm.DoEffect(AFileName : String); var Pic : TPicture; N, R, C, X, Y : Integer; begin Pic := TPicture.Create; Pic.LoadFromFile(AFileName); For I := 1 To 100 Do // 100 parts - matrix 10x10 Begin // Here is just macro code to show how to do this N := Random(100)+1; // Cell number in the matrix C := N div 10; // Col number R := N mod 10; // Row number X := C * 50; // each cell is 50x50 pixels Y := R * 50; Bitmap.Canvas.CopyRect(Pic.Graphic,Rect(X,Y,X+50,Y+50)); PaintBox.Redraw; End; Pic.Free; точно не помню как выглядит этот метод - Bitmap.Canvas.CopyRect(X,Y,Pic.Graphic,Rect(X,Y,X+ 50,Y+50)); Суть - копирует нужный кусочек изображения из одной картинки на другую. Тебе так же потребуется сделать так, что-бы размеры картинок совпадали (или вычислять изменения размеров/координат), но это уже детали. |
#17
|
||||
|
||||
![]() На скорую руку от скуки на работе накидал слайдшоу с несколькими примитивными эффектами. link
Эффекты: 1. Никаких 2. Выезд слева 3. Выезд справа 4. Выезд сверху 5. Выезд снизу 6. Альфа 7. Горизонтальные жалюзи 8. Вертикальные жалюзи Грамотно поставленный вопрос содержит не менее 50% ответа. Грамотно поставленная речь вызывает уважение, а у некоторых даже зависть. Последний раз редактировалось dr. F.I.N., 11.10.2012 в 17:04. |
Этот пользователь сказал Спасибо dr. F.I.N. за это полезное сообщение: | ||
cybervampire (11.10.2012)
|
#18
|
||||
|
||||
![]() Ну, как обещал, сделал. Только твой проект немног переделать пришлось.
Чет с мозаикой только не разобрался, сделал аналог (в худшую сторону). С тем же успехом можешь использовать пример dr. F.I.N., у него менее требовательно к процессору (в случае небольших размеров изображения). |
Этот пользователь сказал Спасибо YVitaliy за это полезное сообщение: | ||
cybervampire (11.10.2012)
|
#19
|
||||
|
||||
![]() Исправил ссылку.
Добавлены эффекты: 9. Появление снаружи 10. Появление изнутри 11. Мозайка 12. Горизонтальное перемешивание 13. Вертикальное перемешивание Цитата:
1. Ищем все Жипеги 2. Грузим в память 3. Конвертим их в БМП 4. Уменьшаем до размера отображения Если увеличить размеры формы (вчастности пейнтбокса), то на производительности это не отразится (на столько чтоб стало заметно глазу). Только в случае Альфа-эффекта. Там пробег по всем точкам идет, хоть и через сканлайн. В остальном - ничего нагружающего проц нету. Так что работает шустро :-P Грамотно поставленный вопрос содержит не менее 50% ответа. Грамотно поставленная речь вызывает уважение, а у некоторых даже зависть. Последний раз редактировалось dr. F.I.N., 11.10.2012 в 18:34. |
Этот пользователь сказал Спасибо dr. F.I.N. за это полезное сообщение: | ||
cybervampire (11.10.2012)
|
#20
|
|||
|
|||
![]() Огромное спасибо всем кто откликнулся. буду смотреть, делать по своему, если что будет непонятно напишу еще)))
|
#21
|
||||
|
||||
![]() Цитата:
![]() ![]() ![]() ![]() |
#23
|
||||
|
||||
![]() Цитата:
![]() помещаются в форму, центр в нижнем правом углу - еле видно. >offtop Интересные кнопки. Сейчас создам тему наверное, чтоб подсказали, где найти изображения (текстуры) для элементов интерфейса. Хочу сделать GUI в OpenGL, но воображения самому нарисовать не хватает/руки кривые. |
#24
|
||||
|
||||
![]() А чему там "жрать" - BitBlt в основном.
Это обычный ToolBar с градиентной заливкой. Je venus de nulle part 55.026263 с.ш., 73.397636 в.д. Последний раз редактировалось angvelem, 11.10.2012 в 22:34. |
#25
|
|||
|
|||
![]() Цитата:
F.I.N., можешь сырцы сюда выложить, думал прикрутить к своей проге такие же фичи, но все руки не доходили... ЗЫ. zalil у меня с работы закрыт ![]() |
#26
|
||||
|
||||
![]() Цитата:
Грамотно поставленный вопрос содержит не менее 50% ответа. Грамотно поставленная речь вызывает уважение, а у некоторых даже зависть. |
#27
|
|||
|
|||
![]() Все, спасибо. Я из дома скачал. Буду посмотреть...
|