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

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

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 20.11.2006, 01:52   #1
sandro
Новичок
Джуниор
 
Регистрация: 20.11.2006
Сообщений: 2
Восклицание помогите, пожайлуста!(графика)

Задано изображение в .bmp формате, которое сохранено в фале.
Отобразить на экране это изображение путем случайного вибору точок из исходного файла
и перенести их на экран из задержкой каждого пикселя или группы пикселей.
Предусмотреть предохранение повторных переносов.
sandro вне форума Ответить с цитированием
Старый 20.11.2006, 16:43   #2
selenux
Пользователь
 
Регистрация: 14.11.2006
Сообщений: 23
По умолчанию

Если это нужно только для красоты, то лучше не делать анимацию таким образом. Апишку AnimateWindow еще никто не отменял.
selenux вне форума Ответить с цитированием
Старый 20.11.2006, 19:18   #3
Alar
Александр
Администратор
 
Аватар для Alar
 
Регистрация: 28.10.2006
Сообщений: 17,501
По умолчанию

самый простой выход - создание двухмерного массива. в одной ячейке массива - одна точка. для отображения на канву брать данные из массива.
Alar вне форума Ответить с цитированием
Старый 21.11.2006, 08:54   #4
sandro
Новичок
Джуниор
 
Регистрация: 20.11.2006
Сообщений: 2
Лампочка раскажите рожайлуста поподробней!!!

Раскажите рожайлуста поподробней, а то я что то не понял!
Вот я сделал набросок этой же программы, проверьтк пожайлуса(может кто-то знает как лучше сделать)
Цитата:
procedure ShowPicture( path: string );
var
bm: TBitmap;
p: PPoint;
l: TList;
i, j: integer;
begin
bm := TBitmap.Create;
bm.LoadFromFile( path );

l := TList.Create;
for i := 0 to bm.Width do
for j := 0 to bm.Height do
begin
New( p );
p^.X := i;
p^.Y := j;
l.Add( p );
end;

Randomize;
while l.Count > 0 do
begin
i := Random( l.Count );
p := l[i];
Form1.Canvas.Pixels[p^.X,p^.Y] := bm.Canvas.Pixels[p^.X,p^.Y];
l.Delete( i );
Application.ProcessMessages;
Form1.Caption := IntToStr( l.Count );
end;

l.Free;
bm.FreeImage;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
if OpenDialog1.Execute then
ShowPicture( OpenDialog1.FileName );
end;
sandro вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
помогите пожайлуста Руслан $ Помощь студентам 3 20.02.2008 21:20
помогите пожайлуста с задачами hipi6 Помощь студентам 5 26.10.2007 20:44
Помогите пожайлуста!!!! _VLAD_ Помощь студентам 2 17.05.2007 12:11