Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > Графика и игры
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

 
 
Опции темы Поиск в этой теме Опции просмотра
  #16  
Старый 11.10.2012, 02:32
lmikle lmikle вне форума
Модератор
 
Регистрация: 17.04.2008
Сообщения: 8,020
Версия Delphi: 7, XE3, 10.2
Репутация: 49089
По умолчанию

Я же тебе написал, что надо использовать 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));
Суть - копирует нужный кусочек изображения из одной картинки на другую.

Тебе так же потребуется сделать так, что-бы размеры картинок совпадали (или вычислять изменения размеров/координат), но это уже детали.
Ответить с цитированием
 


Delphi Sources

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

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 01:55.


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2023

ВКонтакте   Facebook   Twitter