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

Delphi Sources



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

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 04.03.2010, 13:41
Аватар для movnet
movnet movnet вне форума
Начинающий
 
Регистрация: 24.07.2008
Сообщения: 127
Версия Delphi: Delphi 7
Репутация: 23
По умолчанию Вопрос по TImage?

Допустим есть TImage размером 256х256 в него загрузено изоражение 1024х768. Как двигать попиксельно изображение внтури Image?
Ответить с цитированием
  #2  
Старый 04.03.2010, 14:18
Аватар для NIch
NIch NIch вне форума
Продвинутый
 
Регистрация: 02.06.2008
Адрес: Бендеры ПМР
Сообщения: 754
Репутация: 2446
По умолчанию

Что ты имеешь ввиду???
Анимацию???
Или просто в Image видно только часть изображения???
Посмотри на функцию BitBlt...удобна для создания спрайтов...и не только...
Копирует часть изображения в другое...
__________________
В начале был Бит, потом Байт и только потом появилось Слово...

Последний раз редактировалось NIch, 04.03.2010 в 14:26.
Ответить с цитированием
  #3  
Старый 04.03.2010, 14:22
Аватар для movnet
movnet movnet вне форума
Начинающий
 
Регистрация: 24.07.2008
Сообщения: 127
Версия Delphi: Delphi 7
Репутация: 23
По умолчанию

нет. не анимацию. нужно загружать в Image карту города и спомощю мышки передвигатся по ней.
Ответить с цитированием
  #4  
Старый 04.03.2010, 14:40
Аватар для NIch
NIch NIch вне форума
Продвинутый
 
Регистрация: 02.06.2008
Адрес: Бендеры ПМР
Сообщения: 754
Репутация: 2446
По умолчанию

Обязательно в Image???
Код:
var
 Map : TBitMap;
begin
 Map := TBitMap.Create;
 Map.LoadFromFile('Map.bmp');
 BitBlt (Form1.Canvas.Handle,//на какую форму вывести изображение
          100, 100, 256, 256, //2 координаты и размеры изображения
          Map.Canvas.Handle,//какую картинку вывести
          0, 0,//координаты начала прямоугольника картинки должны изменяться
          SRCCOPY);//способ копирования изображения , бывают разные 
end;
Что должно получится...
Выводится изображение способом SRCCOPY на Form1 размером 256х256 по координатам 100, 100, взятое из Map. При этом из Map берется только кусок 256х256 начиная с 0, 0 (в данном случае)...
При движении мыши ты должен пересчитывать последние координаты...
__________________
В начале был Бит, потом Байт и только потом появилось Слово...
Ответить с цитированием
  #5  
Старый 04.03.2010, 18:34
Аватар для movnet
movnet movnet вне форума
Начинающий
 
Регистрация: 24.07.2008
Сообщения: 127
Версия Delphi: Delphi 7
Репутация: 23
По умолчанию

Большое спасибо NIch!!! Буду пробывать.
Если не сложно еще показать маленький пример как обрабатывать движение мыши. Только учусь работать с графикой...
Ответить с цитированием
  #6  
Старый 04.03.2010, 19:21
Аватар для NIch
NIch NIch вне форума
Продвинутый
 
Регистрация: 02.06.2008
Адрес: Бендеры ПМР
Сообщения: 754
Репутация: 2446
По умолчанию

Есть такие события как MouseMove, MouseUp, MouseDown...
Обрабатывай эти события...У них в параметрах есть переменные X и Y мыши...
Поэкспериментируй с таким кодом и все поймешь...
Код:
onMouseDown(X, Y ...) или Move или Up и т.д.
begin
 ShowMessage('X = '+IntToStr(X)+' Y = '+IntToStr(X));
end;
Для твоего варианта, считывай изменение положения мыши и изменяй пропорционально положение считывание изображения...
__________________
В начале был Бит, потом Байт и только потом появилось Слово...
Ответить с цитированием
  #7  
Старый 05.03.2010, 01:06
Аватар для Страдалецъ
Страдалецъ Страдалецъ вне форума
Гуру
 
Регистрация: 09.03.2009
Адрес: На курорте, из окна вижу теплое Баренцево море. Бррр.
Сообщения: 4,723
Репутация: 52347
По умолчанию

Зачем использовать TImage, если для работы с большими картинками специально сделан компонент TScrolBox.
__________________
Жизнь такова какова она есть и больше никакова.
Помогаю за спасибо.
Ответить с цитированием
  #8  
