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

Вниз

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

 
seregka   (2005-06-10 12:16) [0]

Добрый день!

Подскажите, пожалуйста, как объединить несколько изображений в одно. Например, два изображение 800х600. Нужно на выходе одно 800х600, сверху 800х300 - первое, под ним 800х300 - второе.

И как добавить текст в произвольной части изображения.

Заранее благодарен


 
XProger ©   (2005-06-10 13:16) [1]


Canvas.Draw(0, i*300, bmp);
...
Canvas.TextOut(X, Y, "labuda");


 
seregka   (2005-06-10 22:23) [2]

СПасибо.
А как сделать, чтобы задний фон текст прозрачным был


 
Борыч   (2005-06-10 22:50) [3]

>seregka  (10.06.05 22:23) [2]

Brush.Style := bsClear;


 
seregka   (2005-06-10 23:31) [4]

спаисибо.
А не подскажите, а можно ли сделать слои (как в Фотошопе), чтобы этот текст можно было двигать и менять?


 
Борыч   (2005-06-11 00:00) [5]

>seregka  (10.06.05 23:31) [4]

Можно.


 
seregka   (2005-06-11 11:49) [6]

Не подскажите как?


 
Борыч   (2005-06-11 17:18) [7]

Можно пойти разными путями..

1. Представить слои как наследники TGraphicControl. Это довольно легко в реализации, но работать бдеть отвратительно: когда слоев будет достаточно много, перерисовка будет тормозить или сильно мерцать..

2. Имеем в памяти битмап размером с клиентскую область. На нём уникальными цветами (!) в виде примитивов соответствующих слоям (текст - закрашенный прямоугольник) рисуем все слои, один за другим (те, которые видны на экране). На другом битмапе (тоже размером с видимую область) уже прорисовываем реальное изображение слоев с прозрачностью, текстурами, текстом и т.п. Этот растр и выводим на экран. Главное, чтобы координаты соответствующих слоев на одном и другом растре совпадали. Далее обрабатываем события мыши: смотрим по первому битмапу, на какой цвет пришелся клик курсором. А коли мы знаем, что каждому слою соответствует уникальный цвет, то и знаем какой слой выделять (активировать). Если это текст, можно включать обработку нажатия клавиш, показывать мерцающий курсор и т.д. Перемещение слоя - по тому же принципу. По сути ничего сложного нет. Но можно реализовать так, что будет все летать, а можно так, что страшно тормозить. Дело опыта. :)


 
Grief ©   (2005-06-11 19:25) [8]

мерцать не будет, если не объединять картинки перед выводом. Тем более, что второй способ имхо будет медленнее



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

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

Наверх




Память: 0.46 MB
Время: 0.039 c
2-1129309908
redlord
2005-10-14 21:11
2005.11.06
locate поиск по нескольким полям


14-1129612855
Ega23
2005-10-18 09:20
2005.11.06
Interpolitex-2005 Кто пойдёт?


6-1122493829
Михаил(Киров)
2005-07-27 23:50
2005.11.06
Sockets


2-1129128267
Yura32
2005-10-12 18:44
2005.11.06
Icon


14-1129529606
TButton
2005-10-17 10:13
2005.11.06
Жжжжжуть





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