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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 08.02.2011, 20:03   #1
Harikolo
Пользователь
 
Аватар для Harikolo
 
Регистрация: 27.09.2010
Сообщений: 17
Вопрос Большие изображения на маленькой форме

Здравствуйте.
Столкнулся с такой проблемой....
Имеются много (10к+) картинок 256х256 формата jpg. Необходимо их всех склеить и разместить на форме. Каким компонентом это лучше всего сделать?
Также существует еще одна проблема, при их склеивании образуется оч. большая картинка. Как сделать так, что бы размеры формы остались к примеру 800х800, а картинка была на этой форме в натуральную величину (т.е. не уменьшалась), а передвижение по этой картинке осуществлялось с помощью мышки ( при удержании ЛКМ можно было передвигаться по этой большой картинке ).
Harikolo вне форума Ответить с цитированием
Старый 08.02.2011, 21:31   #2
Gambler
Игрок
Форумчанин
 
Аватар для Gambler
 
Регистрация: 29.10.2006
Сообщений: 367
По умолчанию

Рассчитать где какая картинка и что видно на форме и рисовать только видимую часть. Потому что все грузить в опративу думаю не вариант.
Жизнь всегда игра. Но смерть - не всегда поражение.

#define true (Math.random()>0.5) //Удачной отладки
Gambler вне форума Ответить с цитированием
Старый 08.02.2011, 21:35   #3
Harikolo
Пользователь
 
Аватар для Harikolo
 
Регистрация: 27.09.2010
Сообщений: 17
По умолчанию

А при помощи каких компонентов это можно реализовать? Алгоритм склеивания и вывода я как-нибудь разберу...

Возможно ли в 1 TImage вывести несколько рисунков одновременно?

Последний раз редактировалось Harikolo; 08.02.2011 в 23:24.
Harikolo вне форума Ответить с цитированием
Старый 09.02.2011, 00:31   #4
Harikolo
Пользователь
 
Аватар для Harikolo
 
Регистрация: 27.09.2010
Сообщений: 17
По умолчанию

Как я понял, в 1 image нельзя класть несколько рисунков. Рационально ли использовать для склеивания BitMap и вывод его на Image?
Harikolo вне форума Ответить с цитированием
Старый 09.02.2011, 00:31   #5
SNUPY
Форумчанин
 
Регистрация: 15.02.2008
Сообщений: 621
По умолчанию

Готовим рисунок в памяти =)...
Для этого нам понадобяться:
TPicture - 1-а штука
TBitmap -1-а штука

Рецепт:
Грузим рисунок в TBitmap, а потом его в заданную область TPicture при помощи продцедуры StretchDraw

Приятного аппетита!
Помог? Ну так нажми на весы!
SNUPY вне форума Ответить с цитированием
Старый 09.02.2011, 09:08   #6
SERG1980
Участник клуба
 
Аватар для SERG1980
 
Регистрация: 28.03.2007
Сообщений: 1,814
По умолчанию

Я бы так сделал
Кидаем на форму ScrollBox на него Image.
Клеим ваши фото в битмапе и выводим на имидж
потом пишем вот это
Код:
var xn,yn:integer;//объявлены глобально
procedure Form1.Image1MouseDown(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
begin
 if ssLeft in Shift then
 begin
  xn:=x;
  yn:=y;
 end;
end;
Код:
procedure TForm1.Image1MouseMove(Sender: TObject; Shift: TShiftState; X,
  Y: Integer);
  var xm,ym:integer;
begin
if  ssLeft in Shift then//ЛКМ
begin
 xm:=-(xn-x);
 ym:=-(yn-y);
 form1.ScrollBox1.ScrollBy(xm,ym);
 xn:=x;
 yn:=y;
end;
end;
и наслаждаемся передвижением по этой картинке с помощью мышки

Последний раз редактировалось SERG1980; 09.02.2011 в 09:11.
SERG1980 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
поворот изображения на форме (либо поворот файла с картинкой) mystiql Microsoft Office Access 2 21.06.2011 22:03
Где хранить большие изображения в приложении? MyLastHit Общие вопросы Delphi 11 21.12.2010 13:36
Большие изображения в Image Jene4ka Помощь студентам 7 16.03.2010 13:12
поворот изображения на форме choknutii Общие вопросы C/C++ 1 21.07.2009 11:20