Прозрачная форма, а на ней картинка

  • Автор темы DolWeb
  • Дата начала
Статус
Закрыто для дальнейших ответов.
D

DolWeb

Гость
#1
Как сделать, что-бы картинка с прозрачными местами отображалась прозрачно (т.е Как включит прозрачность формы и картинки,у меня получилось в аттаче)
1.png
 
P

Pasha

Гость
#3
DolWeb
На приаттаченной картинке совершенно непонятно где фон, где форма и где картинка.
 
Z

zubr

Гость
#4
Как я понимаю там белый цвет - это фон.
Не берусь утверждать, но по моему с 6 билдера у формы есть свойства AlphaBlend, AlphaBlendValue, Transparent, TransparentColor. Думаю, остальное понятно, в крайнем случае по этим свойствам есть Help. Данный вариант решения самый простой, но есть и другие варианты (через регионы).
 
D

DolWeb

Гость
#5
AlphaBlend, AlphaBlendValue, Transparent
Это я пробовал
На приаттаченной картинке белое - это прозрачная область (должна быть), фон это цветное нечто (обычный виндус скрин)
Всю форму картинка загораживает, на форме ставил Visible false Enabled false

картинку вставил через TImage
 
Z

zubr

Гость
#6
Должно работать.
Transparent=TRUE;
TransparentColor=clWhite;

Проверь свою картинку в графическом редакторе. Важно, чтобы белый цвет был действительно белым - RGB(255, 255, 255)
 
D

DolWeb

Гость
#7
Спасибо!

У меня еще вопрос, как сделать картинку с полупрозрачными областями, например, что бы была видна тень
 
Z

zubr

Гость
#8
Попробуй просто сделать с определенной прозрачностью. Что типа этого (код на Delphi, думаю сам переведешь):
Код:
procedure TForm1.Button1Click(Sender: TObject);
var
bmp:TBitmap;
bf:BLENDFUNCTION;
begin
bmp:=TBitmap.Create;
try
bmp.LoadFromFile('d:\1.bmp');

bf.BlendOp:=AC_SRC_OVER;
bf.BlendFlags:=0;
bf.SourceConstantAlpha:=100;//величина прозрачности (0-255)
bf.AlphaFormat:=0;
Windows.AlphaBlend(Image1.Canvas.Handle, 0, 0, Image1.ClientWidth, Image1.ClientHeight,
bmp.Canvas.Handle, 0, 0, bmp.Width, bmp.Height, bf);
finally
bmp.Free;
end;
end;
 
D

DolWeb

Гость
#9
Кодом и я могу написать, исходник проги есть, а настройками, как - нибудь нельзя?
 
Статус
Закрыто для дальнейших ответов.