Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2002.08.29;
Скачать: CL | DM;

Вниз

Bitmap и RGN?   Найти похожие ветки 

 
BlackRaven ©   (2002-06-18 14:54) [0]

Как из Bitmapa вырезать определенный регион, допустим треугольник или элипс или свой определенный регион, чтобы за пределами региона фон был прозрачным? Или дайте ссылку где это можно найти. Самому времени нет искать. Заранее СПАСИБО!


 
MBo ©   (2002-06-18 16:12) [1]

>Самому времени нет искать
Это не воодушевляет на ответ


 
BlackRaven ©   (2002-06-19 11:15) [2]

MBo, согласен. Я очень редко задаю вопросы на форумах по программированию потому, что чаще всего я знаю где мне искать инфу. Но иногда возникает такая ситуация, что нет у меня полной информации по проблеме, есть только ПРЕДПОЛОЖЕНИЕ где это можно найти, а времени искать нету. "ПРЕДПОЛОЖЕНИЕ" я уже проверил :) нету. Скажите в каком направлении копать.
Есть идея создать окно обрезать его регионом и запихнуть туда битмап. Я это не проверял будет ли это вообще работать или это полный бред?
Вот собственно и все! Идеи кончились :(

С уважением Black Raven!


 
BlackRaven ©   (2002-06-19 11:19) [3]

MBo, согласен.
Я задаю вопросы на форумах по программированию в крайних случаях потому, что чаще всего я знаю где мне искать инфу. Но иногда возникает такая ситуация, что нет у меня полной информации по проблеме, есть только ПРЕДПОЛОЖЕНИЕ где это можно найти, а времени искать нету. "ПРЕДПОЛОЖЕНИЕ" я уже проверил :) нету. Скажите в каком направлении копать.
Есть идея создать окно обрезать его регионом и запихнуть туда битмап. Я это не проверял будет ли это вообще работать или это полный бред?
Вот собственно и все! Идеи кончились :(

С уважением Black Raven!


 
MBo ©   (2002-06-19 12:32) [4]

один из путей
Копирование непрямоугольной области рисунка в другой

procedure TForm1.Button1Click(Sender: TObject);
var
PolyRgn:hRgn;
APolygon:array[1..5] of TPoint;
r:trect;
begin
image1.Picture.LoadFromFile("e:\4.bmp");
APolygon[1]:=Point(0,0);
APolygon[2]:=Point(30,20);
APolygon[3]:=Point(50,50);
APolygon[4]:=Point(20,30);
APolygon[5]:=Point(0,0);
PolyRgn := CreatePolygonRgn(APolygon, 5, 0);
SelectClipRgn(image2.Canvas.Handle, PolyRgn);
r:=image1.clientrect;
image2.canvas.copyrect(r,image1.canvas,r);
DeleteObject(PolyRgn);
end;


 
USAtyj ©   (2002-06-19 13:42) [5]

Кладешь на форму панель нужного размера.
Картинку кладешь на ПАНЕЛЬ: Align=alClient.
Ну а на панеле режишь нужный регион.

procedure TForm1.Button1Click(Sender: TObject);
var
Reg,ResReg : HRGN;
begin
ResReg:=CreateRectRgn(0,0,Image1.Width,Image1.Height);
Reg:=CreateEllipticRgn(20,20,Panel1.Width-20,Panel1.Height-20);
CombineRgn(ResReg,ResReg,Reg,RGN_XOR);
SetWindowRgn(Panel1.Handle, ResReg, True);
end;


 
USAtyj ©   (2002-06-19 13:48) [6]

очепятка:
вместо
ResReg:=CreateRectRgn(0,0, Image1.Width, Image1.Height);

Лучше таки:
ResReg:=CreateRectRgn(0,0, Panel1.Width, Panel1.Height);

:)


 
easy ©   (2002-06-19 14:03) [7]

Может это поможет:
http://easy-.pisem.net/files/components/easyTransparent98.zip
это компонент для создания региона по определённому цвету битмапа. Писано для себя
хотя не уверен, что правильно понял вопрос...


 
BlackRaven ©   (2002-06-27 16:17) [8]

Всем ОГРОМНОЕ СПАСИБО!!!

С уважением Black Raven!



Страницы: 1 вся ветка

Текущий архив: 2002.08.29;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.02 c
3-95720
maxim2
2002-08-09 07:39
2002.08.29
Есть ли у DBGrid событие реагирующие когда пользователь перешел..


1-95782
FLIZ_
2002-08-19 15:49
2002.08.29
Как из под Дельфи-программы отформатировать дискету?


3-95671
Виталий Панасенко
2002-08-08 10:17
2002.08.29
Не работают в сети более одной рабочей станции


1-95746
Kif
2002-08-16 20:14
2002.08.29
Как программно узнать длину (в пикселях) Sys Tray’а?


3-95718
ZDN
2002-08-09 12:48
2002.08.29
Перевод БД из под Progress на Interbase