Форум: "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