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

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

TBitmap.Transparent [XP]


Alral ©   (2008-09-10 23:10:00) 

Здравствуйте.
У меня вопрос:
программа сохраняет в Bitmap изображение, после чего рисует его на форме. Мне необходимо, чтобы у этого изображения не было фоновой заливки белым цветом, а только то, что я рисую. Я устанавливаю TBitmap.Transparent в True, TransparentColor := clWhite, TransparentMode:=tmFixed. Однако фон прозрачным не становится. Какая причина?


Германн   (2008-09-11 01:59:00) [1]


> И, если память не изменяет, при использовании воркшопа,
> там этот цвет по умолчанию был.


> Но нигде в документации официально это не попадалось.

Во-во. Потому и спросил.
В воркшопе в палитре цветов был цвет "trasparent". А в имейджэдите его нет.


KilkennyCat   (2008-09-11 01:43:00) [2]


> Германн ©   (11.09.08 01:36) [5]


У меня когда-то в 6 делфи была такая проблема. Не помню уже, где именно, какой контрол, но пока цвет не сменил - не прозрачило. И, если память не изменяет, при использовании воркшопа, там этот цвет по умолчанию был.
Кроме того, был момент, когда рисунок касался границ картинки - тоже не работала прозрачность. Сделал один пиксел по периметру - все нормально стало.
Но нигде в документации официально это не попадалось. Правда, я и не искал - методом тыка решилось (точнее, посмотрел пример из RxLiba, как они реализовывали), и ладно...


Германн   (2008-09-11 01:36:00) [3]


> KilkennyCat ©   (11.09.08 00:20) [2]
>
> попробуй использовать clFuchsia

А почему именно clFuchsia?

P.S.
Спрашиваю серьёзно, без шуток.


Alral   (2008-09-11 00:23:00) [4]

По крайней мере он отображается как моё изображение на белом фоне.
Попробую как вы посоветовали. Спасибо.


KilkennyCat   (2008-09-11 00:22:00) [5]

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


KilkennyCat   (2008-09-11 00:20:00) [6]

попробуй использовать clFuchsia и обрати внимание, чтобы фон был по всему краю.


Alral   (2008-09-10 23:11:00) [7]

Код:

bPiece[1]:=TBitmap.Create;
bPiece[1].Width:=50;
bPiece[1].Height:=50;
bPiece[1].Transparent:=true;
bPiece[1].TransparentMode:=tmFixed;
bPiece[1].TransparentColor:=clWhite;
with bPiece[1].Canvas do begin
 Pen.Color:=clBlack;
 Pen.Width:=1;
 Ellipse(5, 5, 45, 45);
 Brush.Color:=clMaroon;
 FloodFill(25, 25, clBlack, fsBorder);
 Ellipse(12, 12, 38, 38);
end;
for lpX := 0 to 3 do begin
 fMain.Canvas.Draw(lpX*100+50, 350, bPiece[1]);
 fMain.Canvas.Draw((lpX+1)*100, 300, bPiece[1]);
 fMain.Canvas.Draw(lpX*100+50, 250, bPiece[1]);
end;

Спасибо.


Наверх

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