Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Форма созданная по png, Помогите 
:(
    Опции темы
Superklug
Дата 22.7.2007, 01:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 227
Регистрация: 16.6.2006

Репутация: нет
Всего: нет



Необходимо создать форму по png картинке. Т.е. окно неправильной формы и местами прозрачное.
Долго искал, нашел только пример для VB. Там вроде это реализованно с помощью GDI+.

Прошу помочь. Заранее очень благодарен.
PM MAIL   Вверх
fish9370
Дата 22.7.2007, 12:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 663
Регистрация: 15.4.2007
Где: Москва

Репутация: 1
Всего: 1



решение:

раскрасить форму в розовый цвет (заведомо не имеющийся в PNG-картинке), назначить Transperent-цвет=розовый, выставить свойство формы transperent=true.. считать картинку, и наложить ее на канву формы с учетом альфаканала..

конечно можно и проще..   smile  достаточно иметь BMP-картинку, где вместо прозрачности (альфаканала) будет использоваться тот самый розовый цвет.. 

к сожалению, при таком методе теряется полупрозрачность.. но зато он очень прост..

Это сообщение отредактировал(а) fish9370 - 22.7.2007, 12:12


--------------------
undefined
PM MAIL WWW ICQ   Вверх
Superklug
Дата 22.7.2007, 12:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 227
Регистрация: 16.6.2006

Репутация: нет
Всего: нет



Цитата(fish9370 @  22.7.2007,  12:06 Найти цитируемый пост)
к сожалению, при таком методе теряется полупрозрачность.. но зато он очень прост..

В том то и дело, что нужна пулупрозрачность. =( Так то я и сам делал раньше. А теперь появились разные тени, которые этим способом сделать не получится.

Был еще вариант создать прямоугольную форму, на ней нарисовать скрин экрана, а поверх него уже мою картинку, но в таком случае придется отказаться от перемещения формы, да и если под моим окном что-нибудь перетащат, на моей форме это останется. Вобщем не самый удачный вариант... =(

Может кто-нибудь знает как задавать уровень прозрачности не всей формы, а каждого пикселя в отдельности?
PM MAIL   Вверх
Alexeis
Дата 22.7.2007, 12:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Амеба
Group Icon


Профиль
Группа: Админ
Сообщений: 11743
Регистрация: 12.10.2005
Где: Зеленоград

Репутация: 26
Всего: 459



  Вот тут обсуждали похожий вопрос, но в разделе по делфи. http://forum.vingrad.ru/index.php?show_typ...howtopic=155304

Думаю проблем по переносу быть не должно. 


--------------------
Vit вечная память.

Обсуждение действий администрации форума производятся только в этом форуме

гениальность идеи состоит в том, что ее невозможно придумать
PM ICQ Skype   Вверх
Superklug
Дата 22.7.2007, 13:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 227
Регистрация: 16.6.2006

Репутация: нет
Всего: нет



Цитата(Alexeis @  22.7.2007,  12:54 Найти цитируемый пост)
  Вот тут обсуждали похожий вопрос, но в разделе по делфи. http://forum.vingrad.ru/index.php?show_typ...howtopic=155304

Огромное спасибо! =) С этим я наверное разберусь.

Остался еще один вопрос: как по png картинке определить какая прозрачность у каждого пикселя?
К слову png я загружаю с помощью PNGImage. Если можно это сделать проще, раскажите пожалуйста =)
PM MAIL   Вверх
Alexeis
Дата 22.7.2007, 14:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Амеба
Group Icon


Профиль
Группа: Админ
Сообщений: 11743
Регистрация: 12.10.2005
Где: Зеленоград

Репутация: 26
Всего: 459



Цитата(Superklug @  22.7.2007,  13:53 Найти цитируемый пост)
Остался еще один вопрос: как по png картинке определить какая прозрачность у каждого пикселя?

  У него есть свойство AlphaScanLine - которое возвращает указатель на строку (массив байтов) Каждый байт - степень прозрачности от 0..255


--------------------
Vit вечная память.

Обсуждение действий администрации форума производятся только в этом форуме

гениальность идеи состоит в том, что ее невозможно придумать
PM ICQ Skype   Вверх
Superklug
Дата 22.7.2007, 14:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 227
Регистрация: 16.6.2006

Репутация: нет
Всего: нет



Цитата(Alexeis @  22.7.2007,  14:07 Найти цитируемый пост)
У него есть свойство AlphaScanLine - которое возвращает указатель на строку (массив байтов) Каждый байт - степень прозрачности от 0..255 

Спасибо =)

Щас начну пробовать...
PM MAIL   Вверх
Superklug
Дата 23.7.2007, 00:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 227
Регистрация: 16.6.2006

Репутация: нет
Всего: нет



Помогите пожалуйста разобраться с GDI+. Как его подключить в builder-е?

Целый день парился, но так ничего и не получилось... :( 
Нашел одну страничку: GDI+. Сделал все как там написано и все равно вылетает ошибка...

[C++ Warning] GdiplusHeaders.h(582): W8022 'Bitmap::Clone(const Rect &,int)' hides virtual function 'Image::Clone()'
[C++ Error] GdiplusGraphics.h(34): E2015 Ambiguity between 'Gdiplus::Graphics::Graphics(void *)' and 'Gdiplus::Graphics::Graphics(void *,int)'

В чем дело?

Это сообщение отредактировал(а) Superklug - 23.7.2007, 19:28
PM MAIL   Вверх
Superklug
Дата 3.8.2007, 16:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 227
Регистрация: 16.6.2006

Репутация: нет
Всего: нет



Так я и не смог сделать полупрозрачную форму, по png... Помогите пожалуйста. Я уже голову сломал. =(
PM MAIL   Вверх
_pussbb
Дата 24.10.2007, 02:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 91
Регистрация: 7.12.2006

Репутация: нет
Всего: нет



может стоит попробывать
Код

#define NO_WIN32_LEAN_AND_MEAN
#include <vcl.h>

PM MAIL WWW   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++ Builder"
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по С++ Builder обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Настоятельно рекомендуем заглянуть в DRKB (Delphi Russian Knowledge Base) - крупнейший в рунете сборник материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Rrader.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C++ Builder | Следующая тема »


 




[ Время генерации скрипта: 0.0502 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.