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

Тема в разделе "Borland C++ Builder & Kylix", создана пользователем DolWeb, 21 мар 2008.

Статус темы:
Закрыта.
  1. DolWeb

    DolWeb Гость

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

    DolWeb Гость

    Уже 9> просмотров и никто не поможет?
     
  3. Pasha

    Pasha Гость

    DolWeb
    На приаттаченной картинке совершенно непонятно где фон, где форма и где картинка.
     
  4. zubr

    zubr Гость

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

    DolWeb Гость

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

    картинку вставил через TImage
     
  6. zubr

    zubr Гость

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

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

    DolWeb Гость

    Спасибо!

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

    zubr Гость

    Попробуй просто сделать с определенной прозрачностью. Что типа этого (код на Delphi, думаю сам переведешь):
    Код (Text):
    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;
     
  9. DolWeb

    DolWeb Гость

    Кодом и я могу написать, исходник проги есть, а настройками, как - нибудь нельзя?
     
  10. zubr

    zubr Гость

    Какими настройками? Настройками чего?
     
  11. DolWeb

    DolWeb Гость

    Ну слева есть панелька
     
Загрузка...
Статус темы:
Закрыта.

Поделиться этой страницей