Старый 05.03.2010, 10:08
Аватар для NIch
NIch NIch вне форума
Продвинутый
 
Регистрация: 02.06.2008
Адрес: Бендеры ПМР
Сообщения: 754
Репутация: 2446
По умолчанию

Может и вариант...А как его найти???
__________________
В начале был Бит, потом Байт и только потом появилось Слово...
Ответить с цитированием
  #9  
Старый 05.03.2010, 10:17
Asinkrit Asinkrit вне форума
Местный
 
Регистрация: 29.10.2009
Сообщения: 446
Репутация: 271
По умолчанию

А зачем его искать?))
Ответить с цитированием
  #10  
Старый 05.03.2010, 10:24
Аватар для NIch
NIch NIch вне форума
Продвинутый
 
Регистрация: 02.06.2008
Адрес: Бендеры ПМР
Сообщения: 754
Репутация: 2446
По умолчанию

Ну дык, как его на форму кинуть, где, в какой панели его взять???
Или это сторонний компонент???
Чуть позже...
Ага нашел, но ведь он не работает с изображениями, по сабжу нужно на него Image кидать размером с изображение...
__________________
В начале был Бит, потом Байт и только потом появилось Слово...

Последний раз редактировалось NIch, 05.03.2010 в 10:26.
Ответить с цитированием
  #11  
Старый 05.03.2010, 10:57
Asinkrit Asinkrit вне форума
Местный
 
Регистрация: 29.10.2009
Сообщения: 446
Репутация: 271
По умолчанию

Ну дык и в чем проблема в нем динамически image создать по размерам картинки, хотя у image-a насколько я помню есть свои проблемы при работе с большими картинками. В идеале здесь нужен компонент с буферизацией, тогда работать будет быстро и надежно)
Ответить с цитированием
  #12  
Старый 05.03.2010, 11:24
Аватар для movnet
movnet movnet вне форума
Начинающий
 
Регистрация: 24.07.2008
Сообщения: 127
Версия Delphi: Delphi 7
Репутация: 23
По умолчанию

Спасибо NIch буду пробывать твой вариант с BitBlt. А на счет Image то не обязательно просто ищу вариант как работать с картами. Возможно будут еще какие-то решения?
Ответить с цитированием
  #13  
Старый 05.03.2010, 11:28
Аватар для NIch
NIch NIch вне форума
Продвинутый
 
Регистрация: 02.06.2008
Адрес: Бендеры ПМР
Сообщения: 754
Репутация: 2446
По умолчанию

2 Asinkrit
Ну дык, а кто говорит, что есть какая то проблема???
Я вообще предложил выше отказаться от TImage и работать непосредственно с изображением и рисовать прямо на форме...
2 movnet
Кой какой опыт есть, если что обращайся, че нить придумаем...
__________________
В начале был Бит, потом Байт и только потом появилось Слово...

Последний раз редактировалось NIch, 05.03.2010 в 11:30.
Ответить с цитированием
  #14  
Старый 05.03.2010, 11:59
Аватар для movnet
movnet movnet вне форума
Начинающий
 
Регистрация: 24.07.2008
Сообщения: 127
Версия Delphi: Delphi 7
Репутация: 23
По умолчанию

NIch опыта работы с графикой практически 0. только начинаю вникать. Буду благодарен за любую помощь!!!
Ответить с цитированием
  #15  
Старый 05.03.2010, 21:41
Аватар для Страдалецъ
Страдалецъ Страдалецъ вне форума
Гуру
 
Регистрация: 09.03.2009
Адрес: На курорте, из окна вижу теплое Баренцево море. Бррр.
Сообщения: 4,723
Репутация: 52347
По умолчанию

Ну вот вам пример работы с большой картинкой.
Код:
procedure TForm43.FormCreate(Sender: TObject);
Var
  Img: TImage;
begin
 Img := TImage.Create(Self);
 Img.Parent := ScrollBox1;
 Img.Picture.LoadFromFile('YouBitmap.bmp');
 Img.Width := Img.Picture.Width;
 Img.Height := Img.Picture.Height;
end;
__________________
Жизнь такова какова она есть и больше никакова.
Помогаю за спасибо.
Ответить с цитированием
Ответ


Delphi Sources

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

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

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

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


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


 

Сайт

Форум

FAQ

Соглашения

Прочее

 

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