Про прозрачность, нужен совет

LiYing
Дата: 20.11.2007 16:26:01
Имеется TImage, в который загружаются разные картинки. На нем надо разместить _постоянно_ (но с возможностью отключения вывода в настройках) небольшой (100х10 пикс) битмап с альфа-каналом (или png 32bit). Выше этого битмапа требуется выводить некий текст с прозрачным фоном. Что-то типа масштабной линейки и данных измерений, в общем. Как это реализовать?
LiYing
Дата: 20.11.2007 16:48:51
Такого типа, как на картинке http://ipicture.ru/uploads/071120/example.png
Соколинский Борис
Дата: 20.11.2007 18:49:43
Во-первых, стоит сразу выкинуть TImage.
Во-вторых, выбрать один из вариантов:
1. Рисовать на paintbox с помощью AlphaBlend. Мучительно.
2. Рисовать на paintbox с помощью GDI+. Легче, но отрисовка довольно медленная.
3. Использовать стороннюю библиотеку со своими контролами (ЕМНИП в ImageEn все это реализовано). Не пробовал.
LiYing
Дата: 20.11.2007 19:34:49
По-правде говоря, я и использую ImageEn. А про TImage написал для упрощения понимания :)
Но даже в нем не нашел ничего подходящего для моей задачки.
Хотел попробовать поместить прозрачную TPanel и на нее уже выводить битмап и текст, но не знаю, насколько такой подход верен?..
LiYing
Дата: 27.11.2007 08:10:24
А в ответ - куча советов......
Tosh
Дата: 27.11.2007 08:15:15
Тебе посоветовали готовый компонент, а ты ничего не сказал - пробовал или нет, что не получилось, как деалал ... вот сначала объясни конкретно в чем проблема, а потом уже спрашивай
А ты - ошибка в 25-ой строке у тебя
Tosh
Дата: 27.11.2007 08:15:39
Точнее: А так - ошибка в 25-ой строке
LiYing
Дата: 27.11.2007 13:37:35
Tosh
Тебе посоветовали готовый компонент, а ты ничего не сказал - пробовал или нет, что не получилось, как деалал ... вот сначала объясни конкретно в чем проблема, а потом уже спрашивай

Если ты про ImageEn, то я же написал, что:
автор
я и использую ImageEn. Но даже в нем не нашел ничего подходящего для моей задачки.

А проблема в том, что просто не знаю как подступиться к своей задаче, т.к. с графикой ранее не имел дел.
Warstone
Дата: 27.11.2007 17:01:37
LiYing
Имеется TImage, в который загружаются разные картинки. На нем надо разместить _постоянно_ (но с возможностью отключения вывода в настройках) небольшой (100х10 пикс) битмап с альфа-каналом (или png 32bit). Выше этого битмапа требуется выводить некий текст с прозрачным фоном. Что-то типа масштабной линейки и данных измерений, в общем. Как это реализовать?

Подскажу тебе самый извращённый, но рабочий и легко реализуемый вариант...

Берёшь и в динамике создаёшь форму... типа TForm(не обязательно именно TForm), но только задаешь ей AlphaBlend:=True и AlphaBlendValue:=скока-надо, Дальше, в Parent к ней присваиваешь.... свой TImage, Ну и обрубаешь ей вывод... чтоб без заголовка и проч... А так-же при ресайзе картинки - меняешь положение этой формы. Получается то, что тебе надо.
LiYing
Дата: 29.11.2007 13:42:16
Warstone
Подскажу тебе самый извращённый, но рабочий и легко реализуемый вариант...


А если еще более извращенный способ: прямую отрисовку битмапа на канву TImage? Как только это правильно сделать?