Форум: "Media";
Текущий архив: 2003.04.28;
Скачать: [xml.tar.bz2];
ВнизРабота с картинками Найти похожие ветки
← →
Сергей (2003-01-25 13:35) [0]Есть большая картинка. Хочу вырезать из нее кусок нужного мне размера и показать на экране. Какими компонентами я должен воспользоваться? Проблема еще и в том, что картинка gif. Пользуюсь TGifImage 2.2.
Вообще говоря, вышенаписанное это мое понимание скролла. Дело в том, что я хочу реализовать скролл так как это сделано в большинстве смотрелок картинок. Т.е. когда я хватаю картинку в какой-то точке мышкой и начинаю двигать мышь - картинка двигается соответственно. Мои попытки реализовать это через scrollbox (ручным передвижением scrollbar`ов) заканчивались тем, что все почему-то ужасно дергалось при движении.
Помимо этого хотелось бы реализовать еще и zoom. Причем плавный, при зажатии правой кнопки. Я пока не пробовал, но боюсь что это тоже вызовет как минимум мерцание. Как от этого всего избавиться? И пожалуйста просто подскажите какие компоненты все же использовать для правильной реализации всего этого.
← →
Mihey (2003-01-25 19:02) [1]Начнём с того, что неважно, какого формата у тебя изображение, лучше всего его перевести в BMP. Можно использовтаь компонент, который загрузит изображение в объект TPicture. Можно воспользоваться библиотикой Envision Graphic Library. Например, в Irfan View можно посмотреть размер файла и объём памяти, нужный для его загрузки - как раз столько, сколько нужно для хранения изображения в BMP.
Далее нужно выбрать способ отображения на экране. Вообще, у тебя большие планы на будущее, а потому я тебе советую FastLib - быстро и есть эффекты с Zoom и т.д.. Но можно обойтись простым BitBlt. Вот например у тебя есть изображение MyPic типа TBitMap. Используешь функцию BitBlt:
function BitBlt(MyForm.Canvas.Handle, 0, 0, 500, 500, MyPic.Canvas.Handle, 200, 200, SRCCOPY);
Как видишь, изображение выводится на форму, начинаясь в точке 0, 0 и имея ширину 500 на 500. При этом копируется квадрат 500 на 500, начиная с точки 200, 200 из изображения MyPic.
Изменяя вот эти вот значения 200, 200 ты можешь менять картинку.
← →
Сергей (2003-01-25 19:41) [2]Можно поточнее: каким образом я переведу свой gif в bmp? Конкретные названия компонентов. И про этот bitblt.. Где его достать? В хелпе о нем ни слова.
← →
Сергей (2003-01-25 20:03) [3]Ладно. Будем считать что разобрался. Проблема вот в чем.. То что написано снизу не производит никаких действий. 1.bmp - нормальная bmpшка, большая и красивая. Ниженаписаное вызывается по OnCreate формы. Никакой реакции.
var
pic : tbitmap;
begin
Pic := Tbitmap.create;
Pic.Loadfromfile("1.bmp");
bitblt(Form1.Canvas.Handle,0,0,500,500,pic.canvas.handle,0,0,srccopy);
end;
← →
Сергей (2003-01-25 20:20) [4]и окончательно. Разобрался со всем, кроме того как мне получить bitmap из моего gif. Собственно как?
← →
Mihey (2003-01-25 23:08) [5]Например, такой компонент - грузит gif из файла в bmp:
http://www.torry.net/vcl/graphics/gif/gifviewdll.zip
Страницы: 1 вся ветка
Форум: "Media";
Текущий архив: 2003.04.28;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.008 c