Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Нормальный Transparent в Image??? [D7, WinXP]


Fresh ©   (2008-07-08 21:41:00) 

У меня проблема такая: загружаю картинку .BMP у нее есть белый фон с краев, потом идет рисунок какой-то формы. мне нужно чтоб было видно только ту форму, без белого фона. ставлю свойство Transparent := True - белого не видно. Но один большой нюанс. Чтоб белого не было видно нужно чтоб картинка была огромных размеров, например 400х400 точек а у меня в проге размер картинки 100х100. Если загрузить картинку 400х400 делфи её сжимает до маленьких размеров и белого не стает видно, но таких картинок много, все разные, формат bmp так увеличивает прогу, что невыносимо!!! Потом пробую делать картинки 100х100 и уже такими вставляю в делфи, но они очень плохо стают прозрачными, видны белые точки, не все убираются. Можно как это решить??????
Я искал в DelphiWorld так нашел такую статью, чуть не такую но с неё можно что-то взять:

*****************************************************************************

При вставке какой-либо картинки в Image с произвольными очертаниями, можно легко обратиться к самой картинке а не к ненужному "куску" Image.  
Решение:  
Вставляем картинку ,например с белым фоном, transpert:=true и на OnMouseOver, или еще где, пишем:
if image1.picture.bitmep.canvas.pixels[X, Y]<>clwhite then
 image1.cursor:=crHourGlass
else
 image1.cursor:=crDefault
Пояснение: при наведении прога проверяет цвет пиксела под указатем и если оно отличается от белого, т.е. цвета фона, то указатель меняет свой вид!  

*****************************************************************************

Если б попиксельно проверять на белый цвет и делать этот пиксел прозрачным. Если кто-то знает как это сделать, то помогите пожалуйста  А то уже и так с этими картинками намучался  Картинок много, если все картинки размером 400х400 то размер программы при 100х100 отличается в 6 раз!!!


Правильный^Вася   (2008-07-09 11:48:00) [1]


> азмеров и белого не стает видно, но таких картинок много,
>  все разные, формат bmp так увеличивает прогу, что невыносимо!
> !! Потом пробую делать картинки 100х100 и уже такими вставляю
> в делфи

видимо, твоя сжималка картинок либо глючит, либо ты вообще через jpeg прогоняешь, либо те точки "почти" белые


DimaBr   (2008-07-09 08:48:00) [2]

Внимание!Здесьобсуждаются вопросы, связанные с разработкойкомпонентов, редакторов свойств, редакторов компонентов и экспертов IDE.
Вопросы по поискуи использованиюготовых компонентов, редакторов или экспертов являются нарушениемтематики и могут быть удалены.


Kolan   (2008-07-08 23:51:00) [3]

> Если загрузить картинку 400х400 делфи её сжимает до маленьких
> размеров

Вот где промах. Делфай самне сжимает. См. Strach и AutoSize у TImage


Наверх

Титульная страница Поиск, карта сайта Написать письмо