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

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

Transparent Bitmap и Cаnvas? [D7, WinXP]


Zoom ©   (2008-05-15 23:00:00) 

Народ а подскажите пожалуйста я пытаюсь нарисовать
прозрачный Bitmap на Canvas
картинка рисуется а прозрачности почему-то нет ???

i2 := tbitmap.Create;
ImageList1.GetBitmap(1,i2);

Image1.Canvas.Brush.Color := clBlack;
Image1.Canvas.FillRect(rect(1,1,100,100));

i2.Transparent := true;
i2.TransparentColor :=  clwhite;
i2.TransparentMode := tmAuto;
form1.Canvas.Draw(10,10 ,i2);


картинка i2 с чисто белыми краями по идее должна нарисоваться без них на черном фоне, а рисуется с ними ?


Zoom   (2008-05-16 23:10:00) [1]

чего рисуешь то? :)
иконку 16*16 с белым краем, просто на canvas...

может я не правильно обьяснил
прикол вот в чем получается:
если картинку загрузить из файла
i2.LoadFromFile('test2.bmp');
или из ImageList1 с использованием clNone при импорте картинки в ручную
то тогда все нормально, а если картинку импортировать автоматически то есть
ImageList1 сам найдет прозрачную границу, то тогда прозрачности почему-то нету, даже если цвет определять допустим по точке 1,1
i2.TransParentColor := i2.canvas.pixels[1,1];
i2.Transparent := true;

image1.canvas.Draw(10,10,i2);

???


Olegz77   (2008-05-16 18:16:00) [2]

Zoom, не надо после i2.TransparentColor :=  clwhite;устанавливать i2.TransparentMode := tmAuto, последняя инструкция устанавливает TransparentColor по умолчанию в clDefault


Olegz77   (2008-05-16 18:13:00) [3]


> antonn (work)   (16.05.08 10:20) [2]
> чего рисуешь то? :)
> form1.Canvas.Draw(10,10 ,i2); - рисуешь форму на битмапе?
>


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


antonn (work)   (2008-05-16 10:20:00) [4]

чего рисуешь то? :)
form1.Canvas.Draw(10,10 ,i2); - рисуешь форму на битмапе?


Zoom   (2008-05-16 03:07:00) [5]

Однако если в ImageList1 добавлять картину с использованием  Transparent Color = clNone , тогда все работает так где-же "портится" bitmap , но цвет окантовки  остается одинаковым в обоих случаях clwhite... 255, 255, 255 ???


Наверх

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