Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Media";
Текущий архив: 2003.05.05;
Скачать: [xml.tar.bz2];

Вниз

Отображение картинки с возможностью скролла   Найти похожие ветки 

 
Сергей   (2003-01-24 21:23) [0]

Есть относительно большая картинка (для определенности 2000x1000)
Надо показывать ее в окошке 500x500, причем я хочу чтобы при нажатии мышкой в любую точку картинку можно было тащить. Ммм.. ну как это сделано в Photoshop, acdsee.. То есть при попытке "перетаскивания" картинки происходит ее скролл. Сейчас я делаю так: засовываю Timage в фрейм и вручную двигаю скроллбары фрейма. Выглядит ужасно. Все почему-то трясется. Как это сделать правильно? Помимо того, нужно чтобы можно быть делать zoom, т.е. изменять размер картинки. Помогите.


 
Mihey   (2003-01-24 22:34) [1]

Ну ты понимаешь, что отображать нужно именно эти 500х500, предварительно сгенерированные. Вырезаешь кусок с большой картинки и вставляешь в 500х500.


 
Сергей   (2003-01-24 23:56) [2]

Пытался только что это сделать. Как? Конкретно - как в TImage засунуть этот вырезанный кусок, а точнее в чем этот кусок хранить? Короче - какие компоненты я должен использовать на всех этапах выделения этого кусочка? И каким методом его отображать?


 
xn0bys   (2003-01-28 08:45) [3]

Сергей, А скроллбокс на что?
там ничего не трясётся... IMHO

Я сам так делаю, а зум делаю так:

procedure Zoom(MagnifyFactor:Single);
begin
Image.AutoSize:=False;
Image.Stretch:=True;
Image.Width:=Round(Image.Picture.Bitmap.Width*MagnifyFactor);
Image.Height:=Round(Image.Picture.Bitmap.Height*MagnifyFactor);
end;

Таскание можно сделать так:

procedure ImageOnMouseDown(.....);
begin
Oldx:=X;
Oldy:=Y;
OldLeft:=Image.Left;
OldTop:=Image.Top;
Down:=True;
end;

procedure ImageOnMouseMove(.....);
begin
If Down then
begin
Image.Left:=OldLeft+(X-OldX);
Image.Top:=OldTop+(Y-OldY);
Oldx:=X;
Oldy:=Y;
end;
end;

procedure ImageOnMouseUp(...);
begin
Down:=False;
end;

Ну или что-то подобное...


 
Kyro5   (2003-01-28 12:30) [4]

http://www.g32.org/graphics32/

зум и скрол можно сделать поразному.
но вот по этой ссылке лежит короший набор компонентов.
там все сделано ну или почти все, но доделывать не долго


 
bigcrush   (2003-01-28 15:17) [5]

А если картинка 10000x10000.
Это ж сколько памяти нужно :-o да и времени на загрузку.
Как сделать, чтобы всю картинку не грузить в память?



Страницы: 1 вся ветка

Форум: "Media";
Текущий архив: 2003.05.05;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.45 MB
Время: 0.084 c
8-12842
VinRaider
2003-01-18 00:43
2003.05.05
Перемещение курсора


7-12946
Ghost_
2003-03-12 09:04
2003.05.05
Очередной вопрос по выключению компьютера..


1-12755
vvvaaa
2003-04-21 14:42
2003.05.05
Изменение размера в Runtime


11-12685
Explorer
2002-07-19 14:11
2003.05.05
Кто, что может сказать о KOL


14-12889
Psibug
2003-04-17 10:06
2003.05.05
Существует ли спецификация для Explorer.exe





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский