Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "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
1-91274
Pk
2003-04-16 17:15
2003.04.28
Распечатать содержимое Gridа


14-91500
Lexer
2003-04-09 11:41
2003.04.28
Помогите найти компонент


3-91172
DenKop
2003-04-07 23:57
2003.04.28
SQL Поиск с применением UNION


1-91266
KIE
2003-04-16 14:21
2003.04.28
OnKeyUP -события


14-91485
vajo
2003-04-10 11:51
2003.04.28
Несколько рабочих столов для одного юзера в W XP





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский